Обработка данных: глубокое обучение без учителя на языке Python

Введение и план курса

Здравствуйте и добро пожаловать на занятия по теме «Глубокое обучение без учителя на языке Python: глубокое обучение на языке Python, часть 4».

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

Объединив эти две вещи, мы получаем глубокое обучение без учителя.

В этом курсе начнём мы с основ – метода главных компонент (PCA) и популярного метода нелинейного снижения размерности многомерных переменных, носящего название t-SNE.

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

Затем мы рассмотрим ограниченные машины Больцмана, представляющие собой ещё одну популярную нейронную сеть с обучением без учителя и которые можно, как и автокодировщики, использовать для предварительного обучения глубокой нейронной сети с обучением с учителем. Я покажу вам один интересный способ обучения ограниченных машин Больцмана, называющийся сэмплированием по Гиббсу или контрастной дивергенцией, и продемонстрирую, что несмотря на то, что данный метод является грубым приближением, он всё равно приводит к уменьшению функции затрат, вроде тех, которые мы использовали в автокодировщиках.

Наконец, мы объединим все этих понятия и я наглядно покажу, что получается при использовании метода главных компонент и t-SNE на признаках, обнаруженных автокодировщиками и ограниченной машиной Больцмана. Вы увидите, что даже без меток взаимосвязи будут находиться.

Как этот курс вписывается в занятия глубоким обучением

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

В самом начале, ещё до знакомства с глубоким обучением, вы изучили линейную и логистическую регрессии – линейные модели, одна из которых предназначена для регрессии, а вторая – для классификации. В этом курсе мы вновь встретимся как с задачей регрессии, так и задачей классификации. Напомню, что мы используем функцию квадратов ошибок для регрессии и кросс-энтропийную функцию – для классификации. Вы также знаете, что для нахождения оптимальных значений весовых коэффициентов мы берём производную целевой функции, приравниваем её к нулю и решаем относительно весовых коэффициентов. При этом в случае логистической регрессии обнаруживается, что аналитического решения для нахождения весовых коэффициентов нет, так что приходится использовать градиентный спуск. В этом курсе мы столкнёмся с ситуацией, когда не получается даже найти производную.

В моём вводном курсе по глубокому обучению вы изучили метод обратного распространения ошибки, на самом деле являющемся тем же градиентным спуском. Вы также узнали о функции софтмакс, позволяющей одновременно классифицировать более чем два класса. В следующем курсе мы обсуждали некоторые способы улучшения метода обратного распространения ошибки, включая импульс и адаптивные коэффициенты обучения. Импульс будет использоваться и в этом курсе. Я также показывал, как использовать графический процессор, чтобы намного ускорить обучение нейронной сети, и, вероятно, вам также захочется его использовать, когда мы в этом курсе перейдём к обучению более крупных нейронных сетей.

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

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

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

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

Понравилась статья? Поделить с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: