Шпаргалка по разновидностям нейронных сетей. Часть 2
Продолжаем разговор о разновидностях нейронных сетей. В предыдущей статье мы говорили об элементарных архитектурах нейросетей, этот же материал будет посвящён более продвинутым конфигурациям.
Глубинные свёрточные обратные графические сети
Речь идёт о DCIGN (deep convolutional inverse graphics networks, DCIGN). Эти нейросети названы так не совсем корректно, ведь они по большему счёту являются вариационными автокодировщиками, причём кодирующая и декодирующая части представлены свёрточной и развёртывающей нейросетью соответственно.
Нейронные сети этой разновидности моделируют свойства в виде вероятностей, в результате чего вы можете научить их создавать картинку с собакой и котом даже в том случае, если нейросеть видела лишь фото с изображениями только одного из животных. В то же самое время, возможно также и удаление одного из 2-х объектов. Сети DCIGN обычно обучают с помощью метода обратного распространения ошибки.
Генеративные состязательные сети
GAN (generative adversarial networks) представляют собой нейронные сети, похожие на близнецов. Они состоят из любых двух сетей (чаще всего, это FF и CNN), причём одна из сетей генерирует контент, а вторая — оценивает. В результате возникает состязания между сетью-генератором и сетью-дискриминатором, то есть перед нами возникает ситуация, когда один учится обманывать, а второй пытается раскрыть обман (напоминает концепцию «банкир-фальшивомонетчик»). Обучать эти нейросети довольно сложно, ведь надо не только каждую из них обучить, но и правильно настроить баланс.
Рекуррентные нейронные сети
RNN (recurrent neural networks, RNN) представляют собой нейронные сети типа FFNN, но имеют одну особенность: нейроны получают данные не только от предыдущего слоя, но и, собственно говоря, от самих же себя предыдущего прохода. Значит это следующее: порядок, в котором подаются данные и обучается нейросеть, становится важным.
У RNN существует проблема исчезающего (либо взрывного) градиента — речь идёт о быстрой потере информации в течение времени. Да, влияет это только на веса, а не на состояния нейронов, но ведь как раз в них и накапливается информация.
Как правило, нейросети этой разновидности применяют для автоматического дополнения информации.
Сети с долгой краткосрочной памятью
LSTM (long short term memory) пытаются решить упомянутую выше проблему потери информации, применяя для этого фильтры и заданную явно клетку памяти. У каждого нейрона имеется клетка памяти и 3 фильтра: выходной, входной и забывающий. Цель фильтров — защита информации.
Нейросети этого типа можно научить создавать сложные структуры, к примеру, сочинять музыку либо писать, как Шекспир. Но следует учитывать, что LSTM потребляют немало ресурсов.
Управляемые рекуррентные нейроны
GRU (gated recurrent units) представляют собой небольшую вариацию предыдущей сети. У этих нейросетей на один фильтр меньше, а сами связи реализованы несколько иначе. Есть фильтр обновления и фильтр сброса. Первый определяет, какой объём данных останется от прошлого состояния и какой объем будет взят из предыдущего слоя. Фильтр сброса функционирует примерно по аналогии с забывающим фильтром в LSTM.
Нейронные машины Тьюринга
NTM (neural Turing machines) — абстрактная модель LSTM и попытка показать, что на деле происходит внутри нейросети. Здесь ячейка памяти в нейрон не помещена, а находится отдельно, чтобы объединить мощь нейросети и эффективность обычного хранилища данных. Собственно говоря, именно потому такие нейросети и называют машинами Тьюринга, при этом они являются тьюринг-полными в силу существующей у них способности читать и записывать информацию, меняя состояние в зависимости от прочитанного.
Двунаправленные RNN, LSTM и GRU
Картинки нет, т. к. эти нейросети почти не отличаются от однонаправленных вариантов. Но есть разница: они используют как данные из «прошлого», так и данные из «будущего». К примеру, обычную LSTM-сеть учат угадывать слово «рыба», подавая при этом буквы по одной, а 2-направленную — подавая ещё и последующую букву из последовательности. Таким образом, эти нейросети могут, к примеру, расширять изображение по краям, либо заполнять дыры внутри.
Глубинные остаточные сети
DRN (deep residual networks) — очень глубокие сети FFNN-типа, имеющие дополнительные связи между слоями, отделёнными друг от друга. Эти сети можно обучать на шаблонах, имеющих глубину до 150 слоёв(!). Тем не менее считается, что эти нейросети мало отличаются от рекуррентных, поэтому их часто сравнивают с LSTM-сетями.
Нейронная эхо-сеть
ESN (echo state networks) — очередной вид рекуррентных сетей. Особенность — отсутствие сформированных слоёв, то есть связи между нейронами случайны. В результате этого, метод обратного распространения ошибки здесь не срабатывает. Вместо него надо подавать входные данные и передавать их по сети, обновляя нейроны и наблюдая за выходными данными.
Метод экстремального обучения
ELM (extreme learning machines) — по большему счёту, это нейросеть типа FFNN, но имеющая случайные связи. Есть схожесть с LSM и ESN, но использование осуществляется, как в случае с FFNN. Так происходит не только из-за того, что они нерекуррентны, но и по причине, что их можно просто обучать методом обратного распространения ошибки.
Метод неустойчивых состояний
LSM (liquid state machines) — напоминает эхо-сеть, но присутствует важное отличие: сигмоидная активация здесь заменена пороговой функцией, при этом каждый нейрон — накопительная ячейка памяти. В итоге, когда нейрон обновляется, его значение не становится равным сумме соседей, а прибавляется само к себе и при достижении порога сообщается другим нейронам.
Метод опорных векторов
SVM (support vector machines) — речь идёт о нахождении оптимальных решений задач оптимизации. Классическая версия SVM может категоризировать линейно разделяемые данные: к примеру, различать фотографии с котом Гарфилдом и котом Томом. Во время обучения нейросеть как бы размещает всю информацию на 2D-графике, пытаясь разделить данные прямой линией таким образом, дабы с каждой стороны находились данные лишь одного класса, а расстояние от данных до линии было наибольшим. Применяя трюк с ядром, мы можем классифицировать данные размерности n. Кстати, этот метод рассматривается как нейросеть не всегда.
Нейронные сети Кохонена
KN (Kohonen networks, KN) также известны как самоорганизующиеся карты (self organising (feature) maps, SOM, SOFM). Эти нейросети применяют соревновательное обучение для классификации данных без учителя. Нейронной сети подаются входные данные, после чего нейросеть определяет, какие из нейронов в наибольшей степени с ними совпадают. Далее эти нейроны меняются для ещё большей точности совпадения, двигая в процессе за собой соседей. В некоторых случаях карты Кохонена также не считают нейросетями.
Вот и всё! Надеемся, теперь вы будете разбираться в разновидностях нейронных сетей более уверенно.