What is "Task"?
More formally, a task can be described as this format: , based on data generating distribution.
- Multi-task learning: Learn at once
- Transfer learning: Solve target task after solving source task by transferring knowledge learned from ( include multiple tasks itself.)
- Key assumption: Cannot access data during transfer.
- Fine-tuning is a valid solution to transfer learning
- Transfer learning: Solve target task after solving source task by transferring knowledge learned from ( include multiple tasks itself.)
- The meta-learning: Given data on previous tasks, learn a new task more quickly and proficiently
Vanilla Multi-Task Learning
We have to define the model, objective, and its optimization way.
- We use task descriptor :
- How does the Multi-task architecture should be: Concatenation-based conditioning, Additive conditioning, Multi-head architecture, and Multiplicative conditioning
- Objective
- We can weight tasks differently:
- The weighting can be a. heuristics, b. task uncertainty c. monotonic improvment towards Pareto optimal solutions or d. optimize for the worst-case task loss.
- We can weight tasks differently:
- How should the objective be optimized: By mini-batch Backpropagation with optimizer
- Challenges: Negative transfer, Overfitting, Lot of tasks, etc.
Multi-task learning → Transfer learning
- What are some problems/applications where transfer learning might make sense?
- When is very large (Don't want to retain & retrain on )
- When you don't care about solving and simultaneously
- More answers about. Personalization
Transfer learning → Fine-tuning
Transfer-learning: If we are solving target task after solving source task by transferring knowledge learned from
We can use fine-tuning by using , which is the parameters pre-trained on . We have a training data for new task . We can fine-tune for many gradient steps by this formula:
However, fine-tuning does not work well with very small target task datasets. This is where meta-learning can help.