Учебники

Искусственная нейронная сеть — Краткое руководство

Искусственная нейронная сеть — основные понятия

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

Что такое искусственная нейронная сеть?

Искусственная нейронная сеть (ANN) — эффективная вычислительная система, центральная тема которой заимствована из аналогии биологических нейронных сетей. ANN также называются «искусственными нейронными системами» или «параллельными распределенными системами обработки» или «системами соединения». ANN приобретает большой набор блоков, которые связаны по некоторому шаблону для обеспечения связи между блоками. Эти единицы, также называемые узлами или нейронами, являются простыми процессорами, которые работают параллельно.

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

Краткая история ANN

История ANN может быть разделена на следующие три эпохи —

ИНН в течение 1940-1960-х годов

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

  • 1943 — Предполагается, что концепция нейронной сети началась с работы физиолога Уоррена МакКаллока и математика Уолтера Питтса, когда в 1943 году они смоделировали простую нейронную сеть с использованием электрических цепей, чтобы описать, как нейроны в мозге могут Работа.

  • 1949 — в книге Дональда Хебба « Организация поведения» подчеркивается тот факт, что повторная активация одного нейрона другим увеличивает его силу при каждом использовании.

  • 1956 — Тейлор ввел ассоциативную сеть памяти.

  • 1958 — Розенблатт изобрел метод обучения для модели нейронов МакКаллока и Питтса по имени Перцептрон.

  • 1960 — Бернард Уидроу и Марсиан Хофф разработали модели под названием «ADALINE» и «MADALINE».

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

1949 — в книге Дональда Хебба « Организация поведения» подчеркивается тот факт, что повторная активация одного нейрона другим увеличивает его силу при каждом использовании.

1956 — Тейлор ввел ассоциативную сеть памяти.

1958 — Розенблатт изобрел метод обучения для модели нейронов МакКаллока и Питтса по имени Перцептрон.

1960 — Бернард Уидроу и Марсиан Хофф разработали модели под названием «ADALINE» и «MADALINE».

ANN в 1960–1980-х годах

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

  • 1961 — Розенблатт предпринял неудачную попытку, но предложил схему «обратного распространения» для многослойных сетей.

  • 1964 — Тейлор построил схему «победитель получает все» с запретами среди выходных устройств.

  • 1969 — Многослойный персептрон (MLP) был изобретен Минским и Папертом.

  • 1971 — Кохонен разработал ассоциативную память.

  • 1976 — Стивен Гроссберг и Гейл Карпентер разработали теорию адаптивного резонанса.

1961 — Розенблатт предпринял неудачную попытку, но предложил схему «обратного распространения» для многослойных сетей.

1964 — Тейлор построил схему «победитель получает все» с запретами среди выходных устройств.

1969 — Многослойный персептрон (MLP) был изобретен Минским и Папертом.

1971 — Кохонен разработал ассоциативную память.

1976 — Стивен Гроссберг и Гейл Карпентер разработали теорию адаптивного резонанса.

ИНН с 1980-х до настоящего времени

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

  • 1982 — Основным событием стал энергетический подход Хопфилда.

  • 1985 — машина Больцмана была разработана Экли, Хинтоном и Сейновским.

  • 1986 — Rumelhart, Hinton и Williams представили обобщенное правило дельты.

  • 1988 — Kosko разработал двоичную ассоциативную память (BAM), а также дал концепцию нечеткой логики в ANN.

1982 — Основным событием стал энергетический подход Хопфилда.

1985 — машина Больцмана была разработана Экли, Хинтоном и Сейновским.

1986 — Rumelhart, Hinton и Williams представили обобщенное правило дельты.

1988 — Kosko разработал двоичную ассоциативную память (BAM), а также дал концепцию нечеткой логики в ANN.

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

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

Нервная клетка (нейрон) — это особая биологическая клетка, которая обрабатывает информацию. Согласно оценке, существует огромное количество нейронов, приблизительно 10 11 с многочисленными взаимосвязями, приблизительно 10 15 .

Принципиальная схема

Принципиальная схема

Работа биологического нейрона

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

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

  • Сома — это клеточное тело нейрона и отвечает за обработку информации, которую они получили от дендритов.

  • Аксон — это как кабель, по которому нейроны посылают информацию.

  • Синапсы — это связь между аксоном и другими нейронными дендритами.

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

Сома — это клеточное тело нейрона и отвечает за обработку информации, которую они получили от дендритов.

Аксон — это как кабель, по которому нейроны посылают информацию.

Синапсы — это связь между аксоном и другими нейронными дендритами.

Энн против БНН

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

Биологическая Нейронная Сеть (BNN) Искусственная нейронная сеть (ANN)
сома Узел
Дендриты вход
синапс Веса или Соединения
аксон Выход

Следующая таблица показывает сравнение между ANN и BNN на основе некоторых упомянутых критериев.

критерии BNN ЭНН
обработка Массивно параллельный, медленный, но превосходящий ANN Параллельно, быстро, но уступает BNN
Размер 10 11 нейронов и 10 15 взаимосвязей От 10 2 до 10 4 узлов (в основном зависит от типа приложения и сетевого дизайнера)
Учусь Они могут терпеть двусмысленность Очень точные, структурированные и отформатированные данные необходимы, чтобы терпеть неоднозначность
Отказоустойчивость Производительность ухудшается даже с частичным повреждением Он способен работать надежно, следовательно, может быть отказоустойчивым
Емкость накопителя Хранит информацию в синапсе Хранит информацию в постоянных ячейках памяти

Модель искусственной нейронной сети

Следующая диаграмма представляет общую модель ANN с последующей ее обработкой.

модель

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

ув=X1.w1 +X2.w2 +X3.w3 dotsoxm.wm

то есть чистый вход yin= summixi.wi

Выход можно рассчитать, применив функцию активации к сетевому входу.

Y=F(yin)

Выход = функция (рассчитан чистый вход)

Искусственная Нейронная Сеть — Строительные Блоки

Обработка ANN зависит от следующих трех строительных блоков —

  • Топология сети
  • Корректировки веса или обучения
  • Функции активации

В этой главе мы подробно обсудим эти три строительных блока ANN.

Топология сети

Топология сети — это расположение сети вместе с ее узлами и соединительными линиями. По топологии ИНС можно классифицировать по следующим видам:

Сеть прямой связи

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

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

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

Однослойная сеть с прямой связью

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

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

Многослойная сеть прямой связи

Сеть обратной связи

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

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

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

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

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

Полностью рекуррентная сеть

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

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

Иорданская сеть

Корректировки веса или обучения

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

Контролируемое обучение

Как следует из названия, этот тип обучения осуществляется под наблюдением учителя. Этот процесс обучения является зависимым.

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

модель

Обучение без учителя

Как следует из названия, этот тип обучения осуществляется без присмотра учителя. Этот процесс обучения является независимым.

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

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

Обучение без учителя

Усиление обучения

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

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

Усиление обучения

Функции активации

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

Функция линейной активации

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

F(х)=х

Функция активации сигмовидной кишки

Это имеет два типа следующим образом —

  • Двоичная сигмоидальная функция — эта функция активации выполняет редактирование ввода между 0 и 1. Она имеет положительный характер. Он всегда ограничен, что означает, что его выход не может быть меньше 0 и больше 1. Он также строго увеличивается по своей природе, что означает, что чем больше вход, тем больше будет выход. Это можно определить как

    Р(х)=Сигм(х)= гидроразрыва11 +ехр(x)

  • Биполярная сигмоидальная функция — эта функция активации выполняет редактирование ввода между -1 и 1. Она может быть положительной или отрицательной по своей природе. Он всегда ограничен, что означает, что его выход не может быть меньше -1 и больше 1. Он также строго увеличивается в природе, как сигмовидная функция. Это можно определить как

    Р(х)=Сигм(х)= гидроразрыва21 +ехр(x)1= гидроразрыва1ехр(х)1 +ехр(х)

Двоичная сигмоидальная функция — эта функция активации выполняет редактирование ввода между 0 и 1. Она имеет положительный характер. Он всегда ограничен, что означает, что его выход не может быть меньше 0 и больше 1. Он также строго увеличивается по своей природе, что означает, что чем больше вход, тем больше будет выход. Это можно определить как

Р(х)=Сигм(х)= гидроразрыва11 +ехр(x)

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

Р(х)=Сигм(х)= гидроразрыва21 +ехр(x)1= гидроразрыва1ехр(х)1 +ехр(х)

Обучение и адаптация

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

Что такое обучение в ANN?

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

Почему это важно?

Будучи сложной адаптивной системой, обучение в ANN подразумевает, что блок обработки способен изменять свое поведение ввода / вывода из-за изменения среды. Важность обучения в ИНС возрастает из-за фиксированной функции активации, а также вектора ввода / вывода, когда создается конкретная сеть. Теперь, чтобы изменить поведение ввода / вывода, нам нужно отрегулировать веса.

классификация

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

Правила обучения нейронной сети

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

Правило изучения иврита

Это правило, одно из старейших и самых простых, было введено Дональдом Хеббом в его книге «Организация поведения» в 1949 году. Это своего рода прямое, неконтролируемое обучение.

Основная концепция — это правило основано на предложении Хебба, который написал:

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

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

Математическая формулировка. Согласно правилу обучения Хевбия, следующая формула увеличивает вес соединения на каждом временном шаге.

 Deltawji(t)= alphaxi(t).yj(t)

Здесь  Deltawji(t) ⁡ = приращение, на которое увеличивается вес соединения на шаге времени t

 alpha = положительная и постоянная скорость обучения

xi(t) = входное значение пресинаптического нейрона на временном шаге t

yi(t) = выход пресинаптического нейрона на шаге времени t

Правило обучения Перцептрона

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

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

Математическая формулировка. Чтобы объяснить математическую формулировку, предположим, что у нас есть «n» число конечных входных векторов, x (n), вместе с его желаемым / целевым выходным вектором t (n), где от n = 1 до N.

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

y \: = \: f (y_ {in}) \: = \: \ begin {case} 1, & y_ {in} \:> \: \ theta \\ 0, & y_ {in} \: \ leqslant \: \ Theta \ конец {случаи}

Где θ — порог.

