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

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

Содержание:

Введение

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

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

Глава 1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

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

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

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

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

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

В современном развитии нейронных сетей можно выделить несколько этапов.

1 этап - прорыв в области нейроинтеллекта:

1943 г. - выходит статья У. Маккалока и У. Питтса о нервной активности, в которой они формулируют понятие нейронной сети и представляют модель нейронной сети на электрических схемах;

1948 г.- Норберт Винер публикует работу о кибернетике;

1949 г. - Д. Хебб предлагает первый алгоритм обучения;

1958 г. - Джон фон Нейман предложил имитацию простых функций нейронов с использованием вакуумных трубок;

в 1958 г. Ф. Розенблатт изобретает однослойный перцептрон.

2 этап - Период застоя:

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

2. Однослойные сети теоретически неспособны решить многие простые задачи, в том числе реализовать функцию «исключающее ИЛИ».

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

3 этап

Благодаря исследованию таких ученых, как Кохонен, Гроссберг, Андерсон,

сформировался теоретический фундамент, на основе которого стало возможно

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

1974 г. - П. Вербосом разработан алгоритм обратного распространения ошибки для обучения многослойных перцептронов, переоткрытый заново в 1982 г. Д. Паркером и в 1986 году Дэвидом И. Румельхартом, Дж. Е. Хинтоном и Рональдом Дж. Вильямсом и независимо, и одновременно С.И. Барцевым и В.А. Охониным (Красноярская группа). Этот систематический метод для

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

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

1975 г. - Фукусима представляет Когнитрон - самоорганизующуюся сеть,

предназначенную для инвариантного распознавания образов.

1980 г. - в попытках улучшить когнитрон Фукусимой была разработана мощная

парадигма, названная неокогнитрон.

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

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

1987 г. - Роберт Хехт-Нильсон, решая временные ограничения сети обратного

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

1987 г. - Гроссберг создал адаптивную резонансную теорию (APT) и модели нейронных сетей, построенных на ее основе. Сети и алгоритмы APT сохраняют пластичность, необходимую для изучения новых образов, в то же время, предотвращая изменение ранее запомненных образов.

2000-е годы - проблема попадания в локальный минимум была решена, в частности, применением стохастических методов обучения (Больцмановское обучение. Обучение Коши).

2007 г. - Джеффри Хинтоном в университете Торонто созданы алгоритмы глубокого обучения многослойных нейронных сетей. Успех обусловлен тем, что Хинтон при обучении нижних слоев сети использовал ограниченную машину Больцмана (RBM - Restricted Boltzmann Machine). На сегодня разработано достаточно много других моделей нейронных сетей, имеющих свои особенности. В современном обществе многие проблемы сводятся к проблемам управления слабоструктурированными, а часто и неструктурированными сложными системами.

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

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

Кора головного мозга человека является плоской, образованной из нейронов поверхностью, толщиной от 2 до 3 мм площадью около 2200 см2, что вдвое превышает площадь поверхности стандартной клавиатуры. Кора главного мозга содержит около 1011 нейронов, что приблизительно равно числу звезд Млечного пути. Каждый нейрон связан с 103 - 104 другими нейронами. В целом мозг человека имеет приблизительно от 1014 до 1015 взаимосвязей.

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

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

Биологический нейрон

Нейрон (нервная клетка) является особой биологической клеткой, которая обрабатывает информацию. Она состоит из тела клетки - сомы (soma), и двух типов внешних древовидных ответвлений: аксона (axon) и дендритов (dendrites). Тело клетки содержит ядро (nucleus), которое содержит информацию о наследственных свойствах нейрона, и плазму, обладающую молекулярными средствами для производства необходимых нейрону материалов. Нейрон получает сигналы (импульсы) от других нейронов через дендриты (приемники) и передает сигналы, сгенерированные телом клетки, вдоль аксона (передатчика), который в конце разветвляется на волокна (strands). На окончаниях волокон находятся синапсы (synapses).

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

biologicalneuron

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

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

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

История создания искусственных нейронов уходит своими корнями в 1943 год, когда шотландец МакКаллок и англичан Питтс создали теорию формальных нейросетей, а через пятнадцать лет Розенблатт изобрёл искусственный нейрон (перцептрон), который впоследствии и лёг в основу нейрокомпьютера.

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

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

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

Здесь — соответственно сигналы на входах нейрона и веса входов, функция u называется индуцированным локальным полем, а f(u) — передаточной функцией. Возможные значения сигналов на входах нейрона считают заданными в интервале [0,1]. Они могут быть либо дискретными (0 или 1), либо аналоговыми. Дополнительный вход и соответствующий ему вес используются для инициализации нейрона. Под инициализацией подразумевается смещение активационной функции нейрона по горизонтальной оси, то есть формирование порога чувствительности нейрона. Кроме того, иногда к выходу нейрона специально добавляют некую случайную величину, называемую сдвигом. Сдвиг можно рассматривать как сигнал на дополнительном, всегда нагруженном, синапсе.

Передаточная функция нейрона

Передаточная функция f(u) определяет зависимость сигнала на выходе нейрона от взвешенной суммы сигналов на его входах. В большинстве случаев она является монотонно возрастающей и имеет область значений [-1,1] или [0,1], однако существуют исключения. Также для некоторых алгоритмов обучения сети необходимо, чтобы она была непрерывно дифференцируемой на всей числовой оси. Искусственный нейрон полностью характеризуется своей передаточной функцией. Использование различных передаточных функций позволяет вносить нелинейность в работу нейрона и в целом нейронной сети.

