Добавлен: 28.03.2023
Просмотров: 144
Скачиваний: 2
Введение
В данной курсовой работе изложен материал по дисциплине «Нечеткая логика и нейронные сети». В первой теоретической части рассмотрены история развития нейронных сетей, рассмотрено такое понятие, как нейрон и что он из себя представляет, понятия искусственный нейрон и искусственные нейронные сети. Во второй практической части расписан ход решения практической задачи с помощью программного комплекса Fuzzy Logic Toolbox MATLAB.
1. История развития нейронных сетей
Нейроные сети берут свое начало с середины 40-х годах прошлого века. Двумя первыми и основополагающими являются работы Уорена Маккалока и Уолтера Питтса, вышедщая в 1943 году, и Дональда Хебба, увидевшая свет в 1949 году. Маккалок и Питтс в своей работе описали математическую модель нейронной сети. Хебб же выпустил книгу «Организация поведения», в ней он расписал процесс самообучения искусственных сетей.
Чуть позже один американский ученый Фрэнк Розенблатт изобрел «персептрон» - математическая или компьютерная модель восприятия информации мозгом (кибернетическая модель мозга). В 1969 году интерес к нейронным сетям угасает. Марвин Минский раскритиковал в своей скандальной статье персептрон, он указал задачи которые персептрон не может решить и при каких условиях его работа неэффективна.
В 1974 году Пол Вербос разрабатывает алгоритм обратного распространения ошибки, который используется и по сей день для обучения искусственных нейронных сетей. Начиная с 1985 года Джон Хопфилд предлагает миру свое виденье устройства и работы нейронные сети, которая способна решать некоторые виды задач. Именно работы Джона Хопфилда вновь разогревают нешуточный интерес мировой общественности к искусственным нейронным сетям. В 90-е годы прошлого века алгоритм обратного распространения ошибки получил существенное развитие, за счет чего былая критика Минского касательно неработоспособности сетей окончательно опровергнута. На сегодняшний день искусственные нейронные сети является главным подразделом машинного обучения.
2. Аналогия нейронных сетей с мозгом и биологическим нейроном
Нервная клетка имеет тело, называемое перикарионом, и отростки: аксон и дендриты, аксон только один, а дендритов может быть от одного до множества. По аксону нервный импульс идет от тела, а по дендритам - к телу нейрона.
Рис. 1
В цитоплазме нейрона хорошо развита сеть цитоскелетных структур, при окраске солями серебра они выглядят в виде нитей и поэтому получили название нейрофибрилл. Нервные клетки обладают свойством генерировать и передавать нервные импульсы (потенциалы действия). В нейронах синтезируются нейромедиаторы (один или несколько), с помощью которых происходит передача нервного импульса с нейрона на другой нейрон или клетку.
В человеческом мозге насчитывается порядка миллиарда нейронов. Биологически нейрон представляет собой специализированную клетку, адаптировавшуюся для передачи управляющих импульсов. В составе типичного нейрона обычно выделяют: дендриты – многочисленные короткие отростки, через которые в нейрон поступает входная информация; аксон – как правило, один длинный отросток (от 0,1мм до 1 метра), через который нейрон выдает выходную информацию; синапсы, или синаптические окончания – участки «стыковки» дендритов и аксонов, непосредственно обеспечивающие передачу нервных сигналов от клетки к клетке.
Рассмотрим процесс передачи сигнала нервной клеткой. Нейрон генерирует электрические импульсы, которые проходят по аксону и возбуждают его синапсы. Получив импульс, синапсы аксона начинают выделять в окружающую среду специальные молекулы – нейронные трансмиттеры. Попадая на синапсы дендритов, они могут оказывать как возбуждающее, так и тормозящее действие. Нейрон сам по себе является достаточно сложным устройством, это целый ионный микрокомпьютер размером с клетку. Искусственные нейроны – элементы, связанных между собой определенным образом. Нейроны и межнейронные связи задаются программно на обычном компьютере или могут иметь “материальную” основу – особые микросхемы, какие применяться в специально созданных нейрокомпьютерах. Функционирование нейрона в нейрокомпьютере или нейронной программе отдаленно напоминает работу биологического нейрона.
Искусственные нейронные сети состоят из элементов, функциональные возможности которых аналогичны большинству элементарных функций биологического нейрона. Эти элементы затем организуются по способу, который может соответствовать (или не соответствовать) анатомии мозга. Несмотря на такое поверхностное сходство, искусственные нейронные сети демонстрируют удивительное число свойств, присущих мозгу. Например, они обучаются на основе опыта, обобщают предыдущие прецеденты на новые случаи и извлекают существенные свойства из поступающей информации, содержащей излишние данные. Искусственные нейронные сети могут менять свое поведение в зависимости от внешней среды. Этот фактор в большей степени, чем любой другой, ответствен за тот интерес, который они вызывают. После предъявления входных сигналов они перестраиваются, чтобы обеспечивать требуемую реакцию. Было разработано множество обучающих алгоритмов, каждый со своими сильными и слабыми сторонами.
Отклик сети после обучения может быть до некоторой степени нечувствителен к небольшим изменениям входных сигналов. Искусственная нейронная сеть делает обобщения автоматически благодаря своей структуре, а не с помощью использования «человеческого интеллекта» в форме специально написанных компьютерных программ. Некоторые из искусственных нейронных сетей обладают способностью извлекать сущность из входных сигналов. Например, сеть может быть обучена на последовательность искаженных версий буквы «А». После соответствующего обучения предъявление такого искаженного примера приведет к тому, что сеть породит букву совершенной формы. В некотором смысле она научится порождать то, что никогда не видела. Эта способность извлекать идеальное из несовершенных входов ставит интересные философские вопросы. Способность извлекать идеальные прототипы является у людей весьма ценным качеством.
Искусственные нейронные сети не являются панацеей. Они, очевидно, не годятся для выполнения таких задач, как начисление заработной платы. Однако им будет отдаваться предпочтение в большом классе задач распознавания образов, с которыми плохо или вообще не справляются обычные компьютеры.
3. Понятие искусственного нейрона
Искусственный нейрон имитирует в первом приближении свойства биологического нейрона. На вход искусственного нейрона поступает некоторое множество сигналов, каждый из которых является выходом другого нейрона. Каждый вход умножается на соответствующий вес, аналогичный синаптической силе, и все произведения суммируются, определяя уровень активации нейрона. На рис. 2 представлена модель, реализующая эту идею..
Рис.2
Здесь множество входных сигналов, обозначенных x1, x2,…, xn, поступает на искусственный нейрон. Эти входные сигналы соответствуют сигналам, приходящим в синапсы биологического нейрона. Каждый сигнал умножается на соответствующий вес w1, w2,…, wn, и поступает на суммирующий блок. Каждый вес соответствует «силе» одной биологической синаптической связи. Текущее состояние нейрона определяется, как взвешенная сумма его входов:
Выход нейрона есть функция его состояния: y = f(s). Одной из наиболее распространенных является нелинейная функция с насыщением, так называемая логистическая функция или сигмоид (т.е. функция S-образного вида):
4. Виды искусственных нейронных сетей
Сам по себе искусственный нейрон представляет собой относительно простое устройство, выполняющее несложные функции. Из этих устройств можно формировать сети нейронов, объединяя отдельные нейроны связями. Нейронным сетям могут решать достаточно сложные задачи, например, как распознавание образов и речи, кластеризация значений, предсказание значений сложных и неизвестных функций на основе анализа имеющихся значений этих функций и так далее. Существует множество способов объединить отдельные нейроны в сеть. Чтобы успешно решить с помощью нейронной сети ту или иную задачу, необходимо правильно выбрать топологию сети, т.е. сколько в сети должно быть нейронов, и как они должны быть связаны между собой. Искусственные нейронные сети бывают следующих видов: однослойные и многослойные, прямого распространения и с обратными связями.
Однослойная нейронная сеть – сеть, в которой сигналы от входного слоя сразу подаются на выходной слой, который и преобразует сигнал и сразу же выдает ответ. Простейшая нейронная сеть состоит из одного слоя нейронов.
Рис. 3
Элементы, обозначенные на рис. 3 цифрами от 1 до m представляют собой слой нейронов. Первый слой нашей сети, на который подаются входные сигналы X1…Xn, играет роль распределительного слоя нейронной сети. Каждый элемент распределительного слоя нейронной сети имеет связи со всем нейронами следующего слоя, называемого обрабатывающим слоем. Заметим, что хотя сеть фактически и состоит из двух слоев, одна называется однослойной. Первый распределительный слой не считается, так как он не занят обработкой информации, а играет вспомогательную роль.
Многослойная нейронная сеть – нейронная сеть, состоящая из входного, выходного и расположенного(ых) между ними одного (нескольких) скрытых слоев нейронов. Многослойные нейронные сети обладают гораздо большими возможностями, чем однослойные.
Рис.4
В каждом слое может находиться разное количество нейронов. При этом все входы нейронов следующего слоя соединены с выходами всех нейронов предыдущего слоя. Все нейроны сети имеют свои наборы весовых коэффициентов. При моделировании весовые коэффициенты нейрона можно представить в виде массива. Аналогично, весовые коэффициенты всех нейронов одного слоя можно объединить в массив массивов. Многослойные нейронные сети могут решать более сложные задачи, нежели однослойные.
Сети прямого распространения – искусственные нейронные сети, в которых сигнал распространяется строго от входного слоя к выходному. В обратном направлении сигнал не распространяется. Такие сети широко используются и вполне успешно решают определенный класс задач: прогнозирование, кластеризация и распознавание.
Сети с обратными связями – искусственные нейронные сети, в которых выход нейрона может вновь подаваться на его вход. В более общем случае это означает возможность распространения сигнала от выходов к входам.
Рис.5
Как видно на этом рисунке, сигналы с выходов сети попадают обратно на ее входы. При этом выходные сигналы смешиваются с входными сигналами. Если в нейронной сети имеются обратные связи, она может стать неустойчивой. Такая сеть может «зациклиться», проходя бесконечное количество раз через одни и те же состояния. Нейронные сети могут быть усложнены за счет добавления в нее элементов, задерживающих распространение сигнала в прямом или обратном направлении.
5. Обучение нейронных сетей
Существуют три парадигмы обучения: с учителем, без учителя (самообучение) и смешанная. В первом случае нейронная сеть располагает правильными ответами (выходами сети) на каждый входной пример. Веса настраиваются так, чтобы сеть производила ответы как можно более близкие к известным правильным ответам. Усиленный вариант обучения с учителем предполагает, что известна только критическая оценка правильности выхода нейронной сети, но не сами правильные значения выхода. Обучение без учителя не требует знания правильных ответов на каждый пример обучающей выборки.
Для начала нужно выбрать структуру нейронной сети, затем выбрать значение весовых коэффициентов для всех нейронов этой сети. Рассмотрим несколько правил.
Правило обучения Хэбба.
Обучение – это процесс непрерывного развития посредством взаимодействия с внешней средой и с учетом индивидуальности организма. Самоадаптация и самоорганизация нейронных сетей достигается в процессе их обучения, в ходе которого определяются синаптические связи между нейронными элементами. Обучающие правила определяют, как изменяются весовые коэффициенты в ответ на входное воздействие.
Правило обучения Хебба имеет биологические предпосылки. Оно является основой многих методов обучения нейронных сетей. Согласно этому правилу, обучение происходит в результате усиления силы связи (синаптического веса) между одновременно активными нейронами. Исходя из этого, часто используемые в сети связи усиливаются, что объясняет феномен обучения путем повторения и привыкания. Пусть имеются два нейронных элемента i и j, между которыми существует сила связи, равная wij, тогда правило обучения Хебба запишется как: