Рекурсивные сети.
Популярные нейросетевые архитектуры
Обучение, несмотря на всю сложность структуры связей, обучение проводится, примерно, по той же схеме, что и для многослойного персептрона, притом схема одинакова для всех вариантов рекурсивной архитектуры. Основным отличием является, то что обучающая выборка теперь состоит не из отдельных образов, а из их последовательностей. Коротко опишем этот алгоритм. Структура связей: любая рекурсивная сеть… Читать ещё >
Рекурсивные сети. Популярные нейросетевые архитектуры (реферат, курсовая, диплом, контрольная)
На практике нейросети зачастую применяются для обработки некоторых последовательностей: звуковых волн, видеопоследовательностей, данных с измерительных приборов и т. д. Для предъявления нейросети данные разбиваются на блоки и подаются нейросети. Такая модель, зачастую работает, но обладает недостатком — обычный многослойный персептрон рассматривает каждый блок независимо от другого, не учитывая возможную связь между ними. Для обработки последовательностей это может оказаться существенным недостатком.
Рассмотрим нейросеть, специально приспособленную для обработки последовательностей — рекурсивную сеть. В литературе их, зачастую, называют сетями Эльмана [2], однако, Эльман является автором лишь одной из моделей. Идея состоит в том, что бы приспособить двухслойный персептрон к обработке последовательностей.
Модель нейрона такая же, как и в многослойном персептроне.
Структура связей: любая рекурсивная сеть строится на основе двухслойного персептрона. В первых рекурсивных сетях главной идеей было дать сети видеть свой выходной образ на предыдущем шаге. У такой сети только часть рецепторов принимает сигналы из окружающего мира, на другие рецепторы приходит выходной образ из предыдущего момента времени.
Что же происходит? Рассмотрим прохождение последовательности сигналов через сеть. Сигнал поступает на группу рецепторов соединённых с внешним миром и проходит в скрытый слой (будем считать, что на начальном этапе другие рецепторы неактивны). Преобразованный скрытым слоем сигнал пойдёт на выходной слой. Сигнал, пройдя через выходной слой, выйдет из сети, а его копия попадёт на задержку. Далее в сеть, на рецепторы, воспринимающие внешние сигналы, поступает второй образ, а на вторую группу рецепторов — выходной образ с предыдущего шага из задержки. Далее со всех рецепторов сигнал пойдёт в скрытый слой. Для скрытого слоя безразлична природа сигнала на второй группе рецепторов, поэтому он будет функционировать, как в обычном многослойном персептроне. Сигнал из скрытого слоя поступит в выходной. Переработанный выходным слоем, сигнал выйдет из сети, а его копия опять попадёт на задержку. И так далее.
Следующим шагом было использование того же принципа, но сохранять не выходной образ, а выход скрытого слоя.
Как видно из схемы у сети два входа для сигналов извне. Три нейрона в скрытом слое и три нейрона во входном слое, на которые с задержкой приходит копия результата работы скрытого слоя.
Самым популярным является следующий подход: возьмём обычный двухслойный персептрон и выходы скрытого слоя, передав сигнал выходному слою, пустим через задержку опять на входы скрытого слоя, смешав их сигналом из окружающего мира. Поясним что же имеется ввиду.
Что же происходит? Рассмотрим прохождение последовательности сигналов через сеть. Сигнал поступает на вход проходит в скрытый слой. Преобразованный скрытым слоем сигнал пойдёт на выходной слой, а его копия — на задержку. Сигнал, пройдя через выходной, слой выйдет из сети. Далее в сеть поступает второй сигнал. Поступив на входы он пойдёт на скрытый слой, просуммированный с сигналом, находящимся на задержки. После этого выход скрытого слоя пойдёт в выходной, а его копия опять сохранится в задержке. И так далее. Обычно, перед суммированием сигнал из задержки умножается на некоторый коэффициент W меньше единицы. Чем больше этот коэффициент, тем сильней влияние предыдущих сигналов на выход сети. Иногда между сигналом в задержке и входным сигналом берётся среднее арифметическое. Из структуры понятно, что количество нейронов скрытого слоя и количество входов (размерность входного образа) должны быть равны. Такой вариант рекурсивной сети реализован, например, в Neural Networks Toolbox в системе MatLab.
Можно так же придумывать множество вариантов и комбинаций, но суть останется неизменной: результат работы одного из слоёв сети, в том или ином виде, подается на входы при обработке следующего сигнала.
Сделаем несколько общих для всех рекурсивных нейросетей замечаний:
- · Единицей обработки является не один образ, а последовательность.
- · Нейросеть «помнит» начало обрабатываемой последовательности. Память, о каждом из образов, а следовательно и его влияние, затухает экспоненциально.
- · Сеть сохраняет все свойства многослойного персептрона.
- · Для первого элемента обрабатываемой последовательности все рекурсивные элементы предполагаются неактивными или принимают заранее предопределённое состояние.
Обучение, несмотря на всю сложность структуры связей, обучение проводится, примерно, по той же схеме, что и для многослойного персептрона, притом схема одинакова для всех вариантов рекурсивной архитектуры. Основным отличием является, то что обучающая выборка теперь состоит не из отдельных образов, а из их последовательностей. Коротко опишем этот алгоритм.
Итак, пускай у нас есть обучающая выборка:
{Xб, Yб}; б = 1,2,…, p,.
где n — число элементов в последовательности. n — может быть фиксированным для всех последовательностей в обучающей выборке, а может и зависеть от б. Придадим весам случайные значения и далее будем действовать по следующему алгоритму:
- 1. Возьмём некоторую последовательность {Xnб, Ynб} из обучающей выборки.
- 2. Для пары образов {X1б, Y1б}, проведём коррекцию весов с помощью алгоритма обратного распространения ошибки, считая задержку пустой (нулевой сигнал), заполнив все элементы задержки, согласно конкретной архитектуре связей.
- 3. Далее будем проводить коррекцию весов алгоритмом обратного распространения ошибки последовательно для всех остальных пар последовательности, каждый раз учитывая сигнал на задержке и заполняя её заново.
- 4. Очистив задержку повторим шаги 1−3 для последовательностей в обучающей выборке, пока суммарная ошибка не станет достаточно мала.
Заметим, что каждый раз при оптимизации весов мы работаем с сетью, как с обычным многослойным персептроном (на картинках связи, изображенные пунктиром, не оптимизируются). Следует заметить, что в случае рекурсивных сетей мы будем использовать не сам градиент ошибки, а лишь его приближение. Почему так? При подсчёте ошибки мы не учитываем ошибку, внесённую из-за данных на задержки. Попытка учёта этой составляющей напрямую может привести к слишком глубокой рекурсии и т. д. Из-за этого обучение сходится медленнее и для качественного функционирования рекурсивной сети требуется, в общем случае, большее количество нейронов, чем для обычной. Однако эти недостатки перекрываются множеством достоинств:
- · Способность обрабатывать последовательности образов, учитывая связь между элементами последовательности.
- · Способность вырабатывать последовательности в ответ как на последовательности, так и на единичные образы (достаточно дополнить образ до последовательности нулевыми сигналами).
- · Высокая способность к обобщению, как показано в [3] она выше даже чем у обычного многослойного персептрона.
Рекурсивные нейросети широко используются в:
- · Задачах обработки звука и речи.
- · Анализе электронных схем.
- · В различных задачах компьютерного зрения и обработки сигналов.
Какие задачи решают нейросети Нейросети наиболее приспособлены к решению широкого круга задач, так или иначе связанных с обработкой образов. Вот список типичных постановок задач для нейросетей:
Аппроксимация функций по набору точек (регрессия) Классификация данных по заданному набору классов Кластеризация данных с выявлением заранее неизвестных классов-прототипов Сжатие информации Восстановление утраченных данных Ассоциативная память.