Обновление веса может быть сделано в следующих двух случаях —

Случай I — когда ты , то

ш(новый)=W(старый) +ТХ

Случай II — когда t = y , то

Без изменений в весе

Delta Learning Rule (правило Уидроу-Хоффа)

Он введен Бернардом Уидроу и Марсианом Хоффом, также называемым методом наименьшего среднего квадрата (LMS), чтобы минимизировать ошибку во всех шаблонах обучения. Это своего рода контролируемый алгоритм обучения с функцией непрерывной активации.

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

Математическая формулировка — Чтобы обновить синаптические веса, дельта-правило задается

 Deltawi= alpha :.xi.ej

Здесь  Deltawi = изменение веса для i- го шаблона;

 alpha = положительная и постоянная скорость обучения;

xi = входное значение от пресинаптического нейрона;

ej = (tyin), разница между желаемым / целевым выходом и фактическим выходом y yin

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

Обновление веса может быть сделано в следующих двух случаях —

Случай I — когда ты , то

w(новый)=w(старый)+ Deltaw

Случай II — когда t = y , то

Без изменений в весе

Конкурентное правило обучения (победитель получает все)

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

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

Конкурентная сеть

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

Математическая формулировка — Ниже приведены три важных фактора для математической формулировки этого правила обучения —

  • Условие быть победителем — Предположим, что если нейрон yk ⁡ ⁡ хочет быть победителем, то будет выполнено следующее условие:

    y_ {k} \: = \: \ begin {case} 1 & if \: v_ {k} \:> \: v_ {j} \: для \: все \: j, \: j \: \ neq \: k \\ 0 & в противном случае \ end {case}

Условие быть победителем — Предположим, что если нейрон yk ⁡ ⁡ хочет быть победителем, то будет выполнено следующее условие:

y_ {k} \: = \: \ begin {case} 1 & if \: v_ {k} \:> \: v_ {j} \: для \: все \: j, \: j \: \ neq \: k \\ 0 & в противном случае \ end {case}

Это означает, что если какой-либо нейрон, скажем, yk wants, хочет победить, то его индуцированное локальное поле (вывод единицы суммирования), скажем, vk, должно быть наибольшим среди всех других нейронов. в сети.

  • Условие суммирования общего веса. Другое ограничение по правилу конкурентного обучения состоит в том, что сумма весов для конкретного выходного нейрона будет равна 1. Например, если мы рассмотрим нейрон k, то —

     displaystyle сумма limitsJwкдж=1длявсеK

Условие суммирования общего веса. Другое ограничение по правилу конкурентного обучения состоит в том, что сумма весов для конкретного выходного нейрона будет равна 1. Например, если мы рассмотрим нейрон k, то —

 displaystyle сумма limitsJwкдж=1длявсеK

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

    \ Delta w_ {kj} \: = \: \ begin {case} — \ alpha (x_ {j} \: — \: w_ {kj}), & if \: нейрон \: k \: wins \\ 0, и если \: нейрон \: k \: убытки \ конец {случаи}

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

\ Delta w_ {kj} \: = \: \ begin {case} — \ alpha (x_ {j} \: — \: w_ {kj}), & if \: нейрон \: k \: wins \\ 0, и если \: нейрон \: k \: убытки \ конец {случаи}

Здесь  alpha — скорость обучения.

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

Внешнее Правило Обучения

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

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

Математическая формулировка — поправки веса в этом правиле рассчитываются следующим образом

 Deltawj= alpha :(dwj)

Здесь d — желаемый выход нейрона, а  alpha — скорость обучения.

Контролируемое обучение

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

Perceptron

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

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

Perceptron

Перцептрон, таким образом, имеет следующие три основных элемента —

  • Ссылки — это будет набор ссылок для соединения, который имеет вес, включая смещение, всегда имеющее вес 1.

  • Сумматор — добавляет данные после умножения их на соответствующие веса.

  • Функция активации — ограничивает выход нейрона. Самая основная функция активации — это пошаговая функция Хевисайда, имеющая два возможных выхода. Эта функция возвращает 1, если вход положительный, и 0 для любого отрицательного входа.

Ссылки — это будет набор ссылок для соединения, который имеет вес, включая смещение, всегда имеющее вес 1.

Сумматор — добавляет данные после умножения их на соответствующие веса.

Функция активации — ограничивает выход нейрона. Самая основная функция активации — это пошаговая функция Хевисайда, имеющая два возможных выхода. Эта функция возвращает 1, если вход положительный, и 0 для любого отрицательного входа.

Алгоритм обучения

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

Алгоритм обучения для одного блока вывода

Шаг 1 — Инициализируйте следующее, чтобы начать тренировку —

  • Веса
  • предвзятость
  • Скорость обучения  alpha

Для простоты расчета и простоты веса и смещения должны быть установлены равными 0, а скорость обучения должна быть установлена ​​равной 1.

Шаг 2 — Продолжайте шаг 3-8, если условие остановки не соответствует действительности.

Шаг 3 — Продолжайте шаг 4-6 для каждого вектора тренировки x .

Шаг 4 — Активируйте каждый блок ввода следующим образом —

Xя=Sя :(я=1кп)

Шаг 5 — Теперь получите чистый вход со следующим соотношением —

yin=b+ displaystyle sum limitnixi.wi

Здесь «b» — это смещение, а «n» — общее количество входных нейронов.

Шаг 6 — Примените следующую функцию активации для получения окончательного результата.

f (y_ {in}) \: = \: \ begin {case} 1 & if \: y_ {in} \:> \: \ theta \\ 0 & if \: — \ theta \: \ leqslant \ : y_ {in} \: \ leqslant \: \ theta \\ — 1 & if \: y_ {in} \: <\: — \ theta \ end {case}

Шаг 7 — Отрегулируйте вес и уклон следующим образом —

Случай 1 — если у, то

wя(новый)=wя(старый) + альфаtxя

b(новый)=b(старый)+ alphat

Случай 2 — если у = т, то

wя(новый)=wя(старый)

б(новый)=Ь(старый)

Здесь «y» — фактический выход, а «t» — желаемый / целевой выход.

Шаг 8 — Проверьте состояние остановки, которое может произойти, если нет изменения веса.

Алгоритм обучения для нескольких выходных единиц

Следующая диаграмма — архитектура персептрона для нескольких выходных классов.

Алгоритм обучения

Шаг 1 — Инициализируйте следующее, чтобы начать тренировку —

  • Веса
  • предвзятость
  • Скорость обучения  alpha

Для простоты расчета и простоты веса и смещения должны быть установлены равными 0, а скорость обучения должна быть установлена ​​равной 1.

Шаг 2 — Продолжайте шаг 3-8, если условие остановки не соответствует действительности.

Шаг 3 — Продолжайте шаг 4-6 для каждого вектора тренировки x .

Шаг 4 — Активируйте каждый блок ввода следующим образом —

Xя=Sя :(я=1кп)

Шаг 5 — Получить чистый вход со следующим соотношением —

yin=b+ displaystyle sum limitnixiwij

Здесь «b» — это смещение, а «n» — общее количество входных нейронов.

Шаг 6 — Примените следующую функцию активации, чтобы получить окончательный результат для каждого блока вывода от j = 1 до m

f (y_ {in}) \: = \: \ begin {case} 1 & if \: y_ {inj} \:> \: \ theta \\ 0 & if \: — \ theta \: \ leqslant \ : y_ {inj} \: \ leqslant \: \ theta \\ — 1 & if \: y_ {inj} \: <\: — \ theta \ end {case}

Шаг 7 — Отрегулируйте вес и смещение для x = 1 до n и j = 1 до m следующим образом —

Случай 1 — если y j ≠ t j, то

wIJ(новый)=wIJ(старый) + альфаtjXя

bj(новый)=bj(старый)+ alphatj

Случай 2 — если y j = t j, то

wIJ(новый)=wIJ(старый)

bJ(новый)=bJ(старый)

Здесь «y» — фактический выход, а «t» — желаемый / целевой выход.

Шаг 8 — Проверьте состояние остановки, которое произойдет, если нет изменения веса.

Адаптивный линейный нейрон (адалин)

Adaline, что означает адаптивный линейный нейрон, представляет собой сеть, имеющую одну линейную единицу. Он был разработан Видроу и Хоффом в 1960 году. Некоторые важные моменты об Адалине заключаются в следующем:

  • Используется функция биполярной активации.

  • Он использует дельта-правило для обучения, чтобы минимизировать среднеквадратичную ошибку (MSE) между фактическим выходом и желаемым / целевым выходом.

  • Веса и уклон регулируются.

Используется функция биполярной активации.

Он использует дельта-правило для обучения, чтобы минимизировать среднеквадратичную ошибку (MSE) между фактическим выходом и желаемым / целевым выходом.

Веса и уклон регулируются.

Архитектура

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

Архитектура Адаптивная Линейная

Алгоритм обучения

Шаг 1 — Инициализируйте следующее, чтобы начать тренировку —

  • Веса
  • предвзятость
  • Скорость обучения  alpha

Для простоты расчета и простоты веса и смещения должны быть установлены равными 0, а скорость обучения должна быть установлена ​​равной 1.

Шаг 2 — Продолжайте шаг 3-8, если условие остановки не соответствует действительности.

Шаг 3 — Продолжайте шаг 4-6 для каждой биполярной тренировочной пары s: t .

Шаг 4 — Активируйте каждый блок ввода следующим образом —

Xя=Sя :(я=1кп)

Шаг 5 — Получить чистый вход со следующим соотношением —

yin=b+ displaystyle sum limitnixiwi

Здесь «b» — это смещение, а «n» — общее количество входных нейронов.

Шаг 6 — Примените следующую функцию активации для получения окончательного результата —

f (y_ {in}) \: = \: \ begin {case} 1 & if \: y_ {in} \: \ geqslant \: 0 \\ — 1 & if \: y_ {in} \: < \: 0 \ end {case}

Шаг 7 — Отрегулируйте вес и уклон следующим образом —

Случай 1 — если у, то

wi(новый)=wi(старый)+ alpha(tyin)xi

b(новый)=b(старый)+ alpha(tyin)

Случай 2 — если у = т, то

wя(новый)=wя(старый)

б(новый)=Ь(старый)

