Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Нейронные сети (История развития нейронных сетей)

Содержание:

Введение

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

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

Широкие возможности. Нейронные сети являются мощным методом моделирования, позволяющим воспроизводить весьма сложные зависимости. Нейронные сети обладают нелинейностью по свой природе

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

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

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

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

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

Но даже современные нейронные сети являются мощным инструментом в арсеналах специалистов прикладной статистики.

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

Часть 1. Теоретическая часть

1.1 История развития нейронных сетей

Термин «нейронная сеть» начал использоваться специалистами в середине XX века.[1]

Основные работы, в которых были получены первые результаты по данному направлению, были выполнены Питтсом и Мак-Каллоком.

В 1943 году они разработали компьютерную модель нейронной сети на основе теории деятельности головного мозга и математических алгоритмов.

Они высказали предположения, что нейроны могут упрощенно рассматриваться как устройства, которые оперируют двоичными числами, и эта модель была названа «пороговая логика».

По аналогии со своим биологическим прототипом, нейроны Питтса–Мак-Каллока имели способность обучаться за счет подстройки параметров, которые описывают синаптическую проводимость.

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

Питтс и Мак-Каллок высказали предположение, что такие сети в состоянии обучаться, обобщать, распознавать образы, т. е. обладают всеми признаками интеллекта.[5]

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

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

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

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

Более поздние варианты теории Хебба легли в основу описания явлений долговременной потенциации.

В Массачусетском технологическом институте в 1954 году с использованием компьютеров Кларк и Фарли была создана имитация сети Хебба. Кроме этого, при помощи компьютерного моделирования были проведены исследования нейронных сетей в 1956 году Холландом, Рочестером, Дудой, Хебитом.[1]

В 1957 году Розенблатт разработал на основе двухслойной обучающейся нейронной сети компьютерную и математическую модели восприятия информации мозгом.

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

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

Интерес к исследованиям нейронных сетей начал спадать после публикации в 1969 году Пейперта и Минского работ по машинному обучению.[5] Они обнаружили основные вычислительные проблемы, которые возникают при компьютерных реализациях искусственных нейронных сетей.

Первая проблема заключалась в том, что однослойными нейронными сетями невозможно было выполнять сложения по модулю 2, то есть выполнить реализацию функции «исключающее ИЛИ».[6]

Вторая важная проблема состояла в том, что компьютеры не имели достаточной вычислительной мощности, чтобы эффективно выполнять большие объемы вычислений, необходимые для больших нейронных сетей.

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

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

В 1975 году Фукусима разработал когнитрон, который являлся одной из первых многослойных нейронных сетей.

Используемые в когнитроне методы и фактическая структура сети для настройки относительных весов связей менялись от одной стратегии к другой. Каждая стратегия имела свои недостатки и преимущества.

Сети могли распространять информацию только по одному направлению или передавать информацию от одного конца к другому, пока не активизируются все узлы и сеть не приходит в конечное состояние.

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

Под названием коннективизма в середине 1980 годов стали популярны алгоритмы параллельной распределенной обработки данных.[1]

В 1986 году в работах Мак-Клелланда и Руммельхарта коннективизм использовался для компьютерного моделирования нейронных процессов.

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

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

В 2006 году были предложены некоторые неконтролируемые алгоритмы обучения нейронных сетей с одним и несколькими слоями с использованием процедур глубокого обучения.[7]

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

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

Не являются исключением и искусственные нейронные сети.

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

Также нейронные сети использовались для настройки параметров нечетких систем управления.

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

1.2 Аналогия нейронных сетей с мозгом и биологическим нейроном

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

Основным направлением исследований в сфере искусственного интеллекта в период 60-х - 80-х годов, служили экспертные системы.

В основе таких систем лежало высокоуровневое моделирование процессов мышления, в частности, на представления, что процессы человеческого мышления построены на манипуляциях с символами.

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

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

Человеческий мозг состоит приблизительно их 10 000 000 000 нейронов, которые соединены многочисленными связями, в среднем до нескольких тысяч связей на один нейрон, и их количество может сильно колебаться.

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

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

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

В биологический нейрон входит тело, диаметр которого в пределах от 3 до 100 мкм, которое содержит ядро с большим количеством ядерных пор и другие органеллы, в числе которых сильно развитые шероховатые ЭПР с активными рибосомами, аппарат Гольджи и отростки.[6]