Классификация нейронов

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

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

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

Промежуточные нейроны — выполняют основные вычислительные операции.

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

artificialneuronwelcome

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

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

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

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

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

Для начала стоит знать, что любая нейросеть состоит из двух основных слоёв - принимающего (он же и распределительный) сигналы и обрабатывающего. Однако, если нейронная сеть состоит только лишь из этих двух слоев - то она однослойная, если слоев больше, то многослойная. Теперь поподробнее.

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

Выглядит однослойная нейронная сеть следующим образом:

onelayernn

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

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

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

Так выглядит многослойная нейронная сеть:

MultiLayerNN

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

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

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

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

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

recurr

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

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

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

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

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

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

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

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

Пусть решением некоторой задачи является функция Y = F(X), заданная параметрами входных-выходных данных (X1, Y1), (X2, Y2), …, (XN, YN), для которых Yk = F(Xk) (k = 1, 2, …, N).

Обучение состоит в поиске (синтезе) функции G, близкой к F в смысле некоторой функции ошибки E.

Если выбрано множество обучающих примеров – пар (XN, YN) (где k = 1, 2, …, N) и способ вычисления функции ошибки E, то обучение нейронной сети превращается в задачу многомерной оптимизации, имеющую очень большую размерность, при этом, поскольку функция E может иметь произвольный вид обучение в общем случае - многоэкстремальная невыпуклая задача оптимизации.

Для решения этой задачи могут использоваться следующие (итерационные) алгоритмы:

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

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

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

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

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

  • поиск в случайном направлении,
  • имитация отжига,
  • метод Монте-Карло (численный метод статистических испытаний);

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

Глава 2. ПРАКТИЧЕСКАЯ ЧАСТЬ

Требуется определить под какой % банку можно предоставить кредит клиенту.

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

а) кредитная история (хорошая, плохая);

б) платежеспособность клиента (хорошая, средняя, плохая).

Значения выходного сигнала это % кредитная ставка для клиента:

а)низкая;

б)средняя;

в)высокая.

Правила применимые к данному решению:

1. Если кредитная история хорошая, платежеспособность хорошая, то % кредитная ставка по кредиту низкая.

2. Если кредитная история хорошая, платежеспособность средняя, то % кредитная ставка средняя.

3. Если кредитная история плохая, платежеспособность плохая, то % ставка

высокая.

Для решения мы будем использовано программное обеспечение MatlabFuzzyLogicToolbox.

Для реализации был выбран алгоритм логического вывода mamdani.

На его основе создана система kredit из двух входящих сигналов: «КредитнаяИстория» и «Платежеспособность». Выходным сигналом данной задачи является «Процентная ставка».

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

Для описания входящего сигнала «КредитнаяИстория» использовались следующие характеристики:

1. Для обеих функций Membership function plots тип функции: «trapmf»;

2. Range и Display Range от 0 до 10;

3. Параметры для функции «Плохая» имеют значения [0 0 1 3];

4. Параметры для функции «Хорошая» имеют значения [7 9 10 10]

Для описания входящего сигнала «Платежеспособность» использовались следующие характеристики:

1. Для обеих функций Membership function plots тип функции: «gaussmf»;

2. Range и Display Range от 0 до 10;

3. Параметры для функции «Плохая» имеют значения [1.699 0];

4.Для функции «Средняя» имеют значения [1.699 5]

5.Для функции «хорошая» параметры имеют значения [1.699 10]

Для настройки выходного сигнала «Процентная ставка» использовались следующие характеристики:

1. Для обеих функций Membership function plots тип функции: «trimf»;

2. Range и Display Range от 0 до 30;

3. Параметры для функции «низкая» имеют значения [0 5 10];

4. Параметры для функции «Средняя» имеют значения [10 15 20];

5. Параметры для функции «высокая» имеют значения [20 25 30];

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

Через Rule Editor были настроены правила:

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

Далее с помощью Rule Viewer произведем проверку настроенных правил:

- Если кредитная история хорошая[10] и платежеспособность хорошая[10], тогда предоставляемый процент будет низким[5.26]:

- Если кредитная история хорошая[10], платежеспособность средняя[5] то процент ставки средний[14.7]:

- Если кредитная история плохая[0], платежеспособность плохая[0], то % ставка высокая[25].

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

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

Заключение

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

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

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

  1. Александр Галушкин, Яков Цыпкин Нейронные сети. История развития теории. Учебное пособие, АльянС 2015 г.
  2. http://www.frolov-lib.ru/books/hi/ch04.html#_Toc153187381
  3. http://life-prog.ru/1_7556_obuchenie-neyronnih-setey.html
  4. https://habrahabr.ru/post/312450/
  5. http://neuronus.com/theory/240-algoritmy-obucheniya-iskusstvennykh-nejronnykh-setej.html
  6. https://ru.wikipedia.org/wiki/Искусственная_нейронная_сеть
  7. http://neuralnet.info/глава-1-введение/
  8. http://www.stevsky.ru/kompiuteri/iskusstvennie-neyronnie-seti-ins-chto-takoe-neyroseti-kak-oni-rabotaiut-preimuschestva-i-nedostatki-iskusstvennich-neyronov-gde-ispolzuiutsya-neyroseti