Здесь «y» — фактический выход, а «t» — желаемый / целевой выход.

(tyin) — это вычисленная ошибка.

Шаг 8 — Проверка состояния остановки, которое произойдет, когда нет изменений в весе или когда наибольшее изменение веса произошло во время тренировки, меньше указанного допуска.

Множественный адаптивный линейный нейрон (Madaline)

Madaline, что означает Multiple Adaptive Linear Neuron, представляет собой сеть, которая состоит из множества Adalines параллельно. У него будет один выходной блок. Вот некоторые важные моменты, касающиеся Мадалины:

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

  • Веса и смещение между входным и адалиновым слоями, как мы видим в архитектуре Adaline, являются регулируемыми.

  • Слои Adaline и Madaline имеют фиксированные веса и смещения 1.

  • Обучение можно проводить с помощью правила Delta.

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

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

Слои Adaline и Madaline имеют фиксированные веса и смещения 1.

Обучение можно проводить с помощью правила Delta.

Архитектура

Архитектура Madaline состоит из «n» нейронов входного слоя, «m» нейронов уровня Adaline и 1 нейрона слоя Madaline. Слой Adaline можно рассматривать как скрытый слой, поскольку он находится между входным слоем и выходным слоем, то есть слоем Madaline.

Adaline

Алгоритм обучения

К настоящему времени мы знаем, что должны регулироваться только веса и смещения между входным слоем и слоем Adaline, а веса и смещения между слоем Adaline и Madaline являются фиксированными.

Шаг 1 — Инициализируйте следующее, чтобы начать тренировку —

  • Веса
  • предвзятость
  • Скорость обучения  alpha

Для простоты расчета и простоты веса и смещения должны быть установлены равными 0, а скорость обучения должна быть установлена ​​равной 1.

Шаг 2 — Продолжайте шаг 3-8, если условие остановки не соответствует действительности.

Шаг 3 — Продолжайте шаг 4-6 для каждой биполярной тренировочной пары s: t .

Шаг 4 — Активируйте каждый блок ввода следующим образом —

Xя=Sя :(я=1кп)

Шаг 5 — Получить чистую входную информацию на каждом скрытом слое, т.е. слое Adaline со следующим соотношением —

Qinj=bj+ displaystyle sum limitnixiwijj=1км

Здесь «b» — это смещение, а «n» — общее количество входных нейронов.

Шаг 6 — Примените следующую функцию активации, чтобы получить окончательный результат на уровне Adaline и Madaline —

$$ f (x) \: = \: \ begin {case} 1 & if \: x \: \ geqslant \: 0 \\ — 1 & if \: x \: <\: 0 \ end {case} $ $

Выход на скрытый (Adaline) блок

QJ=F(Qинъек)

Конечный вывод сети

у=F(ув)

то есть yinj=b0+ summj=1Qjvj

Шаг 7 — Рассчитайте ошибку и откорректируйте веса следующим образом —

Случай 1 — если y ≠ t и t = 1, то

wij(новый)=wij(старый)+ alpha(1Qinj)xi

bj(новый)=bj(старый)+ alpha(1Qinj)

В этом случае весовые коэффициенты будут обновлены в Q j, где чистый входной сигнал близок к 0, поскольку t = 1 .

Случай 2 — если y ≠ t и t = -1, то

wik(новый)=wik(старый)+ alpha(1Qink)xi

bk(новый)=bk(старый)+ alpha(1Qink))

В этом случае веса будут обновлены на Q k, где чистый входной сигнал положительный, потому что t = -1 .

Здесь «y» — фактический выход, а «t» — желаемый / целевой выход.

Случай 3 — если у = т, то

Там не будет никаких изменений в весах.

Шаг 8 — Проверка состояния остановки, которое произойдет, когда нет изменений в весе или когда наибольшее изменение веса произошло во время тренировки, меньше указанного допуска.

Нейронные сети обратного распространения

Back Propagation Neural (BPN) — это многослойная нейронная сеть, состоящая из входного слоя, как минимум одного скрытого слоя и выходного слоя. Как следует из названия, в этой сети будет происходить обратное распространение. Ошибка, которая вычисляется на выходном слое путем сравнения целевого и фактического выходных данных, будет распространяться обратно к входному слою.

Архитектура

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

Обратное распространение

Алгоритм обучения

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

  • Фаза 1 — Фаза прямой подачи

  • Этап 2 — обратное распространение ошибки

  • Этап 3 — Обновление весов

Фаза 1 — Фаза прямой подачи

Этап 2 — обратное распространение ошибки

Этап 3 — Обновление весов

Все эти шаги будут заключены в алгоритме следующим образом

Шаг 1 — Инициализируйте следующее, чтобы начать тренировку —

  • Веса
  • Скорость обучения  alpha

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

Шаг 2 — Продолжайте шаг 3-11, когда условие остановки не соответствует действительности.

Шаг 3 — Продолжайте шаги 4-10 для каждой тренировочной пары.

Фаза 1

Шаг 4 — Каждый входной блок получает входной сигнал x i и отправляет его на скрытый блок для всех i = 1 до n

Шаг 5 — Рассчитать чистый вход в скрытой единице, используя следующее соотношение —

Qinj=b0j+ sumni=1xivijj= :1кр

Здесь b 0j — это смещение на скрытой единице, v ij — вес на j единице скрытого слоя, поступающего из i единицы входного слоя.

Теперь вычислите чистый результат, применив следующую функцию активации

QJ=F(Qинъек)

Отправьте эти выходные сигналы скрытых единиц слоя на единицы выходного слоя.

Шаг 6 — Рассчитать чистый входной сигнал на единицу выходного слоя, используя следующее соотношение —

yink=b0k+ sumpj=1Qjwjkk= :1км

Здесь b 0k ⁡ — смещение на выходной единице, w jk — вес на k единицу выходного слоя, приходящего из j единицы скрытого слоя.

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

ук=F(учернил)

Фаза 2

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

 Deltaк= :(tкyк)е(учернила)

Исходя из этого, обновите вес и уклон следующим образом —

 Deltavjk= alpha deltakQij

 Deltab0k= alpha deltak

Затем отправьте  deltak обратно в скрытый слой.

Шаг 8 — Теперь каждая скрытая единица будет суммой своих дельта-входов от выходных единиц.

 deltainj= displaystyle sum limitmk=1 deltakwjk

Срок ошибки можно рассчитать следующим образом —

 Deltaj= Deltaинъекце(Qинъек)

Исходя из этого, обновите вес и уклон следующим образом —

 Deltawij= alpha deltajxi

 Deltab0j= alpha deltaj

Фаза 3

Шаг 9 — Каждый выходной блок (y k k = 1 до m) обновляет вес и смещение следующим образом —

vjk(новый)=vjk(старый)+ Deltavjk

b0k(новый)=b0k(старый)+ Deltab0k

Шаг 10 — Каждый выходной блок (z j j = 1 до p) обновляет вес и смещение следующим образом —

wij(новый)=wij(старый)+ Deltawij

b0j(новый)=b0j(старый)+ Deltab0j

Шаг 11 — Проверьте условие остановки, которое может быть либо количеством достигнутых эпох, либо целевым выходом, совпадающим с фактическим выходом.

Обобщенное правило обучения Delta

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

Математическая формулировка

Для функции активации yk=f(yink) вывод чистых входных данных на скрытом слое, а также на выходном слое может быть задан как

учернил= displaystyle сумма limitsiZяwJK

И yinj= sumixivij

Теперь ошибка, которую нужно минимизировать,

Е= гидроразрыва12 displaystyle сумма limitsк[Tкук]2

Используя правило цепочки, мы имеем

 frac частичныйE частичныйwjk= frac частный частичныйwjk( frac12 displaystyle sum limitsк[tкyк]2)

= frac частный частичныйwjk lgroup frac12[tkt(yink)]]2 rgroup

=[tkyk] frac частный частичныйwjkf(yчернила)

=[tkyk]f(yчернила) frac частный частичныйwjk(yчернила)

= \: — [T_ {к} \: — \: у- {к}] {е ^ ‘} ({у- чернил}) Z_ {J}

Теперь давайте скажем  deltak=[tkyk]f(yink)

Веса на соединениях со скрытой единицей z j могут быть определены как —

 frac частичныйE частичныйvij= displaystyle sum limitk deltak frac частный частичныйvij :(yчернила)

Положив значение yink, получим следующее

 Deltaj= displaystyle сумма limitsк DeltaкwЮ.К.е(zинъек)

Обновление веса может быть сделано следующим образом —

Для блока вывода —

 Deltawjk= alpha frac частичныйE частичныйwjk

= альфа DeltaкZJ

Для скрытого юнита —

 Deltavij= alpha frac частичныйE частичныйvij

= альфа DeltaJXя

Обучение без учителя

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

Winner-Takes-All Networks

Эти виды сетей основаны на правиле конкурентного обучения и будут использовать стратегию, при которой нейрон выбирается с наибольшим суммарным вкладом в качестве победителя. Соединения между выходными нейронами показывают конкуренцию между ними, и один из них будет «ВКЛ», что означает, что он будет победителем, а другие «ВЫКЛ».

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

Сеть Хемминга

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

  • Липпманн начал работать над сетями Хэмминга в 1987 году.

  • Это однослойная сеть.

  • Входные данные могут быть двоичными {0, 1} из биполярных {-1, 1}.

  • Веса сети рассчитываются по примерным векторам.

  • Это сеть с фиксированным весом, что означает, что веса останутся неизменными даже во время тренировок.

Липпманн начал работать над сетями Хэмминга в 1987 году.

Это однослойная сеть.

Входные данные могут быть двоичными {0, 1} из биполярных {-1, 1}.

Веса сети рассчитываются по примерным векторам.

Это сеть с фиксированным весом, что означает, что веса останутся неизменными даже во время тренировок.

Макс Чистый

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

Архитектура

Макс Чистый

Он использует механизм, который является итеративным процессом, и каждый узел получает запрещающие входные данные от всех других узлов через соединения. Один узел, значение которого является максимальным, будет активным или победителем, а активации всех других узлов будут неактивными. Max Net использует функцию активации личности с f (x) \: = \: \ begin {case} x & if \: x> 0 \\ 0 & if \: x \ leq 0 \ end {case}