Среди отростков выделяют два вида.

Аксонами называют обычные длинные отростки, приспособленные для проведения возбуждения от тел нейронов.[7]

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

Нейроны могут иметь по несколько дендритов и обычно, только один аксон. У одного нейрона могут иметься связи с десятками тысяч других нейронов. В коре головного мозга человека содержатся от 10 до 20 миллиардов нейронов.

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

Одним из самых авторитетных исследователей нейронных систем, Дональдом Хеббом был высказан постулат, что обучение в первую очередь заключается в изменении сил синаптических связей.

Например, в классических опытах Павлова, каждый раз перед непосредственным кормлением собак звонил колокольчик, и собаки быстро научилась связывать звонок колокольчика с пищей.

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

Будучи построен из очень большого числа простых элементов, каждый из которых берет взвешенную сумму входных сигналов и в случаях, если суммарные входы превышают определенные уровни, передает дальше двоичные сигналы, мозг может решать весьма сложные задачи.[9]

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

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

С каждым нейроном связано некоторое пороговое значение. Для нейрона вычисляется взвешенная сумма входов, а из нее вычитается пороговое значение, в результате чего получается значение активации нейрона, которое также называют пост-синаптическим потенциалом нейрона, сокр. PSP.[6]

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

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

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

Ранее было представлено описание отдельных нейронов.

Сети, состоящие из нейронов имеют входы, принимающие значения переменных из внешнего мира и выходы, выдающие прогнозы или управляющие сигналы.[8]

Выходы и входы и соответствуют двигательным и сенсорным нервам, например, идущим соответственно от глаз в руки.

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

Простейшая нейронная сеть имеет структуру с прямой передачей сигналов: сигналы идут от входов по скрытым элементам и в конце концов поступают на выходные элементы.

Такой структурой обеспечивается устойчивое поведение.

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

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

Типичный пример сети с прямой передачей сигнала показан на рисунке 1.1.[7]

Нейроны регулярным образом организованы в слои.

Входной слой просто служит для ввода значений входных переменных. Каждый из выходных и скрытых нейронов соединен со всеми элементами предыдущего слоя.

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

Рисунок 1.1 - пример сети с прямой передачей сигнала

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

На каждом из них вычисляется свое значение активации, берется взвешенная сумма выходов элементов предыдущего слоя и из нее вычитается пороговое значение. [7]

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

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

1.3 Понятие искусственного нейрона

Искусственный нейрон изображен на рисунке 2. Другие названия - математический нейрон Питтса — Маккалока, формальный нейрон — узел нейронной искусственной сети, который является упрощенной моделью естественного нейрона.

S

.

.

.

X1

X2

X3

Xn

W1

W2

W3

Wn

Y

Входы

Синапсы

Аксон

Выход

Рисунок 1.2 – искусственный нейрон

С математической точки зрения искусственный нейрон является сумматором всех входящих сигналов. Он применяет общем случае, некоторую простую, нелинейную функцию, непрерывную по всей области определения, к полученной взвешенной сумме.[5]

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

Искусственные нейроны объединяются между собой определенным, заранее установленным образом, при этом образуется искусственная нейронная сеть.

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

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

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

Каждая связь искусственного нейрона характеризуется своим весом.

Связи имеющие положительный вес называют возбуждающими, а отрицательный — тормозящими[5].

Выход искусственного нейрона по аналогии с биологическим прототипом называется аксоном.

С единственного выхода искусственного нейрона сигналы могут поступать на произвольное число входов других нейронов.

Каждый синапс характеризует величина синаптических связей или ее вес, который может рассматриваться как эквивалент электрической проводимости биологических нейронов.

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

Данная функция называется функцией срабатывания, функцией активации или передаточной функцией[6].

Полученные результаты посылаются на единственные выходы. Искусственные нейроны объединяются в сети, при этом соединяются выходы одних нейронов с входами других.

Искусственные нейроны и искусственные нейронные сети являются основными элементами идеальных нейрокомпьютеров.

Математическую модель искусственного нейрона впервые предложили У. Маккалок и У. Питтс, вместе с моделью сети, составленной из этих нейронов. Авторами было показано, что сети из таких элементов могут выполнять логические и числовые операции[9].

