Нейронная сеть с прямой связью
Из Википедии, бесплатной энциклопедии
Нейронная сеть с прямой связью — искусственная нейронная сеть, в которой соединения между узлами не образуют цикл[1]. Такая сеть отличается от рекуррентной нейронной сети.
Нейронная сеть с прямой связью была первым и самым простым типом искусственной нейронной сети[2]. В этой сети информация перемещается только в одном направлении вперед от входных узлов, через скрытые узлы (если они есть) и к выходным узлам. В сети нет циклов или петель обратных связей[1].
Однослойный персептрон
[править | править код]Самым простым видом нейронной сети является однослойная сеть персептрона, которая состоит из одного слоя выходных узлов; входы которой идут непосредственно на выходы через серию весов. Сумма произведений весов и входов рассчитывается в каждом узле, и если значение превышает некоторый порог (обычно 0), нейрон срабатывает и принимает активированное значение (обычно 1); в противном случае он принимает деактивированное значение (обычно −1). Нейроны с такой функцией активации также называют искусственными нейронами или линейными пороговыми юнитами. В литературе термин персептрон часто относится к сетям, состоящим только из одного из этих юнитов. Подобный нейрон был описан Уорреном Мак-Каллоком и Уолтером Питтсом в 1940-х годах.
Персептрон может быть создан с использованием любых значений для активированного и деактивированного состояний, пока пороговое значение находится между ними.
Перцептроны могут обучаться с помощью простого алгоритма обучения, который обычно называется дельта-правилом. Он вычисляет ошибки между вычисленными выходными данными и образцами выходных данных и использует их для создания корректировки весов, реализуя таким образом форму градиентного спуска.
Однослойные персептроны способны изучать только линейно разделимые структуры; в 1969 году в известной монографии под названием «Персептроны» Марвина Мински и Сеймура Паперта показали, что однослойная сеть персептронов не может выучить функцию XOR (тем не менее, было известно, что многослойные персептроны способны производить любую возможную булеву функцию).
Хотя единичная пороговая единица довольно ограничена в своих вычислительных мощностях, было показано, что сети параллельных пороговых единиц могут аппроксимировать любую непрерывную функцию от компактного интервала действительных чисел до интервала [-1,1]. Этот результат можно найти у Питера Ауэра, Харальда Бургштайнера и Вольфганга Маасса «Правило обучения для очень простых универсальных аппроксиматоров, состоящих из одного слоя перцептронов»[3].
Однослойная нейронная сеть может вычислять непрерывный выход вместо пошаговой функции. Распространенным выбором является так называемая логистическая функция:
При таком выборе однослойная сеть идентична модели логистической регрессии, широко используемой в статистическом моделировании. Логистическая функция также известна как сигмовидная функция. Она имеет непрерывную производную, что позволяет использовать её в обратном распространении. Эта функция также предпочтительна, потому что ее производная легко вычисляется:
(Тот факт, что f удовлетворяет приведенному выше дифференциальному уравнению, легко показать, применив правило цепочки)
Многослойный персептрон
[править | править код]Этот класс сетей состоит из нескольких уровней вычислительных блоков, обычно связанных между собой с помощью прямой связи. Каждый нейрон в одном слое имеет направленные связи с нейронами последующего слоя. Во многих приложениях устройства этих сетей применяют сигмовидную функцию в качестве функции активации.
Теорема универсального приближения для нейронных сетей гласит, что каждая непрерывная функция, отображающая интервалы действительных чисел в некоторый выходной интервал действительных чисел, может быть произвольно приближена многослойным персептроном только с одним скрытым слоем. Этот результат справедлив для широкого диапазона функций активации, например, для сигмоидальных функций.
В многослойных сетях используется множество методов обучения, наиболее популярным из которых является обратное распространение. Здесь выходные значения сравниваются с правильным ответом для вычисления значения некоторой предопределенной функции ошибки. Затем различными способами ошибка возвращается по сети. Используя эту информацию, алгоритм корректирует вес каждого соединения, чтобы уменьшить значение функции ошибки на некоторое небольшое значение. После повторения этого процесса для достаточно большого количества тренировочных циклов сеть обычно будет сходиться к некоторому состоянию, в котором погрешность вычислений мала. В этом случае можно сказать, что сеть изучила определенную целевую функцию. Для правильной настройки весов применяется общий метод нелинейной оптимизации, который называется градиентным спуском. Для этого сеть вычисляет производную функции ошибки по весам сети и изменяет веса таким образом, чтобы ошибка уменьшалась (таким образом, спускаясь вниз по поверхности функции ошибки). По этой причине обратное распространение может применяться только в сетях с дифференцируемыми функциями активации.
В общем, проблема обучения сети для эффективной работы даже на образцах, которые не использовались в качестве обучающих, является довольно тонкой проблемой, требующей дополнительных методов. Это особенно важно для случаев, когда доступно только очень ограниченное количество обучающих образцов[4]. Опасность заключается в том, что сеть перекрывает данные обучения и не в состоянии захватить истинный статистический процесс, генерирующий данные. Вычислительная теория обучения связана с обучением классификаторов на ограниченном количестве данных. В контексте нейронных сетей простая эвристика, называемая ранней остановкой, часто гарантирует, что сеть будет хорошо обобщаться для примеров, не входящих в обучающий набор.
Другими типичными проблемами алгоритма обратного распространения являются скорость сходимости и возможность попадания в локальный минимум функции ошибки. Сегодня существуют практические методы, которые делают обратное распространение в многослойных персептронах инструментом выбора для многих задач машинного обучения.
Можно также использовать серию независимых нейронных сетей, модерируемых каким-то посредником, подобное поведение происходит в мозге. Эти нейроны могут работать раздельно и справляться с большой задачей, и результаты могут быть окончательно объединены[5].
Примечания
[править | править код]- ↑ 1 2 Zell, Andreas. Simulation Neuronaler Netze // [Simulation of Neural Networks] (in German) (1st ed.). Addison-Wesley. — 1994. — С. 73. — ISBN 3-89319-554-8.
- ↑ Schmidhuber, Jürgen. Deep learning in neural networks: An overview // Neural Networks. 61: 85–117. — 2015. — ISSN 0893-6080. — doi:10.1016/j.neunet.2014.09.003. — arXiv:1404.7828.
- ↑ Auer, Peter; Harald Burgsteiner; Wolfgang Maass. A learning rule for very simple universal approximators consisting of a single layer of perceptrons // Neural Networks. — 2008. — № 21 (5). — С. 786–795. — doi:10.1016/j.neunet.2007.12.036. — PMID 18249524. Архивировано 6 июля 2011 года.
- ↑ Roman M. Balabin; Ravilya Z. Safieva; Ekaterina I. Lomakina. Comparison of linear and nonlinear calibration models based on near infrared (NIR) spectroscopy data for gasoline properties prediction // Chemometr Intell Lab. 88 (2). — 2007. — С. 183–188. — doi:10.1016/j.chemolab.2007.04.006.
- ↑ Tahmasebi, Pejman; Hezarkhani, Ardeshir. Application of a Modular Feedforward Neural Network for Grade Estimation // Natural Resources Research. 20 (1). — 21 January 2011. — С. 25—32. — doi:10.1007/s11053-011-9135-3.