Задача этой сети достигается за счет веса самовозбуждения +1 и величины взаимного торможения, которая устанавливается как [0 <ɛ < frac1m], где «m» — это общее число узлы.

Конкурентное обучение в ANN

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

Основная концепция конкурентной сети

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

Основная концепция

Основная концепция правила конкурентного обучения

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

Математическая формулировка

Ниже приведены три важных фактора для математической формулировки этого правила обучения:

  • Условие быть победителем

    Предположим, что если нейрон y k хочет быть победителем, тогда будет следующее условие

    y_ {k} \: = \: \ begin {case} 1 & if \: v_ {k}> v_ {j} \: for \: all \: \: j, \: j \: \ neq \ : k \\ 0 & в противном случае \ end {case}

    Это означает, что если какой-либо нейрон, скажем, y k хочет победить, то его индуцированное локальное поле (выходной сигнал единицы суммирования), скажем, v k , должно быть наибольшим среди всех других нейронов в сети.

  • Условие суммы суммы веса

    Другим ограничением для правила конкурентного обучения является общая сумма весов для конкретного выходного нейрона, равная 1. Например, если мы рассмотрим нейрон k, то

    \ displaystyle \ sum \ limit_ {k} w_ {kj} \: = \: 1 \: \: \: \: for \: все \: \: k

  • Смена веса для победителя

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

    \ Delta w_ {kj} \: = \: \ begin {case} — \ alpha (x_ {j} \: — \: w_ {kj}), & if \: нейрон \: k \: wins \\ 0 & if \: нейрон \: k \: убытки \ конец {случаи}

    Здесь \ alpha — скорость обучения.

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

Условие быть победителем

Предположим, что если нейрон y k хочет быть победителем, тогда будет следующее условие

y_ {k} \: = \: \ begin {case} 1 & if \: v_ {k}> v_ {j} \: for \: all \: \: j, \: j \: \ neq \ : k \\ 0 & в противном случае \ end {case}

Это означает, что если какой-либо нейрон, скажем, y k хочет победить, то его индуцированное локальное поле (выходной сигнал единицы суммирования), скажем, v k , должно быть наибольшим среди всех других нейронов в сети.

Условие суммы суммы веса

Другим ограничением для правила конкурентного обучения является общая сумма весов для конкретного выходного нейрона, равная 1. Например, если мы рассмотрим нейрон k, то

\ displaystyle \ sum \ limit_ {k} w_ {kj} \: = \: 1 \: \: \: \: for \: все \: \: k

Смена веса для победителя

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

\ Delta w_ {kj} \: = \: \ begin {case} — \ alpha (x_ {j} \: — \: w_ {kj}), & if \: нейрон \: k \: wins \\ 0 & if \: нейрон \: k \: убытки \ конец {случаи}

Здесь \ alpha — скорость обучения.

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

Алгоритм кластеризации K-средних

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

Алгоритм

Шаг 1 — Выберите k точек в качестве начальных центроидов. Инициализируйте k прототипов (w 1 ,…, w k ) , например, мы можем отождествить их со случайно выбранными входными векторами —

W_ {j} \: = \: i_ {p}, \: \: \: где \: j \: \ in \ lbrace1, …., k \ rbrace \: и \: p \: \ в \ lbrace1, …., n \ rbrace

Каждый кластер C j связан с прототипом w j .

Шаг 2 — Повторяйте шаг 3-5, пока E больше не уменьшится или членство в кластере больше не изменится.

Шаг 3 — Для каждого входного вектора i p, где p ∈ {1,…, n} , положить i p в кластер C j * с ближайшим прототипом w j *, имеющим следующее соотношение

| i_ {p} \: — \: w_ {j *} | \: \ leq \: | i_ {p} \: — \: w_ {j} |, \: j \: \ in \ lbrace1, …., к \ rbrace

Шаг 4 — Для каждого кластера C j , где j ∈ {1,…, k} , обновите прототип w j, чтобы он был центром тяжести всех выборок, в настоящее время находящихся в C j , так, чтобы

w_ {j} \: = \: \ sum_ {i_ {p} \ in C_ {j}} \ frac {i_ {p}} {| C_ {j} |}

Шаг 5 — Рассчитать общую ошибку квантования следующим образом —

E \: = \: \ sum_ {j = 1} ^ k \ sum_ {i_ {p} \ in w_ {j}} | i_ {p} \: — \: w_ {j} | ^ 2

Неокогнитрон

Это многослойная сеть прямой связи, которая была разработана Fukushima в 1980-х годах. Эта модель основана на контролируемом обучении и используется для визуального распознавания образов, в основном рукописных символов. Это в основном расширение сети Cognitron, которая также была разработана компанией Fukushima в 1975 году.

Архитектура

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

Неокогнитрон

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

S-ячейка — она ​​называется простой ячейкой, которая обучается реагировать на определенный шаблон или группу шаблонов.

C-Cell — называется сложной ячейкой, которая объединяет выходные данные S-ячейки и одновременно уменьшает количество единиц в каждом массиве. В другом смысле C-клетка вытесняет результат S-клетки.

Алгоритм обучения

Тренировка неокогнитрона, как находят, прогрессирует слой за слоем. Веса от входного слоя до первого слоя обучаются и замораживаются. Затем тренируются веса от первого до второго слоя и так далее. Внутренние вычисления между S-ячейкой и Ccell зависят от весов, поступающих с предыдущих слоев. Следовательно, можно сказать, что алгоритм обучения зависит от расчетов на S-элементе и C-элементе.

Расчеты в S-ячейке

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

\ theta = \: \ sqrt {\ sum \ sum t_ {i} c_ {i} ^ 2}

Здесь t i — фиксированный вес, а c i — выходной сигнал C-ячейки.

Масштабированный вход S-ячейки может быть рассчитан следующим образом:

х \: = \: \ гидроразрыва {1 \ + \: е} {1 \ + \: vw_ {0}} \: — \: 1

Здесь e \: = \: \ sum_i c_ {i} w_ {i}

w i — вес, скорректированный от C-клетки до S-клетки.

w 0 — вес, регулируемый между входом и S-ячейкой.

v — возбуждающий вход от С-клетки.

Активация выходного сигнала:

s \: = \: \ begin {case} x, & if \: x \ geq 0 \\ 0, & if \: x <0 \ end {case}

Расчеты в C-ячейке

Чистый вход C-слоя

C \: = \: \ displaystyle \ sum \ limit_i s_ {i} x_ {i}

Здесь s i — выходной сигнал от S-ячейки, а x i — фиксированный вес от S-ячейки до C-ячейки.

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

C_ {out} \: = \: \ begin {case} \ frac {C} {a + C}, & if \: C> 0 \\ 0, а в противном случае \ end {case}

Здесь «а» — это параметр, который зависит от производительности сети.

Изучение вектора квантования

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

Архитектура

На следующем рисунке показана архитектура LVQ, которая очень похожа на архитектуру KSOM. Как мы видим, существует «n» количество единиц ввода и «m» количество единиц вывода. Слои полностью взаимосвязаны с весом на них.

Слои

Используемые параметры

Ниже приведены параметры, используемые в процессе обучения LVQ, а также в блок-схеме

  • x = вектор обучения (x 1 , …, x i , …, x n )

  • T = класс для обучающего вектора x

  • w j = весовой вектор для j- й единицы измерения

  • C j = класс, связанный с j- й единицей вывода

x = вектор обучения (x 1 , …, x i , …, x n )

T = класс для обучающего вектора x

w j = весовой вектор для j- й единицы измерения

C j = класс, связанный с j- й единицей вывода

Алгоритм обучения

Шаг 1 — Инициализировать опорные векторы, что можно сделать следующим образом:

  • Шаг 1 (а) — Из данного набора тренировочных векторов взять первые « m » (количество кластеров) тренировочных векторов и использовать их в качестве весовых векторов. Остальные векторы могут быть использованы для обучения.

  • Шаг 1 (б) — Присвойте начальный вес и классификацию случайным образом.

  • Шаг 1 (с) — Применение метода кластеризации K-средних.

Шаг 1 (а) — Из данного набора тренировочных векторов взять первые « m » (количество кластеров) тренировочных векторов и использовать их в качестве весовых векторов. Остальные векторы могут быть использованы для обучения.

Шаг 1 (б) — Присвойте начальный вес и классификацию случайным образом.

Шаг 1 (с) — Применение метода кластеризации K-средних.

Шаг 2 — Инициализировать опорный вектор \ alpha

Шаг 3 — Продолжайте с шагов 4-9, если условие остановки этого алгоритма не выполняется.

Шаг 4 — Выполните шаги 5-6 для каждого входного вектора обучения x .

Шаг 5 — Рассчитать квадрат евклидова расстояния для j = 1 до m и i = от 1 до n

D (j) \: = \: \ displaystyle \ sum \ limit_ {i = 1} ^ n \ displaystyle \ sum \ limit_ {j = 1} ^ m (x_ {i} \: — \: w_ {ij }) ^ 2

Шаг 6 — Получить выигрышную единицу J, где D (j) минимально.

Шаг 7 — Рассчитайте новый вес выигрышной единицы по следующему соотношению —

если T = C j, то w_ {j} (новый) \: = \: w_ {j} (старый) \: + \: \ alpha [x \: — \: w_ {j} (старый)]

если T ≠ C j, то w_ {j} (новый) \: = \: w_ {j} (старый) \: — \: \ alpha [x \: — \: w_ {j} (старый)]

Шаг 8 — Уменьшите скорость обучения \ alpha .

Шаг 9 — Проверка состояния остановки. Это может быть следующим:

  • Максимальное количество эпох достигнуто.
  • Скорость обучения снижена до незначительного значения.

блок-схема

блок-схема

Варианты

Три других варианта, а именно LVQ2, LVQ2.1 и LVQ3, были разработаны Кохоненом. Сложность во всех этих трех вариантах из-за концепции, которую изучат победитель и юнит, занявший второе место, больше, чем в LVQ.

LVQ2