Практическую сеть на искусственных нейронах впервые в 1958 году реализовал Фрэнк Розенблатт, в виде компьютерной программы, а вдальнейшем как электронное устройство, называемое перцептрон.

Первые нейроны могли оперировать только с сигналами с логическими нулями и логическими единицами[8], поскольку были построены на основе биологических прототипов, которые могли пребывать только в двух состояниях — невозбужденном и возбужденном.

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

Такие обобщения моделей искусственных нейронов были сделаны Хоффом и Уидроу[10], которыми было предложено в качестве функций срабатывания нейронов использовать логистические кривые.

1.4 Виды искусственных нейронных сетей

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

Подавая любые данные на входы сетей, получаются какие-либо наборы данных на выходах сетей. Работа нейронных сетей заключается в преобразовании входных векторов данных X в выходные вектора данных Y, причем эти преобразования задаются весам сети.

В зависимости от признаков существуют различные классификации нейронных сетей. Можно выделить три основных типа нейронных сетей при классификации по топологиям,:

полносвязные сети ( рис. 1.3, а);

многослойные или слоистые сети (рис 1.3, б)

слабосвязные сети (рис. 1.3, в)

а

ба

ва

Рисунок 1.3 - Архитектуры нейронных сетей:

а – полносвязная сеть,

б – многослойная сеть с последовательными связями,

в – слабосвязные сети

Полносвязные сети представляют собой искусственные нейронные сети, сокр. ИНС, каждый нейрон такой сети передает свои выходные сигналы остальным нейронам, в том числе и самому себе (рис. 1.3, а).[9]

Все входные сигналы передаются всем нейронам. Выходными сигналами сети могут быть некоторые или все выходные сигналы нейронов после нескольких тактов функционирования сети.

В многослойных и многосвязных сетях нейроны объединены в слои. Слои содержат совокупности нейронов с едиными входными сигналами. Число нейронов во всех слоях может различаться и заранее никак не связано с количеством нейронов в других слоях.

На рисунке 1.4 изображена классификация нейронных сетей.

Классификация нейронных сетей

Характер обучения

Настройка весов

С учителем

Без учителя

Фиксированная

Динамическая

Тип входной информации

Применяемая модель сети

Аналоговая

Двоичная

Прямого распространения

Рекуррентные

Радиально-базисные

Самоорганизующиеся

Рисунок 1.4 – классификация нейронных сетей[9]

По характеру обучения классификация нейронных сетей выделяет среди них:

  • использующие обучение с учителем нейронные сети;
  • использующие обучение без учителя нейронные сети.

Использующие обучение с учителем нейронные сети.

Обучением с учителем предполагается, что для каждого входного вектора задается целевой вектор, который представляет собой требуемый выход. Вместе их называют обучающей парой. Обычные сети обучаются на некотором числе обучающих пар. Предъявляются выходные вектора, вычисляются выходы сети и сравниваются с соответствующими целевыми векторами.[9]

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

Использующие обучение без учителя нейронные сети.

Обучение без учителя представляет гораздо более правдоподобные модели обучения с точки зрения биологических корней искусственных нейронных сетей.

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

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

Классификация по настройке весов:[7]

  • сеть с фиксированной связью – весовые коэффициенты нейронных сетей выбираются исходя из условий задачи сразу;
  • сеть с динамической связью – для них в процессе обучения выполняется настройка синаптических весов.

По типам входных данных:

  • аналоговые – входные данные представлены в форме действительных чисел;
  • двоичные – все входные данные в таких сетях представляются в виде нулей и единиц.

По применяемым моделям нейронных сетей.

В сетях прямого распространения все связи направляются строго к выходным нейронам от входных. К таким сетям относят, например: простейшие персептроны, разработанные Розенблаттом и многослойные персептроны.

В реккурентных нейронных сетях сигналы от выходных нейронов или нейронов скрытых слоев частично передаются обратно на входы входного слоя нейронов.

Радиально базисные функции – вид нейронной сети, имеющий скрытый слой из радиальных элементов и выходной слой из линейных элементов. Сети этого типа довольно компактны и быстро обучаются. Предложены в работах Broomhead and Lowe (1988) и Moody and Darkin (1989).[10]

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

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

В сети Кохонена имеют всего два слоя: выходной и входной, составленные из радиальных элементов.

1.5 Обучение нейронных сетей

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

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

