Искусственный интеллект
Шрифт:
Сеть Коско
Общий вид архитектуры рекуррентной нейронной сети можно представить следующим образом.
В процессе исследований рекуррентных нейронных сетей стало ясно, что с обычными искусственными нейронами они работают не совсем эффективно – обычные нейроны с течением времени как будто бы «размываются», теряют своё обучение. Это не позволяет эффективно использовать обычные нейроны в рекуррентных нейронных сетях для задач классификации и, главное, прогнозирования временных рядов. И тогда появилась идея по разработке новых типов искусственных нейронов. Одним из наиболее знаменитых в этом плане является LSTM-нейрон (от англ. LongShort-TermMemory – «долгая краткосрочная память»).
Итак, Сепп Хохрайтер и Юрген Шмидхубер в 1997 г. предложили новый вариант искусственного нейрона, который затем был улучшен Феликсом Герсом в 2000 г. Искусственная нейросеть, составленная из LSTM-нейронов, является универсальной в смысле Тьюринга, т. е. при помощи неё можно вычислить любую вычислимую функцию (матрицу весов такой нейросети можно воспринимать как программу). Именно такие нейросети сегодня являются фундаментальной основой для построения решений ведущих компаний, работающих в области искусственного интеллекта. Сам же LSTM-нейрон может быть представлен при помощи следующей диаграммы.
Представленные выше диаграммы нарисованы с использованием следующих условных обозначений:
• обычная стрелка – входные и выходные связи нейрона, поток значений между функциями внутри нейрона;
• пунктирная стрелка – входные и выходные связи нейрона, поток значений между функциями внутри нейрона с задержкой по времени (на один или более тактов работы нейронной сети);
• плюс – функция суммирования входных значений;
• точка – функция перемножения входных значений;
• чёрный круг – дубликатор потока значений;
• гейт S – функция активации, обычно представляющая собой сигмоиду;
• гейт G – функция активации для входного потока, обычно являющаяся гиперболическим тангенсом;
• гейт H – функция активации для выходного потока, обычно тоже гиперболический тангенс;
• поток i – результат активации для входного потока;
• поток z – результат активации для рекуррентного входного потока (обычно с нейронов того же слоя);
• поток f – результат активации для гейта забывания;
• поток o – результат активации для выходного потока;
• поток y – результат работы LSTM-нейрона в целом.
На сегодняшний день, как уже сказано выше, LSTM-нейрон является самой продвинутой моделью биологического нейрона. Однако он всё так же имеет одно важное упущение – нейроны в нервной системе млекопитающих получают информацию не только при помощи передачи электрических импульсов от дендритов через аксоны к следующим нейронам, но ещё используются различные нейромедиаторы в синаптических щелях, а также гуморальное воздействие на весь нейрон в целом. Кроме того, до сих пор не до конца изучена роль глиальных клеток, которых в нервной системе на порядок больше, чем нейронов. Другая сложность, которая проявляется при реализации искусственных нейросетей на LSTM-нейронах, – их относительно высокие требования к вычислительным ресурсам.
Из-за описанных сложностей с LSTM-нейроном был разработан так называемый GRU-нейрон (от англ. gatedrecurrentunit – «рекуррентный нейрон с гейтами»), который практически повторяет структуру LSTM-нейрона, но в нём нет выходного гейта H и, соответственно, всех используемых этим гейтом потоков. Это позволило существенно снизить вычислительную сложность работы такого искусственного нейрона, однако он так же эффективен для отдельных задач, как и LSTM-нейрон (в частности, на GRU-нейронах хорошо решаются задачи синтеза – моделирование музыки или моделирование текста и разговора).
Мы изучили сети прямого распространения и рекуррентные сети, и уже по пройденному материалу видно, как широко это направление исследований. Так что теперь мы можем перейти к более прикладным вариантам, на которых сегодня решается большинство задач, где используются искусственные нейронные сети.
Самый первый интересный вариант – так называемый «автокодировщик». Этим словом обозначается специальная архитектура искусственной нейронной сети с одним скрытым слоем без обратных связей. Главная особенность такой сети заключается в том, что количество нейронов на входном и выходном слоях одинаково, а на скрытом слое – меньше. Это ограничение необходимо для того, чтобы сеть не зафиксировалась на тривиальном варианте в процессе обучения без учителя, которое для автокодировщиков заключается в получении на выходном слое результатов, как можно более похожих на входные параметры сети. Другими словами, обучение нейронов скрытого слоя в таких условиях позволяет автокодировщику как бы осуществлять обобщение, сжимающее кодирование входной информации, отсюда и такое наименование.
Автокодировщики часто используются для последовательного обучения слоёв искусственных нейронных сетей. При таком подходе каждый новый слой представляется в качестве скрытого слоя автокодировщика, при этом входным слоем является предыдущий слой, обученный на предыдущем же шаге. Размерность каждого следующего слоя снижается, и тем самым нейросеть должна находить всё больше и больше обобщений, она должна всё сильнее и сильнее повышать степень абстракции кодируемой информации. После такого обучения нейросеть на каждом скрытом слое содержит нейроны, которые отвечают за очень глубокие уровни абстракции входной информации, и чем глубже слой, на котором находится нейрон, тем выше уровень абстракции. Сегодня это один из основных подходов в технологии глубокого обучения.
Автокодировщик
Перед переходом к рассмотрению глубоких нейронных сетей остаётся отметить несколько особенных вариантов автокодировщиков.
• Вариационный автокодировщик – автокодировщик, в рамках которого делаются сильные предположения относительно распределения скрытых переменных. Такие автокодировщики используют вариационное исчисление для обучения представлению скрытых переменных, что приводит к дополнительной потере компонентов при использовании специализированного алгоритма обучения. Он предполагает, что данные сгенерированы направленной графической моделью, и автокодировщик при обучении строит аппроксимацию апостериорного распределения.
• Автокодировщик, удаляющий шум – автокодировщик, который принимает частично «повреждённые» входные данные, а обучение осуществляется для получения неискажённого выхода. Такие автокодировщики восстанавливают так называемое «хорошее представление», которое может быть получено из повреждённого выхода так, что достаточно точно воспроизводит ожидаемый выход.
• Разрежённый автокодировщик – автокодировщик, который во время обучения имеет большее число скрытых нейронов, чем входных. Это создаёт так называемую «разрежённость» в нейронах, которая накладывается и на выходные нейроны. Иногда это бывает полезно при решении задач классификации. • Контрастный автокодировщик – автокодировщик, который явным образом добавляет регуляризацию своей целевой функции, что заставляет нейронную модель исследовать функцию, которая является устойчивой к небольшим изменениям входных значений.
Теперь, наконец-то, перейдём к рассмотрению искусственных нейронных сетей, которые получили название «свёрточных» (а также двойственных им – «развёрточных»). Такие нейросети получили в последнее время самое широкое распространение, поскольку являются базовым строительным блоком для построения систем «глубокого обучения». Рассмотрим несколько примеров.
Свёрточная сеть – ещё одна специальная архитектура искусственных нейронных сетей, которая очень эффективно решает задачу распознавания образов. Сама по себе архитектура была предложена в 1988 г. французским учёным Яном Лекуном, который взял некоторые идеи из устройства нервной системы млекопитающих и, в частности, зрительной коры головного мозга. Структура свёрточной нейронной сети состоит из большого количества слоёв двух чередующихся типов – свёрточных и субдискретизирующих. Обычно работа такой сети описывается как постепенный переход от конкретных особенностей распознаваемого образа к абстрактным деталям всё выше и выше по иерархии уровней абстракции. Например, в применении к изображениям это обозначает, что первые слои обнаруживают в частях изображения различные типовые элементы вроде разнонаправленных отрезков, а на последних слоях нейроны уже активируются в ответ на наличие в составе изображения каких-либо форм, конкретных объектов или образов.