Как уже обсуждалось, концепция других вариантов LVQ выше, состояние LVQ2 формируется окном. Это окно будет основано на следующих параметрах —

  • х — текущий входной вектор

  • y c — опорный вектор, ближайший к x

  • y r — другой опорный вектор, ближайший к x

  • d c — расстояние от x до y c

  • d r — расстояние от x до y r

х — текущий входной вектор

y c — опорный вектор, ближайший к x

y r — другой опорный вектор, ближайший к x

d c — расстояние от x до y c

d r — расстояние от x до y r

Входной вектор х попадает в окно, если

\ гидроразрыва {D_ {C}} {D_ {г}} \:> \: 1 \: — \: \ тета \: \: и \: \: \ гидроразрыва {D_ {г}} {D_ {с }} \:> \: 1 \ + \: \ Theta

Здесь \ theta — количество обучающих образцов.

Обновление можно выполнить по следующей формуле:

У- {с} (т \ + \: 1) \: = \: у- {C} (т) \ + \: \ альфа (т) [х (т) \: — \: у- {C} (t)] (принадлежит к другому классу)

У- {г} (т \ + \: 1) \: = \: у- {г} (т) \ + \: \ альфа (т) [х (т) \: — \: у- {г} (t)] (принадлежит к тому же классу)

Здесь \ alpha — скорость обучения.

LVQ2.1

В LVQ2.1 мы возьмем два ближайших вектора, а именно y c1 и y c2, и условие для окна следующее:

Min \ {начинаются bmatrix} \ гидроразрыва {D_ {c1}} {D_ {c2}}, \ гидроразрыва {D_ {c2}} {D_ {c1}} \ {конец bmatrix} \:> \ 🙁 1 \ : — \: \ Theta)

Max \ {начинаются bmatrix} \ гидроразрыва {D_ {c1}} {D_ {c2}}, \ гидроразрыва {D_ {c2}} {D_ {c1}} \ {конец bmatrix} \ <\ 🙁 1 \ : + \: \ тета)

Обновление можно выполнить по следующей формуле:

У- {c1} (т \ + \: 1) \: = \: у- {c1} (т) \ + \: \ альфа (т) [х (т) \: — \: у- {c1} (t)] (принадлежит к другому классу)

У- {с2} (т \ + \: 1) \: = \: у- {с2} (т) \ + \: \ альфа (т) [х (т) \: — \: у- {с2} (t)] (принадлежит к тому же классу)

Здесь \ alpha — это скорость обучения.

LVQ3

В LVQ3 мы возьмем два ближайших вектора, а именно y c1 и y c2, и условие для окна будет следующим:

Min \ {начинаются bmatrix} \ гидроразрыва {D_ {c1}} {D_ {c2}}, \ гидроразрыва {D_ {c2}} {D_ {c1}} \ {конец bmatrix} \:> \ 🙁 1 \ : — \: \ тета) (1 \ + \: \ тета)

Здесь \ theta \ ок. 0,2

Обновление можно выполнить по следующей формуле:

У- {c1} (т \ + \: 1) \: = \: у- {c1} (т) \ + \: \ бета (т) [х (т) \: — \: у- {c1} (t)] (принадлежит к другому классу)

У- {с2} (т \ + \: 1) \: = \: у- {с2} (т) \ + \: \ бета (т) [х (т) \: — \: у- {с2} (t)] (принадлежит к тому же классу)

Здесь \ beta — это кратное значение скорости обучения \ alpha и \ beta \: = \: m \ alpha (t) для каждых 0,1 <m <0,5

Адаптивная Резонансная Теория

Эта сеть была разработана Стивеном Гроссбергом и Гейл Карпентер в 1987 году. Она основана на конкуренции и использует модель обучения без присмотра. Сети Адаптивной Резонансной Теории (ART), как следует из названия, всегда открыты для нового обучения (адаптивного) без потери старых паттернов (резонанса). По сути, сеть ART представляет собой векторный классификатор, который принимает входной вектор и классифицирует его в одну из категорий в зависимости от того, какой из сохраненных шаблонов он больше всего напоминает.

Операционный директор

Основную операцию классификации АРТ можно разделить на следующие этапы —

  • Этап распознавания — входной вектор сравнивается с классификацией, представленной в каждом узле выходного слоя. Выход нейрона становится «1», если он наилучшим образом соответствует применяемой классификации, в противном случае он становится «0».

  • Фаза сравнения. На этом этапе выполняется сравнение входного вектора с вектором слоя сравнения. Условием для сброса является то, что степень сходства будет меньше, чем параметр бдительности.

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

Этап распознавания — входной вектор сравнивается с классификацией, представленной в каждом узле выходного слоя. Выход нейрона становится «1», если он наилучшим образом соответствует применяемой классификации, в противном случае он становится «0».

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

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

ART1

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

Архитектура ART1

Он состоит из следующих двух блоков —

Вычислительная единица — состоит из следующих элементов:

  • Блок ввода (слой F 1 ) — он также имеет следующие две части —

    • F 1 (a) layer (Input input) — В ART1 не будет обработки в этой части, вместо того, чтобы иметь только входные векторы. Он связан с уровнем F 1 (b) (интерфейсная часть).

    • Уровень F 1 (b) (интерфейсная часть) — эта часть объединяет сигнал от входной части с сигналом уровня F 2 . Слой F 1 (b) соединен со слоем F 2 через веса снизу вверх b ij, а слой F 2 соединен со слоем F 1 (b) через веса сверху вниз t ji .

  • Блок кластера (слой F 2 ) — это конкурентный уровень. Единица, имеющая наибольший сетевой вход, выбирается для изучения схемы ввода. Активация всех других узлов кластера установлена ​​на 0.

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

Блок ввода (слой F 1 ) — он также имеет следующие две части —

F 1 (a) layer (Input input) — В ART1 не будет обработки в этой части, вместо того, чтобы иметь только входные векторы. Он связан с уровнем F 1 (b) (интерфейсная часть).

Уровень F 1 (b) (интерфейсная часть) — эта часть объединяет сигнал от входной части с сигналом уровня F 2 . Слой F 1 (b) соединен со слоем F 2 через веса снизу вверх b ij, а слой F 2 соединен со слоем F 1 (b) через веса сверху вниз t ji .

Блок кластера (слой F 2 ) — это конкурентный уровень. Единица, имеющая наибольший сетевой вход, выбирается для изучения схемы ввода. Активация всех других узлов кластера установлена ​​на 0.

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

Модуль дополнения — На самом деле проблема с механизмом сброса заключается в том, что слой F 2 должен быть заблокирован при определенных условиях, а также должен быть доступен, когда происходит некоторое обучение. Вот почему два дополнительных блока, а именно, G 1 и G 2 , добавляются вместе с блоком сброса R. Они называются блоками управления усилением . Эти устройства принимают и отправляют сигналы другим устройствам, присутствующим в сети. «+» обозначает возбуждающий сигнал, а «-» обозначает запрещающий сигнал.

Дополнение Единица

Единицы

Используемые параметры

Используются следующие параметры:

  • n — количество компонентов во входном векторе

  • m — максимальное количество кластеров, которые могут быть сформированы

  • b ij — Вес от слоя F 1 (b) до слоя F 2 , т.е. веса снизу вверх

  • t ji — Вес от F 2 до F 1 (b) слоя, то есть веса сверху вниз

  • ρ — параметр бдительности

  • || х || — норма вектора х

n — количество компонентов во входном векторе

m — максимальное количество кластеров, которые могут быть сформированы

b ij — Вес от слоя F 1 (b) до слоя F 2 , т.е. веса снизу вверх

t ji — Вес от F 2 до F 1 (b) слоя, то есть веса сверху вниз

ρ — параметр бдительности

|| х || — норма вектора х

Алгоритм

Шаг 1 — Инициализируйте скорость обучения, параметр бдительности и веса следующим образом:

\ альфа \:> \: 1 \: \: и \: \: 0 \: <\ Rho \: \ Leq \: 1

0 \: <\: B_ ​​{IJ} (0) \ <\: \ гидроразрыва {\ альфа} {\ альфа \: — \: 1 \ + \: п} \: \: и \: \: t_ {IJ} (0) \: = \: 1

Шаг 2 — Продолжайте шаг 3-9, когда условие остановки не соответствует действительности.

Шаг 3 — Продолжайте шаг 4-6 для каждого ввода тренировки.

Шаг 4 — Установите активацию всех единиц F 1 (a) и F 1 следующим образом

F 2 = 0 и F 1 (a) = входные векторы

Шаг 5 — Входной сигнал от слоя F 1 (a) до слоя F 1 (b) должен быть отправлен как

S_ {я} \: = \: x_ {я}

Шаг 6 — Для каждого запрещенного узла F 2

y_ {j} \: = \: \ sum_i b_ {ij} x_ {i} условие: y j ≠ -1

Шаг 7 — Выполните шаги 8-10, когда сброс является истинным.

Шаг 8 — Найти J для y J ≥ y j для всех узлов j

Шаг 9 — Снова вычислите активацию на F 1 (b) следующим образом

X_ {я} \: = \: sitJi

Шаг 10 — Теперь, после расчета нормы вектора x и вектора s , нам нужно проверить условие сброса следующим образом:

Если || x || / || s || <параметр бдительности ρ , затем ⁡ запретить ⁡ узел J и перейти к шагу 7

Иначе, если || x || / || s || ≥ параметр бдительности ρ , затем продолжайте.

Шаг 11 — Обновление веса для узла J может быть сделано следующим образом —

b_ {ij} (новый) \: = \: \ frac {\ alpha x_ {i}} {\ alpha \: — \: 1 \: + \: || x ||}

t_ {IJ} (новый) \: = \: x_ {я}

Шаг 12 — Условие остановки для алгоритма должно быть проверено, и оно может быть следующим:

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

Самоорганизующиеся функциональные карты Kohonen

Предположим, у нас есть шаблон произвольных измерений, однако нам нужны они в одном измерении или двух измерениях. Тогда процесс сопоставления объектов будет очень полезен для преобразования широкого пространства шаблонов в типичное пространство объектов. Теперь возникает вопрос: зачем нам нужна самоорганизующаяся карта объектов? Причина в том, что наряду с возможностью преобразования произвольных измерений в 1-D или 2-D он также должен иметь возможность сохранять топологию соседей.