С понятиями обучения связано достаточно много видов деятельности, поэтому сложно давать таким процессам однозначные определения. Кроме этого, процессы обучения зависят от точек зрения на них. Именно это делает практически невозможными какие-либо точные определения данного понятия. Например, процессы обучения с точек зрения психологов в корне отличаются от обучения с точек зрения школьных учителей.[9]

С позиции нейронных сетей, вероятно, может использоваться следующее определение:

Обучение является процессом, в котором свободные параметры нейронных сетей настраиваются при помощи моделирования сред, в которые эти сети встроены. Типы обучения определяются способами подстройки этих параметров.

Этим определением процесса обучения нейронной сети предполагается следующая последовательность событий:[10]

В нейронную сеть из внешней среды поступают стимулы.

В результате таких поступлений у нейронной сети изменяются свободные параметры.

После изменений внутренней структуры нейронные сети отвечают на возбуждение уже другим способом.

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

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

Алгоритмы обучения отличаются друг от друга способами настроек синаптических весов нейронов.

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

При обучении нейронных сетей с учителем предполагается, что для всех входных векторов из обучающего множества существуют требуемые значения выходных векторов, называемые целевыми.[7] Такими векторами образуются обучающие пары. Веса сетей изменяются до тех пор, пока для всех входных векторов не будут получены приемлемые уровни отклонений выходных векторов от целевых.

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

Обучение нейронных сетей представляет процессы, в которых параметры нейронных сетей настраиваются с помощью моделирования сред, в которые эти сети встроены. Типы обучения определяются способами подстройки параметров.[9]

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

Для того, чтобы нейронные сети были способны выполнять поставленные задачи, их необходимо обучать (рис. 1.5).

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

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

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

База данных

Выбор примера

Распространение сигнала по нейронной сети

Сеть обучена

Расчет ошибки

Подстройка весов сети

Ответ сети

Ошибка мала

Ошибка велика

Рисунок 1.5 - процесс обучения нейронных сетей

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

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

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

Для обучения нейронной сети без учителя используются сигнальные методы обучения Ойа и Хебба.

При этом можно использовать следующие итерационные алгоритмы.[9]

Алгоритмы с локальной оптимизацией и вычислением частных производных первых порядков:

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

Алгоритмы с локальной оптимизацией и вычислением частной производной первого и второго порядков:

  • методы Ньютона;
  • методы оптимизаций с разреженными матрицами Гессе;
  • квазиньютоновские методы;
  • методы Ньютона и Гаусса;
  • методы Марквардта и Левенберга и пр.

Стохастические оптимизационные алгоритмы:

  • поиск в случайных направлениях;
  • имитации отжига;
  • методы Монте-Карло и численные методы статистических испытаний;
  • алгоритмы и задачи глобальной оптимизации, решающиеся при помощи перебора значений переменных, от которых зависят целевые функции.

Часть 2. Задача на определение расхода воды на полив

2.1 Задание

В задаче требуется определить расход воды при поливе с/х угодий. 

Входные сигналы: 

а) количество с/ч  культур (много культур, мало культур), 

б) температура воздуха летом (засушливое лето, нормальное лето, холодное лето). 

Выходной сигнал: расход воды на полив (большой расход, средний расход, маленький расход). 

Правила: 

1. Если с/х культур много, лето засушливое, то расход воды большой. 

2. Если с/х культур много, лето нормальное, то расход воды средний. 

3. Если с/х культур мало, лето холодное, то расход воды маленький.

2.2 Решение

Решение выполняется в MATLAB Fuzzy Logic Toolbox.

Для запуска FIS - редактора в MATLAB нужно ввести команду “fuzzy”[2]. На рисунке 2.1 изображен запуск FIS - редактора в MATLAB.

Рисунок 2.1 - запуск FIS - редактора в MATLAB

На рисунке 2.2 изображено окно FIS – редактора.

Рисунок 2.2 - окно FIS - редактора

По умолчанию редактор добавляет в проектируемую систему одну входящую переменную. Ей задается осмысленное имя – “number-of-crops” – количество культур (рис. 2.3).

Рисунок 2.3 - задается осмысленное имя переменной

По условию задачи система должна принимать 2-е входящих переменных. Для добавления переменной в систему нужно выбрать в меню “Add/Variable/Input”[3] (рис. 2.4).

Рисунок 2.4 - добавление переменной

Добавленной переменной назначается имя ”weather” – погода.

