AI^2 Forum June 2024

Is there a better way to learn about Active and Retroactive Learning than through the discussion of homing pigeon tracking?

On 26th June, we had two speakers for AI^2: Richard Mann talking about ‘Active and Retroactive Learning for Animal Behaviour’ and Danny Wood discussing ‘The Transition from Academia to Industry’.


Richard Mann’s talk can be summarised as follows:

Active learning is the ‘what should I do’ aspect of learning. For example, this characteristic is found in students who take an active role in their learning, identifying gaps in their knowledge to fill rather than revising what is already known. Similarly, in the game of Battleships, active learning involves making decisions based on known information, rather than randomly selecting spots. Duolingo uses active learning by identifying what you need to learn and presenting previously learnt examples less frequently.

Why is active learning beneficial:

  • It is less expensive as labels are costly.
  • It mimics reality.
  • If you have too much data, active learning can help without batching data.

To reduce computation when selecting data samples, we can use something called ‘lookahead’. Lookahead searches and balances immediate rewards, e.g. determining how far to travel for food. Does exploring make it harder to return to a known source of food?

Retroactive learning is a type of learning that answers ‘what should I have done in the past?’. If I had to learn a route, what should I try to learn/remember? e.g. points of interest or key features of a route. Gaussian processes can be used to predict routes. This can be described as determining where I should have looked at the routes to learn them and how to store the information as efficiently as possible, akin to a compression algorithm.

An example of this in nature: Pigeons, when taken from their homes repeatedly, eventually learn and optimise a route. Bees work together to gather the most pollen rather than a single bee always striving for ‘the best pollen’.


Danny Wood’s talk can be summarised as follows:

Danny spent 3 years in academia as a postdoctoral researcher in ensemble learning and explainability, before moving to FuzzyLabs into Machine Learning Operations (MLOps).

When transitioning to industry and trying to secure a job, consider:

  • Looking for opportunities to enhance your CV (e.g. running seminars, workshops).
  • Giving yourself plenty of time to find a job (3-6 months).
  • Using your contacts and building your own network.
  • Knowing that your first job out of academia will be the hardest.
  • Being prepared to learn a lot very quickly.

Since working at FuzzyLabs, Danny has noticed that LLMs are used extensively, people care greatly about code quality, and 2-5 people can be working on projects simultaneously.

In academia, many software engineering skills are overlooked. In academia, code is often quick and flexible, whereas in industry, code is usually more collaborative and robust.

Skills needed for industry:

  • Version Control:
    • Use a new branch for a new feature until it is perfect.
    • Track all changes with GitHub.
  • Virtual Environments:
    • Essential for teams.
    • Consider using the tool poetry (it is similar to pip requirements but provides more information).
    • Ensures dependencies and their dependencies are up to date.
  • Pre-commit hooks:
    • Perform quality checks before committing (automatically), e.g. check for typos.
    • Can fix issues for you or prompt you to take action, e.g. automatically add a black line or remind you to add a comment.
  • Type hints:
    • Define expected input and output types of a function.
    • Improve autocomplete functionality.
  • Testing:
    • Unit tests: test the behaviour of functions and classes.
    • Application tests: test the behaviour of a system as a whole.
  • Debuggers:
    • Set up breakpoints in the IDE to see variables in memory up to a certain point.
    • Automate boring tasks using GitHub Actions (e.g. install updates, run tests, scan for vulnerabilities – check out trufflehog and Bandit).

Check out this blog on Testing and Packaging Python code, to learn how to get started with some of these practices.

If you missed this session and want more details, you can find a PDF of the slides here.


Blog written by: Zoe Hancox

Written on June 26, 2024
[ AI_squared  ]