NLPx

Tales of Data Science

Разница между Active learning, Online learning, Reinforcement learning и Transfer learning

Иногда путают такие понятия, как Active learning, Online learning, Reinforcement learning, Transfer learning и других таинственных видов learning. Я тоже путал, был грех.

Постараюсь тут объяснить разницу — максимально просто и глупо. Прям чтобы даже я понял.

На математическую точность, как обычно, не претендую, для меня главное понимание принципа 🙂

Brace Yourself Learning is coming - | Make a Meme

Активное обучение (Active learning)

Это когда обучающий алгоритм может сам спрашивать пользователя, чтобы получить требуемые предсказания на новых входных данных.

Глупый пример: нам надо, чтобы машинка определяла — спам перед ней или не спам. В некотором интерфейсе машинка сует нам сообщение и спрашивает — это спам или не спам? Человек руками отвечает машинке — это спам. Машинка запоминает и постепенно итеративно научается. Человек служит машине!

A machine learning joke (credits to u/z0ltan_x) : ProgrammerHumor

Онлайн-обучение (Online learning)

Это когда модель использует для оптимизации параметров только последнее наблюдение, обновляя параметры на каждом новом наблюдении.

Умный пример: именно так работает стохастический градиентный спуск. Обычный (пакетный) градиентный спуск вычисляет один шаг, используя сразу весь набор данных, тогда как стохастический за шаг использует только один элемент. Пакетный спуск следует в направлении наискорейшего спуска, в то время как стохастический, используя только один элемент из обучающей выборки, не может верно вычислить градиент для всей выборки. Таким образом, в стохастическом варианте спуск идет не в сторону антиградиента, а вообще непонятно как — он каждый шаг отклоняется в абсолютно случайную сторону. И кажется, что такими рандомными движениями к минимуму можно прийти только случайно, однако есть пруфы, что стохастический градиентный спуск сходится почти наверняка.

Кстати, я замечал, что иногда путают онлайн-обучение и активное обучение. Не надо так.

Life is gradient descent | Hacker Noon

Обучение с подкреплением (Reinforcement learning)

Это когда есть модель, которая не имеет сведений о системе, но имеет возможность производить какие-либо действия в ней. Действия переводят систему в новое состояние и модель получает от системы некоторое вознаграждение.

Глупый пример: засунули тебя в клетку с кучей какой-то фигни и дали возможность ходить взад-вперед и трогать любые валяющиеся в клетке предметы. Ты такой ходишь и трогаешь — херак тебя током долбануло, потом другой предмет тебя тоже долбанул, и ты такой — ага! Серые коробки долбят током, их трогать нельзя. А сиреневые выдают конфетки, которые ты любишь. И вуаля — через некоторое время ты ходишь по клетке взад-вперед, максимально избегая серых коробок, и тщательно трогая сиреневые. А ученые снаружи клетки радостно потирают руки — обучение с подкреплением работает!

Transfer learning

На русский сложно однозначно перевести, но можно попробовать — что-то вроде «адаптация предыдущей модели» или «обучение дообучением».

Это когда некоторая модель, созданная для одной задачи, используется для другой задачи в качестве основы для модели, которая специально разрабатывается под эту другую задачу.

Нормальный пример: вот обучили некоторую нейросеть на огроменном корпусе всяких-превсяких изображений. И веса этой модели вполне могут быть использованы как основа для тренировки модели для более специфичного датасета — типа модели для определения кошек и собак. То есть, приличная часть признаков в более общей модели уже изначально есть, и они внезапно годятся для новой задачи отличения Felis silvestris catus от Canis lupus familiaris. Трансфер лернинг он зе вей!

Create ML Tutorial: Getting Started | raywenderlich.com

Еще парочка не таки интересных видов лернингов

Мультитаск-лернинг (Multitask learning) — тут достаточно просто. Вот обучили мы, например, языковую модель, а она совершенно неожиданно (нет) подходит для использования в куче задач по обработке языка (которое NLP).

Обучение ансамблем (Ensemble learning) — тут вообще просто. Берем несколько разных моделей, каждую обучаем на одних и тех же данных. А результирующие предсказания мы берем сразу ото всех моделей — например, методом мажоритарной выборки или еще как.

Там еще много лернингов, вроде one-shot, zero-shot и т.д. Но пока начнем с вышеперечисленных — я уже слишком нетрезв, чтобы написать что-то еще 🙂

Ссылки

  1. https://embedika.ru/ — компания, в которой я работаю. Просто она мне очень нравится, поэтому ставлю ссылку первой.
  2. https://habr.com/ru/post/308094/
  3. https://www.geeksforgeeks.org/what-is-reinforcement-learning/
  4. https://en.wikipedia.org/wiki/Active_learning_(machine_learning)
  5. https://machinelearningmastery.com/types-of-learning-in-machine-learning/
  6. https://www.analyticsvidhya.com/blog/2015/01/introduction-online-machine-learning-simplified-2/
  7. http://www.machinelearning.ru/wiki/index.php?title=%D0%A1%D1%82%D0%BE%D1%85%D0%B0%D1%81%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B3%D1%80%D0%B0%D0%B4%D0%B8%D0%B5%D0%BD%D1%82%D0%BD%D1%8B%D0%B9_%D1%81%D0%BF%D1%83%D1%81%D0%BA
  8. https://www.kaggle.com/kashnitsky/topic-8-online-learning-and-vowpal-wabbit
  9. Посвящается Пупусе

150 просмотров всего, 8 просмотров сегодня

Разница между Active learning, Online learning, Reinforcement learning и Transfer learning
5 2 votes

Leave a Reply

avatar