Топологии соседей в Кохонене СОМ

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

Топология прямоугольной сетки

Эта топология имеет 24 узла в сетке расстояния 2, 16 узлов в сетке расстояния 1 и 8 узлов в сетке расстояния 0, что означает, что разница между каждой прямоугольной сеткой составляет 8 узлов. Победившая единица обозначена #.

прямоугольный

Топология гексагональной сетки

Эта топология имеет 18 узлов в сетке расстояния 2, 12 узлов в сетке расстояния 1 и 6 узлов в сетке расстояния 0, что означает, что разница между каждой прямоугольной сеткой составляет 6 узлов. Победившая единица обозначена #.

шестиугольный

Архитектура

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

КС

Алгоритм обучения

Шаг 1 — Инициализировать веса, скорость обучения α и топологическую схему окрестности.

Шаг 2 — Продолжайте шаг 3-9, когда условие остановки не соответствует действительности.

Шаг 3 — Продолжайте шаг 4-6 для каждого входного вектора x .

Шаг 4 — Рассчитать площадь евклидова расстояния для j = 1 до м

D (j) \: = \: \ displaystyle \ sum \ limit_ {i = 1} ^ n \ displaystyle \ sum \ limit_ {j = 1} ^ m (x_ {i} \: — \: w_ {ij }) ^ 2

Шаг 5 — Получить выигрышную единицу J, где D (j) минимально.

Шаг 6 — Рассчитайте новый вес выигрышной единицы по следующему соотношению —

w_ {IJ} (новый) \: = \: w_ {IJ} (старый) \ + \: \ альфа [x_ {я} \: — \: w_ {IJ} (старый)]

Шаг 7 — Обновите скорость обучения α следующим соотношением —

\ alpha (t \: + \: 1) \: = \: 0.5 \ alpha t

Шаг 8 — Уменьшить радиус топологической схемы.

Шаг 9 — Проверьте состояние остановки сети.

Ассоциированная сеть памяти

Эти типы нейронных сетей работают на основе ассоциации шаблонов, что означает, что они могут хранить различные шаблоны и во время выдачи выходных данных они могут создавать один из сохраненных шаблонов, сопоставляя их с данным входным шаблоном. Эти типы памяти также называют Content-Addressable Memory (CAM). Ассоциативная память выполняет параллельный поиск с сохраненными шаблонами в виде файлов данных.

Ниже приведены два типа ассоциативных воспоминаний, которые мы можем наблюдать —

  • Авто Ассоциативная Память
  • Гетеро Ассоциативная память

Авто Ассоциативная Память

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

Архитектура

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

Авто Ассоциативная Память

Алгоритм обучения

Для обучения в этой сети используется правило обучения Hebb или Delta.

Шаг 1 — Инициализировать все веса до нуля, так как w ij = 0 (i = от 1 до n, от j = 1 до n)

Шаг 2 — Выполните шаги 3-4 для каждого входного вектора.

Шаг 3 — Активируйте каждый блок ввода следующим образом —

X_ {я} \: = \: S_ {я} \ 🙁 я \: = \: 1 \: к \: п)

Шаг 4 — Активируйте каждый выходной блок следующим образом —

у- {J} \: = \: S_ {J} \ 🙁 J \: = \: 1 \: к \: п)

Шаг 5 — Отрегулируйте веса следующим образом —

w_ {IJ} (новый) \: = \: w_ {IJ} (старый) \ + \: x_ {я} y_ {J}

Алгоритм тестирования

Шаг 1 — Установите веса, полученные во время тренировки для правила Хебба.

Шаг 2 — Выполните шаги 3-5 для каждого входного вектора.

Шаг 3 — Установите активацию входных единиц равной активации входного вектора.

Шаг 4 — Рассчитать чистый входной сигнал для каждой единицы выходного сигнала j = 1 до n

y_ {inj} \: = \: \ displaystyle \ sum \ limit_ {i = 1} ^ n x_ {i} w_ {ij}

Шаг 5 — Примените следующую функцию активации для расчета выхода

y_ {j} \: = \: f (y_ {inj}) \: = \: \ begin {case} +1 & if \: y_ {inj} \:> \: 0 \\ — 1 & if \: y_ {инъекц} \: \ leqslant \: 0 \ конец {случаи}

Гетеро Ассоциативная память

Подобно сети Auto Associative Memory, это также однослойная нейронная сеть. Однако в этой сети входной обучающий вектор и выходные целевые векторы не совпадают. Веса определены так, что сеть хранит набор шаблонов. Гетероассоциативная сеть носит статический характер, следовательно, не было бы нелинейных и отложенных операций.

Архитектура

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

Гетеро Ассоциативная память

Алгоритм обучения

Для обучения в этой сети используется правило обучения Hebb или Delta.

Шаг 1 — Инициализировать все веса до нуля, так как w ij = 0 (i = от 1 до n, от j = 1 до m)

Шаг 2 — Выполните шаги 3-4 для каждого входного вектора.

Шаг 3 — Активируйте каждый блок ввода следующим образом —

X_ {я} \: = \: S_ {я} \ 🙁 я \: = \: 1 \: к \: п)

Шаг 4 — Активируйте каждый выходной блок следующим образом —

у- {J} \: = \: S_ {J} \ 🙁 J \: = \: 1 \: к \: м)

Шаг 5 — Отрегулируйте веса следующим образом —

w_ {IJ} (новый) \: = \: w_ {IJ} (старый) \ + \: x_ {я} y_ {J}

Алгоритм тестирования

Шаг 1 — Установите веса, полученные во время тренировки для правила Хебба.

Шаг 2 — Выполните шаги 3-5 для каждого входного вектора.

Шаг 3 — Установите активацию входных единиц равной активации входного вектора.

Шаг 4 — Рассчитать чистый входной сигнал для каждой единицы выходного сигнала j = 1 до m;

y_ {inj} \: = \: \ displaystyle \ sum \ limit_ {i = 1} ^ n x_ {i} w_ {ij}

Шаг 5 — Примените следующую функцию активации для расчета выхода

y_ {j} \: = \: f (y_ {inj}) \: = \: \ begin {case} +1 & if \: y_ {inj} \:> \: 0 \\ 0 & if \ : y_ {inj} \: = \: 0 \\ — 1 & if \: y_ {inj} \: <\: 0 \ end {case}

Искусственная Нейронная Сеть — Hopfield Networks

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

Дискретная сеть Хопфилда

Сеть Хопфилда, которая работает в виде дискретных линий или, другими словами, можно сказать, что шаблоны ввода и вывода являются дискретными векторами, которые могут быть двоичными (0,1) или биполярными (+1, -1) по своей природе. Сеть имеет симметричные веса без самоподключений, т. Е. W ij = w ji и w ii = 0 .

Архитектура

Ниже приведены некоторые важные моменты, о которых следует помнить о дискретной сети Хопфилда.

  • Эта модель состоит из нейронов с одним инвертирующим и одним неинвертирующим выходом.

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

  • Вес / прочность соединения обозначены как w ij .

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

  • Веса должны быть симметричными, т.е. w ij = w ji

Эта модель состоит из нейронов с одним инвертирующим и одним неинвертирующим выходом.

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

Вес / прочность соединения обозначены как w ij .

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

Веса должны быть симметричными, т.е. w ij = w ji

Хопфилда

Выходные данные от Y 1, идущие к Y 2 , Y i и Y n, имеют веса w 12 , w 1i и w 1n соответственно. Точно так же другие дуги имеют веса на них.

Алгоритм обучения

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

Случай 1 — Шаблоны двоичного ввода

Для набора бинарных паттернов s (p), p = 1 до P

Здесь s (p) = s 1 (p), s 2 (p), …, s i (p), …, s n (p)

Весовая матрица задается

w_ {IJ} \: = \: \ sum_ {р = 1} ^ Р [2s_ {я} (р) — \: 1] [2s_ {J} (р) — \: 1] \: \: \: \: \: для \: я \: \ NEQ \: J

Случай 2 — Биполярные модели ввода

Для набора бинарных паттернов s (p), p = 1 до P

Здесь s (p) = s 1 (p), s 2 (p), …, s i (p), …, s n (p)

Весовая матрица задается

w_ {IJ} \: = \: \ sum_ {р = 1} ^ Р [S_ {я} (р)] [S_ {J} (р)] \: \: \: \: \: для \ : я \: \ NEQ \: J

Алгоритм тестирования

Шаг 1 — Инициализировать веса, которые получены из алгоритма обучения с использованием принципа Хебба.

Шаг 2 — Выполните шаги 3-9, если активации сети не консолидированы.

Шаг 3 — Для каждого входного вектора X выполните шаги 4-8.

Шаг 4 — Сделайте начальную активацию сети равной внешнему входному вектору X следующим образом —

у- {я} \: = \: X_ {я} \: \: \: для \: я \: = \: 1 \: к \: п

Шаг 5 — Для каждого блока Y i выполните шаги 6-9.

Шаг 6 — Рассчитайте чистый вход сети следующим образом —

y_ {ини} \: = \: x_ {я} \ + \: \ displaystyle \ сумма \ limits_ {j} y_ {J} {w_ джи}

Шаг 7 — Примените активацию следующим образом к сетевому входу, чтобы рассчитать выходной сигнал —

y_ {i} \: = \ begin {case} 1 & if \: y_ {ini} \:> \: \ theta_ {i} \\ y_ {i} & if \: y_ {ini} \: = \: \ theta_ {i} \\ 0 & if \: y_ {ini} \: <\: \ theta_ {i} \ end {case}

Здесь \ theta_ {i} — это порог.

Шаг 8 — Передайте этот вывод y i всем другим устройствам.

Шаг 9 — Проверьте сеть на предмет соединения.

Оценка энергетической функции

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

Энергетическая функция E f ⁡, также называемая функцией Ляпунова, определяет устойчивость дискретной сети Хопфилда и характеризуется следующим образом:

E_ {f} \: = \: — \ frac {1} {2} \ displaystyle \ sum \ limit_ {i = 1} ^ n \ displaystyle \ sum \ limit_ {j = 1} ^ n y_ {i} y_ {j} w_ {ij} \: — \: \ displaystyle \ sum \ limit_ {i = 1} ^ n x_ {i} y_ {i} \: + \: \ displaystyle \ sum \ limit_ {i = 1} ^ n \ theta_ {i} y_ {i}

