English  Español  Português  Français  Italiano  Deutsch  Nederlands  Svenska  Dansk  Suomi  Norsk  Русский  Polski  Română  Български  Hrvatski  Česky  中国  中國  日本語  한국어  Ελληνική  हिन्दी  العربية 
Нейронные сети
с обучения в отсталых ошибок
Colin Fahey
neuron_group01.jpg
Биологической нейронной сети

1. Программное обеспечение

NeuralNetwork20080614.zip
Нейронные сети исходный код (C#)
21971 байт
MD5: 94443565716e1101a3326dc2ffd558fd

2. Введение

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

3. Альтернатива для обучения в отсталых ошибок

Этот документ описывает модель нейронной сети, которая учится в алгоритме называется «обратной ошибок.»  Этот алгоритм может потребовать очень много времени, чтобы узнать различные уроки.  Кроме того, этот алгоритм может случайно не могут получить различные уроки из-за случайных первоначального состояния нейронной сети, перед тренировкой.
Обучение, «связав активных материалов» является важной альтернативой для обучения в «отсталых ошибок.»  Обучение, связав активные материалы просто сообщников материалы, которые одновременно являются активными.  Такое обучение может быть быстрым и надежным.  Однако для многих практических целей, не существует очевидный способ использования нейронной сети, которая учится по ассоциации, то есть очевидный способ использования сети, которая учится в отсталых ошибок.
Некоторые биологические нейронные сети, как известно, учиться на объединение активных материалов.  Обратные ошибок не наблюдалось в любой биологической нейронной сети.
Этот документ описывает интересный использует для нейронной сети, которая учится в отсталых ошибок.  Тем не менее, обучение на объединение является весьма важной альтернативой алгоритм обучения.  Проектирование нейронной сети, которая учится по ассоциации для решения конкретной проблемы может быть более сложным, что desgining альтернативных нейронной сети, которая учится в отсталых ошибок, но и биологических систем учиться на ассоциации, а также обучения способность биологических систем очевидна.

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

4.1 Нейронные клетки

neuron_1umeter01.jpg
Биологического нейрона «(многополярного» типа, ~4 um клетки тела)
Нейрон имеет тип клеток, что имеет возможность получать и передавать нервные сигналы.
Нейроны являются основой нервных систем, обнаружен в животных, птиц, рыб и насекомых.
Мозги с памятью и логикой, а простой рефлекс системами, как на основе соглашений нейронов.
Нейроны используются также для передачи сигналов на большие расстояния в существо тела, как, например, от датчиков к мозгу, или от мозга до мышцы.
Поведение биологического нейрона является очень сложным, но следующие упрощенные описание отражает основной принцип:
Нейрон накапливает сигналы, полученные от других нейронов, и если общее накопление сигнала превышает порог, нейрон передает собственные сигналы других нейронов.

4.2 Нейрон частей

neuron_labels01.jpg
Части биологического нейрона
Сома
Камере тело нейрона
Дендритов
Слоями с применением химических рецепторов (вклад), которые распространяются из клеток тело нейрона.  Нейрон, как правило, имеет много дендритов, и дендритов часто имеют множество филиалов.
Аксон
Волокна с химическими излучатели (видов деятельности) на его конечной точки, которая простирается от клеток тело нейрона.  Нейрон имеет один Аксон, Аксон, и, как правило, имеет очень мало отраслей.
Synapse
Конфигурация такова, что Аксон одного нейрона и дендритов другого нейрона разделены очень небольшой разрыв.  В такой конфигурации, химических веществ, выбрасываемых Аксон от нейрона крест synapse и полученные от дендритов других нейронов.  Вот как нейроны оказывают влияние на другие нейроны.

4.3 Нейрон стрельбы

Нейрона накапливаются химические сигналы от своих дендритов, и если общее накопление химического превышает порог в течение периода времени, нейрон «пожаров,» направив свой собственный сигнал через свою Аксон.
Некоторые нейроны способны стрельбы импульсов по приказу 100 Hz.
Сигналы, проходящие через нейроны связаны накопления (Na) натрия, калия (K) и (Cl) ионов хлора, и в результате электрохимического потенциала (например, напряжения).
Покоя напряжение (-70 mV) и стрельбы напряжения (+30 mV) может быть измерена или даже под влиянием обычных электрических схем.
Ниже приводится запись напряжения нейрон крысы стрельбы по курсу примерно 100 Hz когда один столбик является коснулся и провел вне ее покоится позицию:
neuron_spikes_whisker01.jpg
Нейрон крысы (100 Hz) стрельбы из-за проведения столбик.
Ниже же сигнал проявляется как аудио: neuron_spikes_whisker01.wav
Несмотря на то, стимулом является постоянной, нейрона сигнал быстрого импульсной.

4.4 Нейронные сети

Мозг человека имеет примерно 10^11 (100 млрд.) нейронов.
Каждый нейрон в мозжечок получает вклад больше, чем 10^4 (10000) синапсов.
Хотя Аксон и дендритов от нейрона часто распространяется лишь несколько микрометров от клетки тела, некоторые axons на порядок метр в длину.
Нейронов головного мозга имеет с относительно коротким axons сгруппированы в районах или кластеров.
Мозга имеет также пучков нейронов при сравнительно давно axons связать районы разделены сантиметров.
Таким образом, иерархическая сеть обработки элементов образуется.

4.5 Нейронные сети статус

Состояние сети нейронов является как способ нейронов соединены между собой и сигналов на всех синапсов.
Неясно, сколько информации будет утрачена, если мозг был tranquilized в полной бездеятельности за любой период времени.
Можно представить себе информацию, устойчивый только сигналы перемещения через сеть, а не сама сеть, например, сотовые автоматов имитаций, как Conway's «Game of Life», простой Dynamic Random Access Memory (DRAM) фишек, и эхо в зале.

4.6 Нейронные сети Обучение

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

5. Искусственный нейрон

5.1 Определение

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

5.2 Активация функции

«Активации функции» математическую функцию, которая преобразует входных значений ниже особую ценность для производства сравнительно низкой стоимости, и преобразует входных значений выше, особую ценность для сравнительно высокой стоимости продукции.
«Активации функция» используется для преобразования взвешенной суммы входных значений нейрона на значение, которое представляет собой результат нейрона.
«sigmoid» функция общего класса гладких функций, асимптотически подход нижний предел для ввода значения приближается к минус-бесконечности, и асимптотически подход верхний предел для ввода значения приближается к позитивной бесконечности.
Одним из конкретных sigmoid функция «logistic sigmoid» функции:
logistic_sigmoid_function.jpg
«Logistic Sigmoid» функция: 1 / ( 1 + Exp( -x ) )
«logistic sigmoid» функция может быть использована в качестве «функции активации» для математическую модель нейрона.
Математической производной «logistic sigmoid» можно вычислить как формула, в результате чего можно легко вычислить, связанных обучения формуле.

5.3 Нейронные сети ввода

«Нейронные сети ввода» представляет материалы для нейронной сети.
neural_network_input.jpg
Нейронные сети ввода
«Input» это числовое значение вклада.

5.4 Нейронные сети выходной

«Нейронные сети, выход» представляет выход нейронной сети.
neural_network_output.jpg
Нейронные сети выходной
«Output» это числовое значение выходной.
«Error» это числовое значение, которое представляет собой разницу между стоимостью продукции и «Desired» значение:
Error = (Output - Desired);  // Derived from: Output = Desired + Error;
«Desired» ценность представляет требуемую стоимость, или идеальным стоимости, или правильное значение, что нейронная сеть должна производить как выход в ответ на конкретные материалы.
Ошибка стоимость вычисляется и присвоен «Error» по подготовке алгоритма.
Ошибка значение обратной связи в нейронной сети.
Нейронные сети, могут адаптироваться к сокращению разницы между ее результатами и желаемых значений, то есть, нейронные сети, могут учиться, и тем самым сократить будущие ошибки.

5.5 Нейрон тела

«Нейрон орган» представляет тело нейрона, которая аккумулирует входных взносов, и добавляет, предвзятости, и превращает ценность, в результате «активации функции» для производства продукции стоимости.
neuron_body.jpg
Нейрон тела
«InputAccumulator» это ценность, которую представляет собой накопленные материалы от нейрона ссылки, чьи результаты связаны с нейрона тела.
«Bias» является регулируемым ценность, которая в сочетании с накопленной ввода значения.
«Output» это числовое значение, представляющие ценность выходной нейрон.
Выходной стоимость вычисляется по следующей формуле:
Output = ActivationFunction( Bias + InputAccumulator );
«ErrorAccumulator» это числовое значение, представляющие накопленных ошибок.
С учетом конкретных результатов стоимость тело нейрона, а также с учетом конкретных результатов ошибку ценности, накопленные ошибки стоимость корректируется в соответствии со следующей формулой:
ErrorAccumulator += Output * (1 - Output) * OutputError;
«Rate» имеет значение, которое влияет на стоимость «Bias» изменения в ответ на «ErrorAccumulator» значение:
Bias += (-1) * Rate * ErrorAccumulator;

5.6 Нейрон ссылку

«Нейрон ссылка» представляет связь между:
(1) ввод нейронные сети и ввода тела нейрона;
или,
(2) выход нейрона тело и ввода другого нейрона органа;
или,
(3) мощностью тело нейрона и выход нейронной сети.
neuron_link.jpg
Нейрон ссылку
«Input» имеет кэш вклад в ссылку.
«Weight» имеет регулируемое значение, которое влияет на сигнал, ценностей и ценностей ошибку пропаганды через ссылку.
«Output» имеет кэш мощностью ссылку.
Стоимость вычисляется по следующей формуле:
Output = Weight * Input;
«Error» имеет кэш ошибка связи.
«WeightedError» имеет кэш погрешность ссылку, взвешенные по весу фактор:
WeightedError = Weight * Error;
«Rate» имеет значение, которое влияет на стоимость «Weight» изменения в ответ на «Error» ценность и «Input» стоимости.
В ходе обучения нейронной сети, «Weight» стоимость корректируется в следующем порядке:
Weight += (-1) * Rate * Input * Error;

5.7 Нейронные сети

«Нейронная сеть» содержит материалы, результаты, нейрон органов, а также ссылки.
Следующее изображение изображает простой нейронной сети, причем два входа и два нейрона органов в первом слое, и в один нейрон второго слоя и один выходной.
neuron_network_drawing.jpg
Пример нейронные сети
В ходе моделирования нейронных сетей, ввода значения пропаганды вперед по ссылкам и нейрон органов, и в конечном итоге достичь результатов.
neuron_network_forward_propagation.jpg
Пример вперед распространения в нейронные сети
За время обучения, ошибка ценностей предоставляются на результаты, и эти ошибки пропаганды назад через нейронные сети, что приводит к изменению веса и перекосы в нейрон органов и ссылки.
neuron_network_backward_propagation.jpg
Пример обратной ошибок в нейронные сети

5.8 Нейронные сети, моделирование

Определение:
«Сеть моделирования» процедуры, используемой для распространения материалов посредством сети связи и нейрон органов до достижения сетевых мероприятий.
Сеть моделирования предполагает моделирование всех ее составляющих звеньев и нейрон органов.
Моделирование без петель или времени:
Есть много возможных сетевых конфигурациях, связанных с петель.
Есть многие модели нейрона, которые зависят от времени.
Но некоторые из наиболее распространенных приложений искусственных нейронов связаны ни петель, ни времени.
Ниже приводится математическая модель нейрона кузова:
Output = ActivationFunction( Bias + InputAccumulator );
При этом модель нейрона и сети без «петель,» мы просто начать с внешних факторов, вычислить результаты первого слоя нейронов, а также поставки этих мероприятий в качестве вклада в следующем слое, вычислить результаты для этого слоя, и продолжится до уровней нейроны до тех пор, пока окончательные результаты вычисляются.
Циклы:
Сети могут иметь связь в виде петли (или «циклов).»
Например, выход нейрона могут быть подключены непосредственно к ввода того же нейрона, что приводит к «обратной связи.»
Другим примером является выход нейрона # 1 будучи подключенным к ввода нейрона # 2, и выход нейрона # 2 будучи подключенным к ввода нейрона # 1.
Если вы можете начать с какой-то момент в сети и отслеживать путь через нейроны и связи, подчиняясь односторонний поток сигналов, и, в конечном итоге прийти в тот же отправную точку, а затем путь петлей.
Циклы представит интересную возможность сигналы поток вокруг сети на неопределенный период времени.
Некоторые простые модели предполагаем, что она принимает конкретные количества времени для передачи сигналов на основании отдельных нейронов.
В таких моделях, распространение сигналов через петли с нейронами несколько быстрее, чем распространение сигналов с помощью петель со многими нейронами.
Нейрона, связанные с самой будет быстрым распространением сигнала темпами.
Если нейрон имеет вклад X, вес W, предвзятость B и неотрицательные Y производства (например, 0.0 -> 1.0), то мы можем виде осциллятора просто, установив W = (-8) и B = +4 и Y подключении к X;
каждый раз, когда мы моделировать нейрон, сигнал будет toggled в противоположном состоянии.
Сеть с петель могут быть заняты деятельностью, даже если оно не принимает внешние сигналы (стимулы) в качестве сырья.
Сотовые автоматов правил Conway's «Game of Life» могли бы быть реализованы в нейронной сети, которая дает вам небольшой намек на разнообразие деятельности, которые могут произойти в нейронной сети с петлями.
Конечно-автоматов (FSM), осцилляторы, летучих памяти (в отличие от модели обучения через изменение веса), стало возможным путем looping.
Если сеть имеет петли, мы не можем обновить любые мероприятия до тех пор, пока мы вычислить все мероприятия, поэтому мы требуем, временный буфер для хранения результатов вычисляется до тех пор, пока мы все результаты вычислений, и тогда мы сможем взять новые производства значений нейронов в сети.
Любой метод, который обновляет результаты в фактических сети в путь постепенного, а не все-в-один раз образом, вводит произвольный порядок во времени, что приводит к хаосу.
Физика моделирования в сочетании с участием организаций, таких как орбиты планет, звезд с взаимным гравитационных сил между всеми органами, требуют такой же подход: вычислить нетто сил на все органы, перед обновлением любой скорости и позиции.
Тайм-зависимость:
Небольшой сети, как правило, предполагает моделирование материалов причинение желаемых результатов после одного шага моделирования времени.
В таких моделирования, по нашему мнению, с точки зрения «числа итераций,» а не «раз в считанные секунды.»
Там не требуется каких-либо соответствия между итерациями и временные масштабы.
Система может быть сконструирована, сделать сеть моделирования (итерации) только тогда, когда новый вклад доступен, которые могут возникнуть на нерегулярные промежутки времени.
Тем не менее, рассматривать математическую модель нейрона, которая пытается имитировать импульсной выходной аспект биологического нейрона.
Импульсной может быть квалифицировано с точки зрения времени, как, например, импульсной в частности, частота импульсов или кривая которого простирается на особенности времени.
Мы можем иметь другое время-зависимых элементов в математическую модель нейрона, как, например, вход аккумулятора, стоимость которых получает взносы от вклада, но течи пропорциональна его текущей стоимости.
В целом, мы можем найти аналогии электрической цепи для элементов, которые подчиняются определенным математических уравнений, и поэтому нельзя связи нейрона, как с цепи резисторов, конденсаторов и нелинейный усилитель.
Точно так же, как цепь может выставке сложное время, зависящих от поведения, выход нейрона может рассматриваться как функция, которая зависит от ее ресурсов и времени в сложный путь.

5.9 Обратные ошибок

Определение:
«Обратные ошибок» является математическое процедура, которая начинается с ошибкой на выходе нейронной сети и пропагандирует эту ошибку назад через сеть, в результате вывода ошибок значения для всех нейронов в сети.
Обратные ошибок формул:
Ошибка ценностей на нейронную сеть результатов вычисляется по следующей формуле:
Error = (Output - Desired);  // Derived from: Output = Desired + Error;
Ошибка накопления в тело нейрона корректируется в соответствии с мощностью и тело нейрона выходной ошибки (указываются ссылки, связанные с нейрона органа).
Каждая ошибка стоимости продукции способствует ошибку аккумулятор в следующем порядке:
ErrorAccumulator += Output * (1 - Output) * OutputError;
В смысле, все ошибки производства на следующий уровень утечки обратно через входных весов и накапливаются на выход нейрона в предыдущий уровень.
Это накопленные значения умножаются на сумму, которая наиболее остро стоит при нынешних выход нейрона является наиболее нейтральным (наиболее «нерешенным),» а в мере, когда выход нейрона является самой крайней (очень «некоторых).»
Вес изменений и предвзятости изменение формулы:
Основе обучения является корректировка веса и предвзятости ценностей в попытке сократить будущие результаты ошибок.
Обучение «Оценить» это числовое значение, что по сути свидетельствует о том, насколько быстро нейрона регулирует вес и отклонения значений по ошибке ценностей.
Следующая формула свидетельствует о том, как изменить веса нейрона с конкретного набора входных значений и вывода его ошибка значение:
Weight += (-1) * Rate * Input * Error;
Следующая формула свидетельствует о том, как изменить смещение нейрона с учетом текущей выходной ошибки для нейрона:
Bias += (-1) * Rate * Error;

6. Обучение нейронной сети

6.1 Подготовка процедуры

Можно начать с подготовки сети и продолжать сокращать производства ошибка в дальнейшей профессиональной подготовки, но один часто начинается с неподготовленные сети.
До подготовки кадров, выбор случайных значений для всех весов всех нейронов в сети.
Я наблюдаю проблемы, когда я случайно выбранного значения в интервале [ -1.0, +1.0 ], и у меня не было проблем, когда я выбранных случайных значений с интервалом [ +0.1, +1.0 ].
Я обращаю внимание на эти замечания, однако они могут быть из-за моих ошибок.
Цель случайных весов заключается в том, чтобы смягчить возможность каких-либо патологических ситуаций в сети.
Если все нейронов в сети началось с того же веса, сеть будет иметь никаких оснований для увеличения различий между нейронами.
Я отметил, что установление всех ценностей предвзятости к нулю (0.0) является приемлемым.
Учебная сессия включает проходит подготовка набора во много раз, возможно, сотни и тысячи раз.
Для каждого пройти обучение набор, мы рассматриваем каждый пункт в подготовке набора.
Подготовка набора элемент имеет множество материалов, а также набор желаемых результатов.
Мы имитировать сети, используя набор материалов, указанных в учебных пункта.
Моделирование дает выход значений.
Мы пропаганды ошибки назад мысли нейронной сети для расчета выходной ошибки для всех нейронов.
Мы все обновления весов и предубеждения.
Внимание: на один учебный текст, который обсуждался нейронных сетей выступает переживает весь комплекс учебных и только подводя итоги масса изменений и отклонений.
После переживает весь комплекс учебных мы набор веса суммы изменения и отклонения изменений.
Мы принимаем эти суммы и обновить все веса и предубеждения.
Такие суммы могут быть огромными для крупных учебных наборов, - и в результате перехода в весе-пространство будет неоправданно большим.
Так что я думаю, путем деления количества учебных предметов, для получения среднего веса изменения ценностей и среднего отклонения изменять значения, было бы разумным.
Существует нечто призывом о единой компьютерной вес изменить вектор, что-то принимает весь комплекс подготовки к рассмотрению.
Я не знаю, если я просто сделал ошибку в реализации идеи, но я отдал почти полностью на нейронных сетях, так как плохо вещи из поворота.
Потом, когда я пыталась наивно альтернативы, а именно сделать после каждого обновления учебных пункта, все прекрасно работает.
Учитывая весь комплекс подготовки кадров, прежде чем делать обновление имеет некоторые преимущества и недостатки:
Преимущества:
Одноместный учебных пунктов в учебных комплекте с крайней ошибки (например, плохая подготовка пункта) не будет делать большой вклад в обновление, потому что он будет перегружен влияния «качественных» данных;
Недостатки:
Если N это количество пунктов в вашей профессиональной подготовки набора, ваши темпы прогресса для оптимального веса вектора будут разделены N.
Или, по учитывая расстояние вы будете иметь лишь незначительную часть направлении намеки на этом пути по сравнению с наивного подхода;
Возможно, этот метод будет работать для вас, но и опробовать наивного подхода, прежде чем отказываться от нейронных сетей в полное отчаяние!

6.2 Неспособность уменьшить ошибку

Обучение может не уменьшить общую погрешность для подготовки набора.
Важно выявить неспособность уменьшить ошибку.
Следующий список описывает причины провала уменьшить ошибку, и возможные решения.
Пунктов в списке перечислены в порядке приблизительную вероятность, с первого пункта, имеющие наиболее вероятно.
(1) Вес сочетание достиг местного минимум ошибок поверхности, и «застряли;»
Решение: Пуск нового моделирования с новыми случайных весов.
(2) В сети есть очень мало нейронов или слоев для кодирования всех моделей в вашей обучающей выборки;
Решение: осторожно развлекать возможность добавления или слоев нейронов.
(3) Один или несколько пунктов в вашей профессиональной подготовки набора противоречит или явно несовместимым с вашим другие учебные предметы;
Решение: Проверьте свой набор данных для злоупотреблений.
Найти теста, что доходность большинства ошибок для вашего подготовку сети.
Смотри в методах средней тяжести изменений за весь набор данных для уменьшения влияния каких-либо плохие дела.
(4) Учебный курс является слишком высокой (более ничего 1.0, вероятно, чрезмерно), и обновления всегда превышение цели;
Решение: Снизить коэффициент обучения.
(5) Учебный курс является слишком низким (ниже ничего 0.01 может быть слишком мал) и сеть действительно сходятся на вес идеальным сочетанием - но слишком медленно;
Решение: Увеличить коэффициент обучения.
Обучение-два слоя, три-нейрон сети в соответствии с исключительными или (xor) функцию, может, несмотря на простоту функции, не совпадают.
Это может быть удивление и разочарование.
Тем не менее, решение состоит в том, чтобы просто установить все нейронные связи весов на новые случайные значения, а затем пытаться поезд сети снова.
В случае подготовки сети в соответствии с исключительными или (xor) функции, случайные положительные веса, похоже, приведет к успешному обучению каждый раз, в то определенные комбинации положительных и отрицательных весов иногда вызывают обучение на провал драматически.
Необходимость выбрать новые случайные первоначального веса оправиться от неудачи к конвергенции является сожаления следствием сочетания обучения процедуры.
Процедура обучения в основном ищут по глобальной минимальной наискорейшего спуска на поверхность, и потенциал для присутствия «местного минимума» в котором поиск может стать в ловушке.

6.3 В целом подготовка ошибке

Общая ошибка сети, могут быть характерны квадратного корня из среднего квадрата ошибки, или «корень-значит-квадрат» (RMS).
Ошибка в какой-либо конкретной сети производства определяется по следующей формуле:
Error = (Output - Desired);
Сумма квадратов ошибок для подготовки единого пункта, определяется по следующей формуле:
double squaredError = 0.0;
foreach (NeuralNetworkOutput output in ListOfOutputs)
{
    squaredError += (output.Error * output.Error);
}
Сумма квадратов ошибок для всего комплекса вопросов в подготовке множества сумма квадратов ошибок отдельных элементов.  Следующий код показывает, как квадрат ошибки для всего комплекса учебных пунктов можно вычислить:
double squaredError = 0.0;
for
    (
    int trainingItemIndex = 0;
    trainingItemIndex < totalTrainingItems;
    trainingItemIndex++
    )
{
    trainingSet.SetAllInputNodeValues( trainingItemIndex );
    Simulate( propagationIterations );
    trainingSet.SetAllOutputNodeErrorValues( trainingItemIndex );
    PropagateErrors( propagationIterations );
    UpdateWeightsAndBiases();

    foreach (NeuralNetworkOutput output in ListOfOutputs)
    {
        squaredError += (output.Error * output.Error);
    }
}
Общий корень-значит-квадрат (RMS) от ошибок дает квадратный корень из среднего квадрата ошибки:
double rmsError = Math.Sqrt( squaredError / (double)totalTrainingItems );
Эта величина является одним из способов охарактеризовать общую погрешность сети подготовки кадров с учетом всех случаях.

7. Обучение

Обучение происходит в момент, когда вес и отклонения значений нейронов и нейронных связей органов корректируются в соответствии с указанным сетевым входы и выход ошибку ценностей.
Рассмотрим нейронную сеть с двумя входы (x1 и x2), и две ссылки (с весами w1 и w2), и один нейрон тело и один выходной (y).
neuron_network_single_neuron.jpg
Нейронные сети, два входа и один нейрон тело и один выходной
Мы поезд этот нейрон на поставку материалов, компьютерной продукции, компьютерной ошибки, вычислительной вес и отклонения изменений, а также обновление весов и предвзятости, прибывающие в новых весов ( w1', w2' ).
Существует очень интересный способ представить себе этот процесс.
Мы можем касается набора веса, как вектор в многомерном пространстве.  Например, для двух весов мы вектор W = (w1, w2) в двумерном «пространстве вес.»
Когда веса корректируются, мы новый вектор W' = (w1',w2') вес.
Мы можем себе это в качестве точки W переходе к новой точкой W' как часть процесса производства в целях сведения к минимуму ошибок.
Обычно один не будет вычислять результаты ошибок для всех возможных комбинаций веса, потому что надеемся на то, что вес процесс корректировки будут эффективно двигайтесь в направлении наилучшего сочетания.
Тем не менее, давайте участок поверхности, по сути свидетельствует о том, насколько хорошо нейрона удовлетворяет всем пунктам в учебных установить в качестве функции двух своих весов:
neuron_weight_space03.jpg
Сумма квадратов ошибок для подготовки указанного набора как функции двух весов (w1, w2)
В принципе, цель обучения заключается в том, чтобы спуститься на нижний уровень этой поверхности, где ошибка сведена к минимуму.
После того как мы находим точки W = (w1, w2), что дает минимальное значение на этой поверхности, обучение будет закончен, и тогда мы можем просто использовать обученных нейронов.
Ниже диаграмме показано выход нейрона как подготовку функции всех возможных материалов X = (x1, x2):
neuron_input_space02.jpg
Нейрон выходной как функция два входа для (x1, x2) вес комбинацию, которая сводит к минимуму квадрата ошибки
Даже несмотря на взвешенные сумма для этого два входных нейрона-это просто (w1*x1 + w2*x2), активации функции превращает простые поворачивается плоскость в скале.
Эта поверхность имеет правильный выход значений для всех входных комбинаций (x1, x2) указываются нашего учебного набора.
Но вы можете себе представить, как векторы входных X = (x1, x2) аналогичные учебные ценностей приведет также к надлежащего производства ценностей; эта функция нейронных сетей называют «обобщение» и является главной ценностью нейронных сетей.
Как мы попытаемся «спуститься» поверхности квадрата ошибки, мы должны «шаг, прежде чем мы посмотрим!»
Мы обновления вес вектора и предвзятости, а затем мы оцениваем «высоты» поверхности в нашем новом месте.
Одним из следствий этого является то, что мы могли бы переехать в точку с более экстремальных ошибок.
Другим следствием является то, что он может занять время, чтобы спуститься обратно в глубине нашего предыдущего места.
«Прыгающего» возможность для более экстремальных пики и долины ошибки поверхности, непосредственно связанных с «коэффициент обучения,» потому что коэффициент обучения определяет, насколько большое влияние ошибки ценностей у наших вес и отклонения изменений.
Ниже диаграмме показано, каким образом повышение курса обучения ускоряет нашего прибытия на более низких позиций на квадрат ошибки поверхности, где ошибка сведена к минимуму.
Кроме того, график показывает, что повышение курса обучения также предусматривает возможность внесения плохие шаги:
neuron_training_error1512_zoom.jpg
Краткосрочная тенденция корень-среднего квадрата ошибки (RMS) за весь комплекс подготовки на протяжении нескольких итераций обучения, курсы для обучения 0.1, 0.5, 1.0 и 2.0.
Вот граф корень-среднего квадрата ошибки выход из многослойной сети с обучающей выборки с 19386 пунктов, в которых многие плохие шаги на пути к наилучшим веса векторов:
neuron_training_error_spikes.jpg
Обучение иногда сталкивается с пика в корень-среднего квадрата (RMS) ошибка, ошибка, когда увеличивается для некоторых итераций до возобновления снижения тенденции.
Иногда это просто тенденция плавного сближения на желаемый набор весов:
neuron_training_error1512.jpg
Модная корня-среднего квадрата ошибки (RMS) за весь комплекс подготовки в течение нескольких учебных циклов, учебных курсов для 0.1, 0.5, 1.0 и 2.0.

8. Пример: Exclusive-либо (xor)

«Эксклюзив-либо» (xor) это функция, которая принимает два булевых входов и дает один выходной булевых согласно следующей таблице:
X1
X2
Y = xor (X1, X2)
0
0
0
0
1
1
1
0
1
1
1
0
В общем, один нейрон имеет вклад {x1, x2, ...}, проникнув через связи с весами {w1, w2, ...}.
Нейрон вычисляет количество промежуточных d = bias + (w1*x1 + w2*x2 + ...), которые можно рассматривать как определение которых плоскости, в бесконечное множество параллельных плоскостей, содержит указанной точке с координатами {x1, x2, ...}.
Нейрон вычисляет стоимость продукции, y = ActivationFunction( d ), который имеет силу расколоть бесконечное множество параллельных плоскостей в двух наборов, с одним комплектом производство продукции низкого значения, а также производство другой продукции высоких ценностей.
Таким образом, один нейрон разбивает многомерного пространства в двух регионах, разделенных bias + w1*x1 + w2*x2 + ...  = 0 плоскости, и присваивает низких значений для вывода точек в регионе по одну сторону от плоскости, и присваивает высокой выходной значений точек в регионе на противоположной стороне из плоскости.
Таким образом, если две группы точек в многомерном пространстве имеют различные классификации и могут быть полностью разделены плоскости, а затем одного нейрона может быть использован правильно классифицировать моменты из этих наборов в качестве принадлежащих к одной группы или другой стороны.
Исключительной или (xor) функции классифицирует точек в двумерном пространстве (с координатами (x1, x2)), таких центров в том, что набор { (0,0), (1,1) } классифицируются как производство мощностью «0,» и указывает на комплекс { (0,1), (1,0) } классифицируются как производство мощностью «1.»
Существует ни один «самолет» (в данном случае, строка), что может разделять эти четыре пункта в двух наборов.
Таким образом, один нейрон не может быть использована для классификации точек в соответствии с исключительными или (xor) функции.
Одного нейрона может только разбить пространство точек в двух регионах.
Исключительной или (xor) функции классифицирует точек в порядке, что по сути делит два-мерного пространства в трех регионах (или, напротив, четырех регионах).
Два нейронов может разделить два-мерного пространства в трех регионах (например, в двух разных параллельных линий), и, таким образом, могут быть использо