[БЕЗ_ЗВУКА] Привет. В этом видео мы с вами поговорим о классификации различных подходов к машинному обучению. Пожалуй, ни один курс не обходится без подобного видео, без такой лекции. Мы с вами тоже поговорим о том, что же такое обучение с учителем, обучение без учителя и обучение с подкреплением. Самым распространенным подходом является, конечно, обучение с учителем, или supervise learning. В таком случае у нас существует какое-то количество размеченных данных, данных, для которых определен корректный ответ и корректное предсказание. Мы пытаемся обучить нашу модель на этих данных и потом сделать предсказание на новых данных, которых мы еще не видели. В таком случае мы обучаемся с учителем, и классическим примером задачи, которая была решена и решается до сих пор с помощью обучения с учителем и машинного обучения в целом, это задача кредитного скоринга. У нас существует какой-то банк и пул клиентов, для которых у нас есть информация, об этих клиентах, есть информация о том, например, отдали они кредит или не отдали. К нам приходит новый человек, у нас есть информация про него из какой-то анкеты, мы пытаемся определить, стоит ему дать кредит или нет. Если да, то на какую сумму. Это задача обучения с учителем, у нас есть новые данные, мы пытаемся сделать на них предсказание. Если мы просто пытаемся понять, стоит ему дать кредит или нет, то это задача классификации. Если мы пытаемся заодно понять, на какую сумму, то задача регрессии, потому что у нас ответ предсказания является вещественным числом. Область обучения с учителем и, в принципе, такие подходы наиболее распространены сейчас, и если вы слышите про то, что какая-то компания применяет машинное обучение в своей работе, то скорее всего это именно обучение с учителем. Эти модели и методы работают лучше всего, они лучше всего обучаются и чаще всего применяются. Про обучение с учителем мы поговорим на этой и на третьей неделе и на пятой неделе, когда будем говорить про нейронные сети. Большая часть нейронных сетей как раз работает на каких-то размеченных данных. Тем не менее, существует еще один подход, которому не требуются размеченные данные, не требуется какая-то ручная разметка или даже автоматическая разметка, это обучение без учителя, или unsupervised learning. В таком случае у нас просто существуют какие-то данные, и мы пытаемся использовать зависимость внутри этих данных и делать какие-то выводы по нашим данным или как-то их преобразовать. Казалось бы, как мы можем использовать просто данные и что-то с ними делать, делать ли какие-то предсказания или выводы, если мы никак их не разметили? Однако как вы знаете, в этих данных существует какое-то количество реальных природных зависимостей, которые мы можем использовать. И например, классической задачей для обучения без учителя является задача понижения размерности. Например, у нас есть какой-то датасет, какое-то количество данных с большим количеством признаков. И наша модель хотела бы обучаться не на дробном количестве признаков, например, не на тысяче признаков, а только на ста, ста самых важных. Мы хотели бы отбросить лишние признаки, сохраняя максимальную предиктивную способность, то есть так чтобы мы могли потом использовать эти признаки в работе. И таким случаем мы пытаемся понизить размерность наших данных, отбрасывая признаки, которые меньше всего влияют на смысл, на суть этих данных. Это задача понижения размерности. Также мы можем не просто отбрасывать признаки, а приходить в какое-то новое пространство признаков, генерируя новые признаки или просто моделируя какое-то новое пространство. Еще одной из задач по этому подходу в этой области является задача кластеризации. У нас просто есть какое-то большое количество данных, мы пытаемся найти в этих данных какие-то кластеры или группы похожих друг на друга объектов. В данном случае у нас тоже нет разметки, мы просто пытаемся группировать наши данные на какое-то количество кластеров. А также огромное распространение в последнее время получает задача моделирования статистического распределения наших данных. У нас могут быть наши данные, мы попытаемся построить модель, которая умеет моделировать распределение этих данных, чтобы потом, например, из этого распределения мы могли генерировать новые примеры, новые признаки, новые данные. И одной из, опять же, самых встречающихся применений обучения без учителя в индустрии, в области, является задача поиска аномалий. Например, в нашем банке идет большое количество транзакций, и мы пытаемся анализировать эти транзакции и находить транзакции мошеннические. В данном случае у нас очень маленькое количество примеров аномальных транзакций, мошенничества, и возможно, их даже вообще нет. Мы пытаемся найти какие-то выбросы, какие-то аномальные транзакции, которые могут быть фродом, или мошенничеством. Точно то же самое можно применять для каких-то заводок и сложных установок, где у нас поломки случаются очень редко или даже никогда. Мы с вами поговорили про обучение без учителя, и еще одним методом, который немного отличается от того, что мы с вами только что обсуждали про учителя и не учителя, это обучение с подкреплением, или reinforcement learning. В этом случае у нас задача ставится немного по-другому. Существует определенная среда, или окружение, и агент, который в этой среде действует. То есть у нас заданы какие-то правила в нашем мире, какая-то физика в этом мире, и какой-то агент, какой-то актор пытается с этим миром взаимодействовать, получая вознаграждение или штрафы за свои действия. Таким образом, повторяя различные действия, наш агент может выучивать определенные политики, выучивать определенное поведение, так чтобы максимизировать, например, вознаграждение. Это очень мощная концепция, которая используется на данный момент достаточно мало где, однако в будущем скорее всего будет активно развиваться и применяться, о чем говорят многие исследователи. На данный момент большинство исследований, большинство статей на эту тему по данному подходу работают с каким-то игровыми средами. Например, вы могли слышать про AlphaGo от компании DeepMind, который не так давно обыграл чемпионов мира по игре в Go. А также та же самая компания активно работает например, с играми Atari или с какими-то лабиринтами. Но несмотря на то, что очень много исследований сосредоточено именно на игровых окружениях, также им находится применение в реальной жизни, например, с помощью обучения с подкреплением была оптимизирована работа для центра Google и сэкономлено электричество практически в два раза, просто за счет таких методов, за счет обучения с подкреплением. Также активно обучение с подкреплением используется в робототехнике, потому что задача, когда у нос агент действует в окружении и получает вознаграждение, отлично ложится на историю, когда робот, например, учится ходить или летать, брать какие-то предметы, что-то распознавать — в общем, взаимодействовать с реальным миром. Что интересно, в данном случае мы можем не только обучать нашего робота в реальном мире, но предобучать его в какой-то виртуальной среде. И обучившись в виртуальной среде, наш робот может уже потом взаимодействовать с миром и дообучаться. Также активно обучение с подкреплением используется, например, в трейдинге, когда боты какие-то могут совершать операции покупки или продажи, и существует четкое вознаграждение — эта прибыль, которая была получена или не получена в результате покупки или продажи каких-то активов. Мы можем обучать с помощью обучения с подкреплением каких-то ботов, которые действуют на рынках. Итак, мы с вами поговорили о трех основных подходах к машинному обучению. Существуют, конечно, какие-то градации, какие-то промежуточные подходы между ними. Например, существует semi-supervised learning, который говорит о том, что мы можем не просто использовать размеченные данные, но и в дополнение к размеченным данным можно использовать какое-то количество неразмеченных данных. И активно тоже развивается эта область. Но тем не менее, в основном выделяют именно три категории: обучение с учителем, когда у нас есть какое-то количество размеченных данных, мы обучаем на них модель и делаем предсказание на новых данных; обучение без учителя — когда у нас есть просто данные, и мы пытаемся по ним сделать какие-то выводы или как-то их преобразовать; и обучение с подкреплением — когда мы пытаемся смоделировать определенную среду или окружение, и агент, взаимодействуя с этой средой, пытается выучить поведение, которое максимизирует какую-то функцию, максимизирует вознаграждение.