Условие — В стабильной сети, когда состояние узла изменяется, вышеуказанная энергетическая функция будет уменьшаться.

Предположим, что когда узел i изменил состояние с y_i ^ {(k)} на y_i ^ {(k \: + \: 1)} , то изменение энергии \ Delta E_ {f} определяется выражением следующее отношение

\ Delta E_ {f} \: = \: E_ {f} (y_i ^ {(k + 1)}) \: — \: E_ {f} (y_i ^ {(k)})

= \: — \ left (\ begin {array} {c} \ displaystyle \ sum \ limit_ {j = 1} ^ n w_ {ij} y_i ^ {(k)} \: + \: x_ {i} \: — \: \ theta_ {я} \ {конец массива} \ справа) (y_i ^ {(к + 1)} \: — \: y_i ^ {(к)})

= \: — \ 🙁 net_ {i}) \ Delta y_ {i}

Здесь \ Delta y_ {i} \: = \: y_i ^ {(k \: + \: 1)} \: — \: y_i ^ {(k)}

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

Непрерывная сеть Хопфилда

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

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

Оценка энергетической функции

E_f = \ frac {1} {2} \ displaystyle \ sum \ limit_ {i = 1} ^ n \ sum _ {\ substack {j = 1 \\ j \ ne i}} ^ n y_i y_j w_ {ij} — \ displaystyle \ sum \ limit_ {i = 1} ^ n x_i y_i + \ frac {1} {\ lambda} \ displaystyle \ sum \ limit_ {i = 1} ^ n \ sum _ {\ substack {j = 1 \\ j \ ne i}} ^ n w_ {ij} g_ {ri} \ int_ {0} ^ {y_i} a ^ {- 1} (y) dy

Здесь λ — параметр усиления и g ri входная проводимость.

Машина Больцмана

Это стохастические процессы обучения, имеющие рекуррентную структуру и являются основой ранних методов оптимизации, используемых в ANN. Машина Больцмана была изобретена Джеффри Хинтоном и Терри Сейновски в 1985 году. Больше ясности можно наблюдать в словах Хинтона о Машине Больцмана.

«Удивительной особенностью этой сети является то, что она использует только локально доступную информацию. Изменение веса зависит только от поведения двух соединяемых им блоков, даже если изменение оптимизирует глобальную меру »- Ackley, Hinton 1985.

Несколько важных моментов о машине Больцмана —

  • Они используют рекуррентную структуру.

  • Они состоят из стохастических нейронов, которые имеют одно из двух возможных состояний: 1 или 0.

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

  • Если применить дискретный отжиг к дискретной сети Хопфилда, то она станет машиной Больцмана.

Они используют рекуррентную структуру.

Они состоят из стохастических нейронов, которые имеют одно из двух возможных состояний: 1 или 0.

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

Если применить дискретный отжиг к дискретной сети Хопфилда, то она станет машиной Больцмана.

Цель машины Больцмана

Основная цель Boltzmann Machine — оптимизировать решение проблемы. Задачей Boltzmann Machine является оптимизация веса и количества, связанных с этой конкретной проблемой.

Архитектура

Следующая диаграмма показывает архитектуру машины Больцмана. Из диаграммы видно, что это двумерный массив единиц. Здесь веса на соединениях между единицами равны –p, где p> 0 . Веса самоподключений определяются как b, где b> 0 .

Больцман

Алгоритм обучения

Поскольку мы знаем, что машины Больцмана имеют фиксированные веса, следовательно, не будет никакого обучающего алгоритма, поскольку нам не нужно обновлять веса в сети. Однако, чтобы проверить сеть, мы должны установить веса, а также найти консенсус-функцию (CF).

Машина Больцмана имеет набор узлов U i и U j и имеет двунаправленные соединения на них.

  • Мы рассматриваем фиксированный вес, скажем, w ij .

  • w ij ≠ 0, если U i и U j связаны.

  • Также существует симметрия во взвешенном соединении, то есть w ij = w ji .

  • w ii также существует, то есть будет самостоятельная связь между единицами.

  • Для любого блока U i его состояние u i будет равно 1 или 0.

Мы рассматриваем фиксированный вес, скажем, w ij .

w ij ≠ 0, если U i и U j связаны.

Также существует симметрия во взвешенном соединении, то есть w ij = w ji .

w ii также существует, то есть будет самостоятельная связь между единицами.

Для любого блока U i его состояние u i будет равно 1 или 0.

Основная цель машины Больцмана — максимизировать функцию согласия (CF), которая может быть задана следующим соотношением

CF \: = \: \ displaystyle \ sum \ limit_ {i} \ displaystyle \ sum \ limit_ {j \ leqslant i} w_ {ij} u_ {i} u_ {j}

Теперь, когда состояние изменяется от 1 до 0 или от 0 до 1, тогда изменение в консенсусе может быть задано следующим соотношением:

\ Delta CF \: = \ 🙁 1 \: — \: 2u_ {i}) (w_ {ij} \: + \: \ displaystyle \ sum \ limit_ {j \ neq i} u_ {i} w_ { IJ})

Здесь u i — текущее состояние U i .

Изменение коэффициента ( 1 — 2u i ) определяется следующим соотношением:

(1 \: — \: 2u_ {i}) \: = \: \ begin {case} +1, & U_ {i} \: is \: в настоящее время \: выключен \\ — 1, & U_ {i } \: есть \: в настоящее время \: \ на конце {случаи}

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

Вероятность того, что сеть примет изменение состояния устройства, определяется следующим соотношением:

AF (i, T) \: = \: \ frac {1} {1 \: + \: exp [- \ frac {\ Delta CF (i)} {T}]}

Здесь T является управляющим параметром. Он будет уменьшаться, когда CF достигает максимального значения.

Алгоритм тестирования

Шаг 1 — Инициализируйте следующее, чтобы начать тренировку —

  • Веса, представляющие ограничение задачи
  • Контрольный параметр T

Шаг 2 — Продолжайте шаги 3-8, когда условие остановки не соответствует действительности.

Шаг 3 — Выполните шаги 4-7.

Шаг 4 — Предположим, что одно из состояний изменило вес, и выберите целое число I, J в качестве случайных значений от 1 до n .

Шаг 5 — Рассчитайте изменение консенсуса следующим образом —

\ Delta CF \: = \ 🙁 1 \: — \: 2u_ {i}) (w_ {ij} \: + \: \ displaystyle \ sum \ limit_ {j \ neq i} u_ {i} w_ { IJ})

Шаг 6 — Рассчитайте вероятность того, что эта сеть примет изменение состояния

AF (i, T) \: = \: \ frac {1} {1 \: + \: exp [- \ frac {\ Delta CF (i)} {T}]}

Шаг 7 — Принять или отклонить это изменение следующим образом —

Случай I — если R <AF , принять изменение.

Случай II — если R ≥ AF , отклонить изменение.

Здесь R — случайное число от 0 до 1.

Шаг 8 — Уменьшите контрольный параметр (температуру) следующим образом —

T (новый) = .90,95T (старый)

Шаг 9 — Проверка условий остановки, которые могут быть следующими:

  • Температура достигает указанного значения
  • Нет никакого изменения в состоянии для указанного количества итераций

Сеть «мозг в состоянии» в коробке «

Нейронная сеть Brain-State-in-a-Box (BSB) является нелинейной автоассоциативной нейронной сетью и может быть расширена до гетероассоциирования с двумя или более слоями. Это также похоже на сеть Хопфилда. Он был предложен JA Anderson, JW Silverstein, SA Ritz и RS Jones в 1977 году.

Несколько важных моментов, которые следует помнить о BSB Network —

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

  • Все нейроны обновляются одновременно.

  • Нейроны принимают значения от -1 до +1.

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

Все нейроны обновляются одновременно.

Нейроны принимают значения от -1 до +1.

Математические формулировки

Функция узла, используемая в сети BSB, является функцией линейного изменения, которую можно определить следующим образом:

F (нетто) \: = \: (1 мин, \: макс (-1, \: нетто))

Эта функция линейного изменения ограничена и непрерывна.

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

x_ {t} (t \: + \: 1) \: = \: f \ left (\ begin {array} {c} \ displaystyle \ sum \ limit_ {j = 1} ^ n w_ {i, j } x_ {j} (т) \ {конец массива} \ справа)

Здесь x i (t) — это состояние i- го узла в момент времени t .

Веса от i- го узла до j- го узла могут быть измерены с помощью следующего соотношения:

w_ {ij} \: = \: \ frac {1} {P} \ displaystyle \ sum \ limit_ {p = 1} ^ P (v_ {p, i} \: v_ {p, j})

Здесь P — количество тренировочных моделей, которые являются биполярными.

Оптимизация с использованием Hopfield Network

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

Что нужно помнить при использовании сети Hopfield для оптимизации —

  • Энергетическая функция должна быть минимальной в сети.

  • Он найдет удовлетворительное решение, а не выберет один из сохраненных шаблонов.

  • Качество решения, найденного сетью Хопфилда, существенно зависит от начального состояния сети.

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

Он найдет удовлетворительное решение, а не выберет один из сохраненных шаблонов.

Качество решения, найденного сетью Хопфилда, существенно зависит от начального состояния сети.

Задача коммивояжера

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

Основная концепция TSP

Задача коммивояжера (TSP) — это классическая задача оптимизации, при которой продавец должен путешествовать по n городам, которые связаны друг с другом, сохраняя при этом стоимость и минимальное пройденное расстояние. Например, продавец должен совершить поездку по четырем городам A, B, C, D, и цель состоит в том, чтобы найти кратчайший круговой тур, ABC-D, чтобы минимизировать стоимость, которая также включает в себя стоимость поездки из последний город D до первого города A.

Задача коммивояжера

Матричное представление

Фактически, каждый обзор TSP по n-городам может быть выражен в виде матрицы n × n , i- я строка которой описывает местоположение i- го города. Эта матрица M для 4 городов A, B, C, D может быть выражена следующим образом:

