цифровая электроника
вычислительная техника
встраиваемые системы

 
» » Что такое нейронные сети и как они работают?

Что такое нейронные сети и как они работают?

Автор: Mike(admin) от 11-04-2017, 12:55

В последнее время в области компьютерных наук и вычислительной техники набирает популярность такая математическая модель как нейронная сеть. Простейшее определение нейронной сети, более правильно именуемой искусственной нейронной сетью (ИНС), дал изобретатель одного из первых нейрокомпьютеров доктор Роберт Хехт-Нильсен. Он определяет нейронную сеть как: «вычислительная система, состоящая из нескольких простых взаимосвязанных элементов обработки, которые обрабатывают информацию по реакции динамического состояния на внешние входы».


ИНС – это устройства обработки (алгоритмы или фактические аппаратные средства), которые моделируются по правилам образования нейронной структуры коры головного мозг, но в гораздо меньших масштабах.


Большая искусственная нейронная сеть может иметь сотни или тысячи процессорных (обрабатывающих информацию) единиц, тогда как мозг человека имеет миллиарды нейронов с соответствующим количеством их связей взаимодействия. Хотя исследователи ИНС, как правило, не заинтересованы в том, точно ли их сети напоминают биологические системы, некоторые из них все же пытаются в некотором роде повторить биологические структуры. Например, исследователи точно моделировали функцию сетчатки глаз с помощью искусственной нейронной сети.


Нейронные сети обычно организованы слоями. Слои состоят из нескольких взаимосвязанных «узлов», которые содержат «функцию активации». Информация подается на входной слой, который связан с одним или несколькими скрытыми слоями, где фактическая обработка осуществляется через систему взвешенных связей. Затем скрытые слои соединяются с выходным слоем, на который выводится ответ.


Нейронная сеть

Большинство нейронных сетей содержат некоторую форму правила обучения, которая изменяет веса соединений в соответствии с входными данными. В некотором смысле, ИНС учатся на примере так же, как их биологические аналоги. Ребенок учится распознавать собак на примерах собак. Хотя существует множество различных правил обучения, используемых нейронными сетями, в данном случае рассмотрим одно из самых распространенных – дельта-правило или правило дельты. Оно часто используется наиболее общим классом нейронных сетей с обратным распространением ошибки.


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


Обратное распространение ошибки выполняет градиентный спуск в векторном пространстве решения в направлении «глобального минимума» вдоль самого крутого вектора поверхности ошибки. Глобальный минимум – это теоретическое решение с наименьшей возможной ошибкой. Сама поверхность ошибки является гиперпараболоидной, но редко гладкой. Действительно, в большинстве задач пространство решений довольно нерегулярно с многочисленными «ямами» и «холмами», которые могут привести к тому, что сеть будет располагаться в «локальном минимуме», что не является лучшим решением. Так как природа пространства ошибок не может быть известна априори, анализ нейронной сети часто требует большого количества отдельных прогонов для определения наилучшего решения. Большинство правил обучения имеют математические правила, которые помогают в этом процессе, они контролируют «скорость» (коэффициент бета-функции) и «импульс» обучения. Скорость обучения представляет собой скорость конвергенции между текущим решением и глобальным минимумом. Импульс помогает сети преодолевать препятствия (локальные минимумы) на поверхности ошибки и располагаться на глобальном минимуме или около него.


Как только нейронная сеть «обучена» до удовлетворительного уровня, ее можно использовать как аналитический инструмент для других данных. Для этого пользователь больше не задает никаких тренировочных прогонов и вместо этого разрешает сети работать только в режиме прямого распространения. Новые входные данные подаются на входной слой, где они фильтруются и обрабатываются скрытыми слоями, как если бы происходило обучение, однако в этот момент выходной результат сохраняется и не происходит обратного распространения. Также возможно перетренеровать нейронную сеть, а это означает, что сеть будет обучена именно для того, чтобы реагировать только на один тип входной информации. В реальности такая сеть не будет представлять собой эффективный инструмент для решения поставленных общих задач, поскольку она лишь запомнит выборку, которая использовалась при ее обучении. А при подаче на вход несколько различающихся данных ее ответ может быть не верен в большинстве случаев.


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


Есть много преимуществ и ограничений использования нейронной сети, и для правильного обсуждения этого вопроса нам пришлось бы рассмотреть каждый отдельный тип сети, что не является необходимым для этого общего обзора. Однако в отношении сетей с обратным распространением ошибок есть некоторые специфические проблемы, о которых должны знать потенциальные разработчики. Они, как правило, медленнее в обучении, чем другие типы сетей, и иногда требуют тысяч эпох. Если вы работаете на действительно параллельной компьютерной системе, это не будет проблемой, но если такая сеть моделируется на стандартной последовательной машине (Mac или ПК), обучение может занять некоторое время. Это связано с тем, что компьютеры должны вычислять функции каждого узла и соединения отдельно, что может быть проблематичным в очень больших сетях с большим объемом данных. Однако скорость большинства современных машин такова, что обычно это не является большой проблемой.


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




© digitrode.ru


Теги: нейронная сеть




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий