Помощь в написании студенческих работ
Антистрессовый сервис

Нейронные сети. 
Разработка системы распознавания изображений на основе аппарата искусственных нейронных сетей

РефератПомощь в написанииУзнать стоимостьмоей работы

Упрощенная модель нервной системы животных при этом представляется в виде системы клеток, каждая из которых имеет тело и ответвления двух типов: дендриты и аксоны. В определенный момент клетка получает сигналы от других клеток через дендриты и, если эти сигналы будут достаточной силы, возбуждается и передает это возбуждение другим клеткам, с которыми она связана, через аксоны. Таким образом… Читать ещё >

Нейронные сети. Разработка системы распознавания изображений на основе аппарата искусственных нейронных сетей (реферат, курсовая, диплом, контрольная)

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

Упрощенная модель нервной системы животных при этом представляется в виде системы клеток, каждая из которых имеет тело и ответвления двух типов: дендриты и аксоны. В определенный момент клетка получает сигналы от других клеток через дендриты и, если эти сигналы будут достаточной силы, возбуждается и передает это возбуждение другим клеткам, с которыми она связана, через аксоны. Таким образом сигнал (возбуждение) распространяется по всей нервной системы. Модель нейронных сетей устроена аналогичным образом. Нейронная сеть состоит из нейронов и направленных связей между ними, при этом каждая связь имеет некоторый вес. При этом часть нейронов является входными — на них поступают данные из внешней среды. Затем на каждом шаге нейрон получает сигнал от всех входных нейронов, вычисляет взвешенную сумму сигналов, применяет к ней некоторую функцию и передает результат на каждый из своих выходов. Также сеть имеет некоторое количество выходных нейронов, которые формируют результат работы сети. Так, для задачи классификации выходные значения этих нейронов могут означать спрогнозированные вероятности каждого из классов для входного объекта. Соответственно, обучение нейронной сети заключается в подборе таких весов для связей между нейронами, чтобы выходные значения для всех входных данных оказывались максимально близкими к действительным.

Выделяется несколько основных типов архитектур нейронных сетей:

  • · Сеть прямого распространения (feed-forward network) — подразумевает, что нейроны и связи между ними образуют ациклический граф, где сигналы распространяются только в одном направлении. Именно такие сети являются наиболее популярными и широко изученными, и их обучение представляет наименьшие трудности.
  • · Рекуррентные нейронные сети (recurrent neural networks) — в таких сетях, в отличие от сетей прямого распространения, сигналы может передаваться в обоих направлениях, и могут поступать на один и тот же нейрон несколько раз в процессе обработки одного входного значения. Частной разновидностью рекуррентных нейронных сетей является, например, машина Больцмана. Основной трудностью в работе с такими сетями является их обучение, так как создать эффективный алгоритм для этого в общем случае является сложной задачей и до сих пор не имеет универсального решения.
  • · Самоорганизующиеся карты Кохонена — нейронная сеть, предназначенная в первую очередь для кластеризации и визуализации данных.

В истории развития нейронных сетей выделяют 3 основных периода подъема. Первые исследования в области искусственных нейронных сетей относятся к 40-м годам 20 века. В 1954 году Дж. Маккалок и У. Питтс опубликовали работу «Логическое исчисление идей, относящихся к нервной деятельности» [27], в которой были изложены основные принципы построения искусственных нейронных сетей. В 1949 году была опубликована книга Д. Хебба «Организация поведения», где автор рассмотрел теоретические основы обучения нейронных сетей и впервые сформулировал концепцию обучения нейронных сетей как настройку весов между нейронами. В 1954 году В. Кларк впервые осуществил попытку реализовать аналог сети Хебба с помощью компьютера. В 1958 году Ф. Росенблатт предложил модель персептрона, который представлял собой по сути нейронную сеть с одним скрытым слоем [31]. Принципиальный вид персептрона Росенблатта представлен на рисунке 1.

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

Однако интерес к нейронным сетям существенно снизился после публикации М. Минским и С. Папертом книги «Персептроны» («Perceptrons») в 1969 году [28], где они описали существенные ограничения, которые имеет модель персептрона, в частности, невозможность представления функции исключающего или, а также указали на слишком высокие требования к требуемой вычислительной мощи компьютеров для обучения нейронных сетей. Так как данные ученые имели очень высокий авторитет в научном сообществе, нейронные сети были на некоторое время признаны малоперспективной технологией. Ситуация изменилась только после создания в 1974 году алгоритма обратного распространения ошибки.

Алгоритм обратного распространения ошибки (backpropagation algorithm) был предложен в 1974 году одновременно и независимо двумя учеными, П. Вербосом и А. Галушкиным. Данный алгоритм основан на методе градиентного спуска. Основная идея алгоритма заключается в распространении информации об ошибке от выходов сети к ее входам то есть в обратном направлении по отношению к стандартному походу. При этом веса связей корректируются на основе дошедшей до них информации об ошибке. Основное требование, которое накладывает данный алгоритм — то, что функция активации нейронов должна быть дифференцируема, так как метод градиентного спуска, что неудивительно, вычисляется на основе градиента.

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

Алгоритм backpropagation, в то же время, имеет ряд проблем. Так, использование градиентного спуска предполагает риск схождения к локальному минимуму. Другой важной проблемой является долгое время обучения алгоритма при наличии большого количества слоев, так как ошибка в процессе обратного распространения имеет свойство все сильнее уменьшаться при приближении к началу сети, соответственно, обучение начальных слоев сети будет происходить крайне медленно. Еще одним недостатком, свойственным нейронным сетям в целом, является сложность в интерпретации результатов их работы. Обученная модель нейронной сети представляет собой некоторое подобие черного ящика, на вход которой подается объект и на выходе получается прогноз, однако определить, какие признаки входного объекта при этом учитывались и какой из нейронов за что отвечает, обычно достаточно проблематично. Это делает нейронные сети во многом менее привлекательными по сравнению, например, с деревьями решений, в которых обученная модель сама по себе представляет некоторую квинтессенцию знаний о рассматриваемой предметной области и исследователю легко понять, почему данный объект был отнесен к тому или иному классу.

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

Этот спад завершился только в 2000;х годах 21 века, когда появилось и стало распространяться понятие deep learning, или глубокого обучения. Возрождению нейронных сетей способствовало появление новых архитектур, таких, например, как сверточные сети, restricted bolzman machines, стэковые автоенкодеры и т. д., которые позволили добиться существенно более высоких результатов в таких сфера машинного обучения, как распознавание изображений и речи. Существенным фактором для их развития стало также появление и распространение мощных видеокарт и их применение для вычислительных задач. Видеокарты, отличаясь значительно большим количеством ядер по сравнения с процессором, пусть и меньшей мощности каждое, идеально подходят для задач обучения нейронных сетей. Это в сочетании с существенно возросшей в последнее время производительностью компьютеров в целом и распространением вычислительных кластеров позволило обучать существенно более сложные и глубокие архитектуры нейронных сетей, чем ранее.

Показать весь текст
Заполнить форму текущей работой