M = \ begin {bmatrix} A: & 1 & 0 & 0 & 0 \\ B: & 0 & 1 & 0 & 0 \\ C: & 0 & 0 & 1 & 0 \\ D: & 0 & 0 & 0 & 1 \ end {bmatrix}

Решение от Hopfield Network

При рассмотрении решения этого TSP сетью Хопфилда каждый узел в сети соответствует одному элементу в матрице.

Расчет энергетической функции

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

Constraint-I

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

$$ \ displaystyle \ sum \ limit_ {j = 1} ^ n M_ {x, j} \: = \: 1 \: для \: x \: \ in \: \ lbrace1, …, n \ rbrace $ $

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

\ displaystyle \ sum \ limit_ {x = 1} ^ n \ left (\ begin {array} {c} 1 \: — \: \ displaystyle \ sum \ limit_ {j = 1} ^ n M_ {x, j } \ {конец массива} \ справа) ^ 2

Constraint-II

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

$$ \ displaystyle \ sum \ limit_ {x = 1} ^ n M_ {x, j} \: = \: 1 \: для \: j \: \ in \: \ lbrace1, …, n \ rbrace $ $

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

\ displaystyle \ sum \ limit_ {j = 1} ^ n \ left (\ begin {array} {c} 1 \: — \: \ displaystyle \ sum \ limit_ {x = 1} ^ n M_ {x, j } \ {конец массива} \ справа) ^ 2

Расчет функции стоимости

Предположим, что квадратная матрица ( n × n ), обозначенная буквой C, обозначает матрицу затрат TSP для n городов, где n> 0 . Ниже приведены некоторые параметры при расчете функции стоимости —

  • C x, y — Элемент матрицы затрат обозначает стоимость проезда от города x до y .

  • Смежность элементов A и B может быть показана следующим соотношением —

C x, y — Элемент матрицы затрат обозначает стоимость проезда от города x до y .

Смежность элементов A и B может быть показана следующим соотношением —

M_ {x, i} \: = \: 1 \: \: и \: \: M_ {y, i \ pm 1} \: = \: 1

Как мы знаем, в матрице выходное значение каждого узла может быть 0 или 1, следовательно, для каждой пары городов A, B мы можем добавить следующие члены к энергетической функции:

\ displaystyle \ sum \ limit_ {i = 1} ^ n C_ {x, y} M_ {x, i} (M_ {y, i + 1} \: + \: M_ {y, i-1})

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

E \: = \: \ frac {1} {2} \ displaystyle \ sum \ limit_ {i = 1} ^ n \ displaystyle \ sum \ limit_ {x} \ displaystyle \ sum \ limit_ {y \ neq x} C_ {х, у} M_ {х,} (M_ {у, + 1} \ + \: M_ {Y, I-1}) \ +

\: \ begin {bmatrix} \ gamma_ {1} \ displaystyle \ sum \ limit_ {x} \ left (\ begin {array} {c} 1 \: — \: \ displaystyle \ sum \ limit_ {i} M_ {x, i} \ end {array} \ right) ^ 2 \: + \: \ gamma_ {2} \ displaystyle \ sum \ limit_ {i} \ left (\ begin {array} {c} 1 \: — \ : \ displaystyle \ sum \ limit_ {x} M_ {x, i} \ end {array} \ right) ^ 2 \ end {bmatrix}

Здесь γ 1 и γ 2 — две постоянные взвешивания.

Другие методы оптимизации

Метод итеративного градиентного спуска

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

Основная рабочая идея

Мы можем понять основную рабочую идею градиентного спуска с помощью следующих шагов —

  • Сначала начните с первоначального предположения о решении.

  • Затем возьмите градиент функции в этой точке.

  • Позже, повторите процесс, шагая решение в отрицательном направлении градиента.

Сначала начните с первоначального предположения о решении.

Затем возьмите градиент функции в этой точке.

Позже, повторите процесс, шагая решение в отрицательном направлении градиента.

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

оптимизация

Математическая концепция

Предположим, у нас есть функция f (x), и мы пытаемся найти минимум этой функции. Ниже приведены шаги, чтобы найти минимум f (x) .

  • Сначала укажите начальное значение x_ {0} \: for \: x

  • Теперь возьмем функцию градиента \ nabla f ⁡ of, с интуицией, что градиент даст наклон кривой в этом x, а ее направление будет указывать на увеличение функции, чтобы найти лучшее направление, чтобы минимизировать ее. ,

  • Теперь измените х следующим образом —

    x_ {n \: + \: 1} \: = \: x_ {n} \: — \: \ theta \ nabla f (x_ {n})

Сначала укажите начальное значение x_ {0} \: for \: x

Теперь возьмем функцию градиента \ nabla f ⁡ of, с интуицией, что градиент даст наклон кривой в этом x, а ее направление будет указывать на увеличение функции, чтобы найти лучшее направление, чтобы минимизировать ее. ,

Теперь измените х следующим образом —

x_ {n \: + \: 1} \: = \: x_ {n} \: — \: \ theta \ nabla f (x_ {n})

Здесь θ> 0 — скорость тренировки (размер шага), которая заставляет алгоритм делать небольшие прыжки.

Оценка размера шага

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

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

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

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

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

Некоторые варианты выбора размера шага —

  • Один из вариантов — выбрать фиксированный размер шага.

  • Другой вариант — выбрать другой размер шага для каждой итерации.

Один из вариантов — выбрать фиксированный размер шага.

Другой вариант — выбрать другой размер шага для каждой итерации.

Имитация отжига

Основная концепция имитации отжига (SA) мотивируется отжигом в твердых телах. В процессе отжига, если мы нагреем металл выше его температуры плавления и остудим, структурные свойства будут зависеть от скорости охлаждения. Можно также сказать, что SA имитирует металлургический процесс отжига.

Используйте в ANN

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

Алгоритм

Шаг 1 — Генерация случайного решения.

Шаг 2 — Рассчитайте его стоимость, используя некоторую функцию стоимости.

Шаг 3 — Генерация случайного соседнего решения.

Шаг 4 — Рассчитайте стоимость нового решения по той же функции стоимости.

Шаг 5 — Сравните стоимость нового решения со стоимостью старого решения следующим образом:

Если Cost New Solution <Cost Old Solution, перейдите к новому решению.

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

Искусственная нейронная сеть — генетический алгоритм

Природа всегда была источником вдохновения для всего человечества. Генетические алгоритмы (GA) — это алгоритмы поиска, основанные на понятиях естественного отбора и генетики. GA — это подмножество гораздо большей ветви вычислений, известной как эволюционные вычисления .

GA были разработаны Джоном Холландом и его студентами и коллегами из Мичиганского университета, прежде всего Дэвидом Э. Голдбергом, и с тех пор пробовали решать различные задачи оптимизации с высокой степенью успеха.

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

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

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

Преимущества ГА

У GA есть различные преимущества, которые сделали их чрезвычайно популярными. К ним относятся —

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

  • Это быстрее и эффективнее по сравнению с традиционными методами.

  • Имеет очень хорошие параллельные возможности.

  • Оптимизирует как непрерывные, так и дискретные функции, а также многоцелевые задачи.

  • Предоставляет список «хороших» решений, а не просто одно решение.

  • Всегда получает ответ на проблему, которая со временем становится лучше.

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

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

Это быстрее и эффективнее по сравнению с традиционными методами.

Имеет очень хорошие параллельные возможности.

Оптимизирует как непрерывные, так и дискретные функции, а также многоцелевые задачи.

Предоставляет список «хороших» решений, а не просто одно решение.

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

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

Ограничения ГА

Как и любая техника, GA также страдает от нескольких ограничений. К ним относятся —

  • GA не подходят для всех проблем, особенно для задач, которые просты и для которых доступна производная информация.

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

  • Будучи стохастическим, нет никаких гарантий относительно оптимальности или качества решения.

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

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

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

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

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

GA — Мотивация

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

Решение сложных проблем

В информатике существует большой набор проблем, которые NP-Hard . По сути это означает, что даже самым мощным вычислительным системам требуется очень много времени (даже лет!) Для решения этой проблемы. В таком сценарии ГА оказываются эффективным инструментом для предоставления практически оптимальных решений за короткое время.

Отказ градиентных методов

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

Ошибка ГА

Быстрое получение хорошего решения

У некоторых сложных проблем, таких как Задача коммивояжера (TSP), есть реальные приложения, такие как поиск пути и VLSI Design. Теперь представьте, что вы используете свою систему GPS-навигации, и для расчета «оптимального» пути от источника до пункта назначения требуется несколько минут (или даже нескольких часов). Задержка в таких реальных приложениях неприемлема, и поэтому требуется «достаточно хорошее» решение, которое доставляется «быстро».

Как использовать GA для задач оптимизации?

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

Как пользоваться

Этапы механизма GA для процесса оптимизации

Далее приведены этапы механизма ГА при использовании для оптимизации задач.

  • Генерация начальной популяции случайным образом.

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

  • Рекомбинируйте выбранные решения, используя операторы мутации и кроссовера.

  • Вставьте потомство в популяцию.

  • Теперь, если условие остановки выполнено, верните решение с наилучшим значением пригодности. В противном случае перейдите к шагу 2.

Генерация начальной популяции случайным образом.

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

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

Вставьте потомство в популяцию.

Теперь, если условие остановки выполнено, верните решение с наилучшим значением пригодности. В противном случае перейдите к шагу 2.

Приложения нейронных сетей

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

Почему искусственные нейронные сети?

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

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

  • Нейронные сети могут учиться на собственном примере, поэтому нам не нужно много программировать.

  • Нейронные сети обладают точностью и значительно большей скоростью, чем обычные скорости.

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

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

Нейронные сети обладают точностью и значительно большей скоростью, чем обычные скорости.

Области применения

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

Распознавание речи

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

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

  • Многослойные сети

  • Многослойные сети с периодическими подключениями

  • Карта самоорганизации Кохонена

Многослойные сети

Многослойные сети с периодическими подключениями

Карта самоорганизации Кохонена

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

Распознавание персонажей

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

  • Многослойные нейронные сети, такие как нейронные сети Backpropagation.
  • Неокогнитрон

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

Приложение для проверки подписи

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

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

Распознавание человеческого лица

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

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

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

Для уменьшения размерности используется анализ главных компонентов (PCA).