Рисунок 2.5 – назначение имени переменной

Задается имя выходной переменной ”water flow” – расход воды (рис. 2.6).

Рисунок 2.6 - задается имя выходной переменной

Создаваемая система сохраняется в файл (рис. 2.7, 2.8).

Рисунок 2.7 – меню сохранения в файл

Рисунок 2.8 - система сохраняется в файл

В редакторе функций принадлежности задаются наименования термов.[4]

Для переменной number-of-crop условиями задачи предусмотрены 2-а терма – «мало» и «много» (рис. 2.9).

Рисунок 2.9 - задаются наименования термов для number-of-crop

Для переменной weather условиями задачи предусмотрены 3-и терма – «засушливое», «нормальное» и «холодное» (рис. 2.10).

Рисунок 2.10 – термы для переменной weather

Для переменной ”water flow” задаются термы – «большой», «средний», «маленький» с гауссовыми функциями принадлежности (рис. 2.11).

Рисунок 2.11 – термы для переменной ”water flow”

Задаются правила, предусмотренные условиями задачи.

Для задания правил выбирается пункт меню – ”Edit/Rules” (рис. 2.12).

Рисунок 2.13 - выбирается пункт меню задания правил

Задается первое правило (рис. 2.14).

Рисунок 2.14 – задание первого правила

Задается второе правило (рис. 2.15).

Рисунок 2.15 – задание второго правила

Задается третье правило (рис. 2.16).

Рисунок 2.16 – задание третьего правила

Система сохраняется на диск, как было показано на рисунках 2.7 и 2.8.

На рисунке 2.17 представлено окно визуализации нечеткого вывода.

Это окно активизируется выбором пункта меню ”View/Rules”.

Рисунок 2.17 - визуализации нечеткого вывода

Значения входных переменных задаются в поле ”Input”. При задании правил (рис. 2.9-2.11) были оставлены значения предложенные MATLAB по умолчанию, т.к. условиями задачи значения для этих переменных не определены.

На рисунке 2.18 приведена поверхность «входы - выход», соответствующая синтезированной нечеткой системе. Это окно открывается выбором пункта меню ”View/Surface”.

Рисунок 2.18 - поверхность «входы - выход»,

соответствующая синтезированной нечеткой системе

Заключение

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

В 1992 г. на конференции по OCR-системам более 40 систем распознавания рукописных текстов были сопоставлены для одних и тех же данных. Десять лучших из них использовали варианты многослойных сетей прямого распространения или классификаторы "ближайшего соседа".

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

Развитие искусственных нейронных сетей вызывает много критики и энтузиазма. Некоторыми сравнительными исследованиями были получены оптимистичные результаты, другими - пессимистичные.

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

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

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

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

Список литературы

  1. Гелиг А., Матвеев А. Введение в математическую теорию обучаемых распознающих систем и нейронных сетей. Учебное пособие. — СПб.: Издательство "СПбГУ", 2014.— 224 с.
  2. Гилат А. MATLAB. Теория и практика. —V.: Издательство "ДМК Пресс", 2016.— 416 с.
  3. Дьяконов В. MATLAB и SIMULINK для радиоинженеров. — М.: Издательство "ДМК Пресс", 2016.— 976с.
  4. Куркина Е. Моделирование нелинейных явлений в физико-химических системах. С подробными примерами в MATLAB. Учебное пособие. — СПб.: Издательство "Ленанд", 2016.— 104с.
  5. Олескин А. Сетевые структуры в биосистемах и человеческом обществе. — М.: Издательство "Либроком", 2015.— 304 с.
  6. Редько В. Эволюция, нейронные сети, интеллект. Модели и концепции эволюционной кибернетики. — СПб.: Издательство "Ленанд", 2015.— 224 с.
  7. Редько Г. Подходы к моделированию мышления. — СПб.: Издательство "Ленанд", 2016.— 292 с.
  8. Тархов Д. Нейросетевые модели и алгоритмы. Справочник. — М.: Издательство "Радиотехника", 2014.— 352 с.
  9. Хайкин С. Нейронные сети. Полный курс. — М.: Издательство "Вильямс", 2016.— 1104 с.
  10. Ширяев В. Финансовые рынки. Нейронные сети, хаос и нелинейная динамика. Учебное пособие. — М.: Издательство "Либроком", 2016.— 232 с.