Невралгия мрежа
с изучаването на връщане от грешка размножаване
Colin Fahey

Биологичен невронни мрежи
1. Софтуер
2. Въведение
Този документ описва как да приложат изкуствени невронни мрежи, че е в състояние да се обучават да разпознават мотиви.
Този документ описва модел на невронни мрежи, че научава от един алгоритъм, който използва "обратната грешка размножаване."
Този документ съдържа основните демонстрации на ученето чрез "връщане грешка размножаване." Този документ е линк към компютърен код. Компютърът код включва демонстрации. Компютърът код може да бъде използвана за създаване на сложни невронни мрежи. Въпреки това, компютърен код е само за демонстрационни цели. Възможна алтернатива институция би могла да намали памет и може да увеличи скоростта.
3. Алтернатива на изучаването на връщане от грешка размножаване
Този документ описва модел на невронни мрежи, която научава от алгоритъм име "назад грешка размножаване." Този алгоритъм може да изисква много дълго време, за да научите различни уроци. Освен това, този алгоритъм може случайно не успеят да научат различните уроци, дължащи се на случайни първоначалния статус на невронни мрежи, преди обучението.
Учене чрез "активно се комбинират елементи" е важна алтернатива на изучаването на "връщане" от "грешка размножаване." Учене чрез активни елементи се комбинират просто сътрудници материали, които са активни едновременно. Такова обучение може да бъде бърза и надеждна. Въпреки това, в продължение на много практически цели, няма очевиден начин за използване на невронни мрежи, че научава от асоциацията, като има предвид, че е налице явен начин за използване на мрежата, че научава от обратната грешка размножаване.
Някои биологични невронни мрежи са известни за да научите от асоциацията на активни елементи. Назад грешка размножаване не е била наблюдавана във всички биологични невронни мрежи.
Този документ описва интересни приложения за невронни мрежи, че научава от обратната грешка размножаване. Въпреки това, чрез изучаването на асоциацията е много важен алтернативен алгоритъм за обучение. Проектиране на невронни мрежи, че научава от асоциацията за решаване на конкретен проблем може да бъде по-трудно, че desgining алтернатива невронни мрежи, че научава от обратната грешка, размножаване, но биологичните системи научите от асоциацията, както и изучаването на способността на биологичните системи е очевидно.
4. Биологични невроза
4.1 Невроза клетки

Биологичен невроза "(multipolar" тип, ~4 um клетъчна структура)
А невроза е тип клетки, която е способността да получават и предават нервните сигнали.
Неврони са в основата на нервните системи, открити при животни, птици, риби и насекоми.
Мозъка с паметта и логика, и просто рефлекс системи, и двете са основани на режима на неврони.
Неврони се използва също така и да предадат сигнали на големи разстояния в креатура на тялото, като от сензори за мозъка, или от мозъка към мускулите.
Поведението на биологичен невроза е много сложна, но следните опростени описание улавя основни принципа:
В невроза се натрупва сигнали, получени от други неврони, и ако общото натрупване на сигнала надхвърля прага, от невроза, предава своя сигнали към други неврони.
4.2 Невроза части

Части от биологичен невроза
|
Сома
|
Клетката тяло на невроза
|
|
Dendrites
|
Прежди с химични рецептори (елементи), която се разшири от клетъчната структура на невроза. А невроза обикновено е много dendrites и dendrites често имат много клонове.
|
|
Axon
|
А влакно с химически емитери (изходи) в своята крайна цел, които се простира от клетъчната структура на невроза. А невроза е един axon, както и axon обикновено има много малко клонове.
|
|
Synapse
|
Конфигурация, така че axon на една невроза и dendrites на друга невроза са разделени с много малки различия. В такава конфигурация, химикали, отделян от една axon на невроза пресичат synapse и са получени от dendrites на другите невроза. Това е как неврони влияние други неврони.
|
4.3 Невроза разстрел
А невроза се натрупва химически сигнали от неговите dendrites, и ако общият химически натрупване надхвърля прага, в рамките на период от време, невроза "пожари," изпращане на своя сигнал чрез своите axon.
Някои от невроза, са способни да разстрел варива по нареждане на 100 Hz.
Сигналите, минаващи през неврони включват натрупвания на натриев (Na), калий (K), и хлор (Cl) йони, както и в резултат ЕЛЕКТРО потенциала (т.е. напрежението).
В отдих напрежение (-70 mV) и изгаряне на напрежението (+30 mV) може да се измерва или дори повлиян от конвенционалните електрически движение.
Следните е напрежение записване на плъх невроза разстрел в размер на приблизително 100 Hz, когато един whisker е засегнат и се провежда от своята почивка Позиция:

Плъх невроза разстрел (100 Hz) дължи на провеждане на whisker.
Въпреки, че стимул е константа, от невроза сигнал се бърза pulsing.
4.4 Невралгия мрежа
Човешкият мозък е около 10^11 (100 милиард) неврони.
Всяка невроза в cerebellum получи информация от толкова, колкото е 10^4 (10000) synapses.
Въпреки че axon и dendrites на невроза често се удължи само няколко micrometers км от клетъчна структура, някои axons са по нареждане на един метър дължина.
Неврони в мозъка е с относително кратък axons групирани в области, или клъстери.
Мозъка също има връзки от неврони с относително дълъг axons да се свърже области, разделени със сантиметър.
Така йерархична мрежа от преработката елементи се формира.
4.5 Невралгия мрежа статус
Статутът на мрежа от неврони е начинът, по който неврони са свързани както и на всички сигнали на synapses.
Той е неясно колко информация ще бъдат загубени, ако мозъка е tranquilized в системата на общото бездействие за всеки период от време.
Един да си информация трайно само от сигналите се движат чрез мрежата, а не от самата мрежа за свързаност, както и клетъчни автомати симулации като Conway's "Game of Life", просто Dynamic Random Access Memory (DRAM) чипове, и Отзиви в камерата.
4.6 Невралгия мрежа за обучение
Конвенционални се случва, когато изучаването на свойствата на dendrites промяна на synapse да станат повече или по-малко ефективни при получаването на химически сигнали от един axon.
Причините за тези промени са сложни, но резултатът е, че една невроза изисква различна комбинация от елементи synapse да задействат изходния сигнал.
5. Изкуствен невроза
5.1 Определение
"Изкуствена невроза" е един алгоритъм или физическо устройство, което въвежда математически модел, вдъхновено от основния проблем на биологичен невроза.
А невроза се натрупва сигнали, получени от други неврони или съставни елементи (например, датчици), и ако общото натрупване на сигнала надхвърля прага, от невроза, предава сигнал към други неврони и изходи (например, изпълнителни).
Всеки математически модел, който включва идеята за натрупване на множество входове и образуват един изход (accentuates, че относителната интензивност на вложените средства в сравнение с някои номинално ниво) могат да бъдат използвани за модел признаване.
Тези модели могат да бъдат основа на един изкуствен невроза.
Ако влиянието на всеки вход може да бъде променен, а след това на модела могат да подкрепят обучение.
5.2 Активиране на функцията
"Активиране функция" е математическа функция, която преобразува вход стойности под определена стойност за сравнително ниска мощност стойност, и се конвертира вход стойности над определена стойност на една сравнително висока мощност стойност.
"Активиране функция" се използва за конвертиране на претеглената сума от стойностите на приноса невроза на стойност, която представлява продукцията на невроза.
А "sigmoid" функция е общ клас от гладка функции, които asymptotically подход по-ниска граница за приноса отрицателни стойности се доближават до безкрайност, и asymptotically подход горна граница за приноса положителни стойности се доближават до безкрайност.
sigmoid една конкретна функция е "logistic sigmoid" функция:

В "Logistic Sigmoid" функция: 1 / ( 1 + Exp( -x ) )
В "logistic sigmoid" функция може да бъде използвана като "активиране на функцията" за математически модел на невроза.
Математическия производно на "logistic sigmoid" могат да бъдат изчислени по формула, правейки го лесен за изчисляване асоциирана обучение формула.
5.3 Невралгия мрежа вход
А "невронни мрежи вход" представлява въвеждане на невронни мрежи.

Невралгия мрежа вход
"Input" е числената стойност на вложените средства.
5.4 Невралгия мрежата на изхода
А "невронни мрежи продукция" представлява продукция на невронни мрежи.

Невралгия мрежата на изхода
"Output" е числената стойност на продукцията.
"Error" е числената стойност, който представлява разликата между стойността на продукцията, както и "Desired" стойност:
Error = (Output - Desired); // Derived from: Output = Desired + Error;
В "Desired" стойност представлява желаната стойност, или идеална стойност, или правилната стойност, че невронни мрежи, както трябва да доведат до един изход, в отговор на специфични суровини.
Грешката стойност се изчислява и възложени "Error" с алгоритъм за обучение.
Грешката стойност е обратна на невронни мрежи.
В невронни мрежи могат да се адаптират за да се намали разликата между своите продукти и желаните стойности; т.е., за да научите невронни мрежи, и по този начин могат да се намалят бъдещи грешки.
5.5 Невроза тяло
А "невроза тяло" представлява тялото на невроза, която се натрупва вход вноски, и добавя едно пристрастие, и се трансформира в резултат стойност от "активиране на функцията" за производството на един изход стойност.

Невроза тяло
"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) производство на невроза тялото и производство на невронни мрежи.

Невроза връзка
"Input" е кеша на входа на връзката.
"Weight" е регулируема стойност, която засяга начина на сигнала ценности и стойности на грешка размножавам чрез връзката.
"Output" е кеша на изхода на връзката.
Стойността е изчислена чрез следната формула:
Output = Weight * Input;
"Error" е кеша на грешка на връзката.
"WeightedError" е кеша на грешка на връзката, претеглени с тегло фактор:
WeightedError = Weight * Error;
"Rate" е стойност, която отразява това как "Weight" стойност, промените в отговор на "Error" стойност и "Input" стойност.
По време на невронни мрежи обучение, "Weight" стойност се коригира по следния начин:
Weight += (-1) * Rate * Input * Error;
5.7 Невралгия мрежа
А "невронни мрежи" съдържа материали, продукция, невроза органи, както и връзки.
Следните изображение прогнозира прости невронни мрежи, с две материали, както и два невроза органи в първия слой, както и един невроза, а през втората слой, и един изход.

Пример за невронни мрежи
По време на симулиране на невронни мрежи, въведени стойности размножавам предаде чрез връзки и невроза органи, както и евентуално да стигне до изхода.

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

Пример за обратната грешка, размножаване в невронни мрежи
5.8 Невралгия мрежа за симулация
Определение:
"Мрежа за симулация" е процедура, използвана за размножавам мрежа артикули чрез връзките и невроза органи до достигане на мрежата изходи.
Мрежа за симулация включва симулация на всички нейни съставни връзки и невроза органи.
Симулации, без отклонение или време:
Има много възможни конфигурации мрежа, включваща кръга.
Има много невроза модели, които зависят от времето.
Но някои от най-честите приложения на изкуствените неврони включва нито електрически вериги, нито време.
Следните е математически модел на тялото невроза:
Output = ActivationFunction( Bias + InputAccumulator );
С този модел невроза, както и мрежа, без "отклонение," ние просто да започнете от външни суровини, да изчислявате резултатите от първия слой от неврони, както и предлагането на тези продукти като суровини за следващия слой, изчислявате изходи за тази слой, и да продължава чрез форми на неврони до крайната продукция се изчислява.
Линии:
Изградена е мрежа може да има връзки във формата на кръга (или "цикли)."
Така например, на изхода на невроза могат да бъдат свързани директно към входа на същата тази невроза, причинявайки "обратна връзка."
Друг пример е продукцията на невроза # 1 е свързано с приноса на невроза # 2, и на изхода на невроза # 2 са свързани с въвеждане на невроза # 1.
Ако можете да стартирате някои от точка в мрежата и се проследи пътя през неврони и връзки, obeying една по-малка поток на сигнали, и в крайна сметка се стигне до същата тази начална точка, а после пътят е един цикъл.
Линии се въведе интересна възможност за сигнали, протичащи в мрежата за неопределен период от време.
Някои модели обикновено се предполага, че е необходимо определен период от време за сигнали, да премине през отделните неврони.
В такива модели, сигнали разпространява чрез кръга с няколко неврони-бързо, отколкото сигнали разпространява чрез кръга с множество неврони.
А невроза, свързани с сама ще имат най-бързо разпространение на сигнала курс.
Ако невроза има вход X, с тегло W, и пристрастие B, и която не е отрицателен изход Y (например, 0.0 -> 1.0), тогава ние можем да формират осцилатор просто чрез задаване W = (-8) и B = +4 и свързващи Y да X;
всеки път, когато сме на симулира невроза, сигнала ще бъде toggled до обратното състояние.
Мрежа с електрически вериги могат да се занимавам с дейност, дори когато тя не приема външни сигнали (стимули), както артикули.
В клетъчни автомати правилата на Conway's "Game of Life" биха могли да бъдат приложени по невронни мрежи, което ви дава малко подсещане на разнообразието на дейност, която може да се случи по невронни мрежи с електрически вериги.
Краен състояние машини (FSM), oscillators, летливи памет (в контраст с изучаването на модели чрез промяна на тежести), са възможни looping.
Ако мрежата е отклонение, ние не можем да актуализира всички изходи, докато ние изчислявате всички изходи; по този начин, ние изискваме временен буфер за съхранение изчислява изходи, докато ние изчислявате всички изходи, а след това можем да се ангажират новата продукция стойности на неврони в мрежата.
Всеки метод, който актуализации изходи в реалната мрежа в прогресивен начин, вместо това на всички по-веднъж на пътя, се въвежда една произволна подредба във времето, което води до хаос.
Физически лица, симулации, свързани заедно, като планети орбита една звезда с взаимното гравитационно силите между всички органи, изискват от същия вид на подхода: изчисляване на нетните сили на всички органи, преди да актуализира всяка скорост и позиция.
Време-зависимостта:
А просто мрежа симулация обикновено включва артикули причиняване на желаните резултати след една симулация на времето стъпка.
В такава симулация, ние мисля, от гледна точка на "брой повторения," отколкото "времето в секунди."
Има нужда да бъде всяко кореспонденция между повторения и един път мащаб.
Системата може да бъде проектирана да направи мрежа за симулация (итерация), само когато е налична нова входа, които могат да възникнат при нередовни интервали от време.
Въпреки това, считаме за математически модел на невроза, че се опитва да симулира на pulsing изход аспект на биологичното невроза.
В pulsing може да се характеризира по отношение на времето, като pulsing по-специално честотата, или като варива, чиито крива разширява за определен период от време.
Ние можем да имат друг път, зависими елементи в математически модел на невроза, като например въвеждане на акумулатора, чиято стойност се вноски от суровини, но има течащи пропорционално на своята настояща стойност.
По принцип, ние можем да намерим дадена електрическа верига аналогия и за елементите, които отговарят на определени математически уравнения, и така може да се взе едно невроза като съединение с резистори, кондензатори, както и нелинейна усилвател.
Точно както един цикъл да проявяват комплекс във времето зависи поведението на изхода на невроза може да се разглежда като функция, която зависи от нейните съставни елементи и времето в сложни начин.
5.9 Назад грешка размножаване
Определение:
"Назад грешка размножаване" е математическа процедура, която започва с грешка в производството на невронни мрежи и propagates тази грешка, върнете назад в мрежата за добив продукция грешка стойности за всички неврони в мрежата.
Назад грешка размножаване формули:
Грешката стойности по невронни мрежи изходи са изчислени като се използва следната формула:
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 Обучение процедура
Едно можеш да започнеш с обучени мрежата и ще продължат да се намалят производството грешка с допълнително обучение, но едно често започва с untrained мрежа.
Преди обучението, избират произволни стойности за всички тежести на всички неврони в мрежата.
I наблюдават проблеми, когато случайно избрана стойности в интервал [ -1.0, +1.0 ], и аз не са имали проблеми при разглеждане на произволни стойности от интервала [ +0.1, +1.0 ].
I споменават тези забележки, но те може би се дължи на моите грешки.
Целта на случаен принцип на теглото е да се намали възможността за патологични случаи в мрежата.
Ако всички неврони в мрежа започна със същото тегло, мрежата би не основание за увеличаване на диференциацията между неврони.
Имам отбеляза, че за всички стойности пристрастие към нула (0.0) е приемливо.
Обучение на сесията ще включва чрез обучение е много пъти, може би стотици или хиляди пъти.
За всеки преминават през обучение в стаята, считаме всяка точка в стаята за обучение.
А за обучение в стаята елемент е набор от материали, както и набор от желаните резултати.
Ние симулира мрежата, като се използва набор от материали за обучение, определени от елемент.
Симулационната добиви изход ценности.
Ние размножавам грешките назад мисъл на невронни мрежи за изчисляване на мощност за всички грешки, неврони.
Ние обновяване на всички тежести и отклонения.
Внимание: Една академична текст, който обсъжда невронни мрежи се препоръчва преминавайки през цялото обучение в стаята и само summing тегло до промени и отклонения.
След преминавайки през цялото обучение в стаята имаме набор от сумите, с тегло промени и пристрастие промени.
Ние вземаме тези суми и обновяване на всички тежести и отклонения.
Такива могат да бъдат огромни суми за обучение големи множества - и произтичащата от това скок в теглото пространство би било неразумно голям.
Така че, мисля, се раздели на броя на материали за обучение, за да получите средно тегло променя ценности и средните пристрастие промяна ценности, би било разумно.
Има нещо, което призовават за преносими компютри едно тегло промяна вектор, че някак отнема цялото обучение в стаята за разглеждане.
Не знам, ако просто да направи грешка в изпълнението на идеята, но аз почти се отказа от изцяло на невронни мрежи, тъй като за това колко зле се превръща в нещо.
Тогава, когато аз се опитах в наивен алтернатива, а именно при вземане на актуализации на обучение на всеки елемент, нещата работи перфектно.
Като се има предвид цялото обучение в стаята преди да встъпят в една актуализация има някои предимства и недостатъци:
Предимство:
Единична обучение елементи в обучението е с изключителна грешка (т.е., лошо обучение т.) няма да направи голям принос за обновяване, защото той ще бъде претоварени от влиянието на "добрите" данни;
Недостатък:
Ако N е броят на публикациите във вашата подготовка в стаята, вашият процент на напредъка на оптимално тегло вектор ще бъде разделена на N.
Или за дадена дистанция ще имате само една малка част от ръководството съвети по начина, по който в сравнение с наивен подход;
Може би тази техника ще работи за вас, но изпробвате на наивен подход, преди да се откаже от по невронни мрежи в utter обида!
6.2 Липсата на намаляване на грешка
Обучение май не успеят да се намали общата грешка за обучение в стаята.
Важно е да се открие едно не са успели да намалят грешка.
Следният списък описва причините за грешка, като не са успели да намалят, както и възможни решения.
Елементи в списъка са изброени в реда на вероятността да се сближат, с точка първа от дневния ред е най-вероятна.
(1) Теглото комбинация е достигнал до местната минимална площ на грешка, и е "идват;"
Решение: Започнете нова симулация с нови тегла на случаен принцип.
(2) В мрежата има твърде малко невроза или да encode всички слоеве на модели за обучение в стаята;
Решение: внимателно забавляват възможност за добавяне на слоеве или невроза.
(3) един или повече елементи в своята подготовка в стаята противоречи или е крайно несъвместими с другите си обучение елементи;
Решение: Ако вашите данни за нередности.
Намерете тест елементи, които добива най-грешка за вашата обучени мрежа.
Потърсете в системата на средното тегло на техники за промяна за целия набор от данни за намаляване на влиянието на лошите случаи.
(4) курс на обучение е твърде висока (нещо повече от 1.0 вероятно е прекалено), както и за актуализации винаги превишаване на целта;
Решение: Намаляване на обучение курс.
(5) курс на обучение е твърде ниско (под 0.01 всичко, което може да бъде твърде малък), както и за мрежата наистина е обединяването на сигурност, тегло комбинация - но е твърде бавен;
Решение: Увеличение на обучение курс.
Обучение две слой, три невроза мрежа да съвпадне с изключителното или (xor) функция, може, въпреки привидно простия начин на функциониране, не успеят да converge.
Това може да бъде изненада и frustrating.
Въпреки това, решението е просто да се определят всички тегла невроза връзка с новите стойности на случаен принцип и след това се опитват да обучават мрежата отново.
В случай на обучение мрежа да съвпадне с изключителното или (xor) функция, произволни положителни тегла, като че ли да доведе до успешен обучение всеки път, като има предвид, че определени комбинации от положителни и отрицателни тегла понякога причина за обучение да не успеят драматично.
Необходимостта да се избере нов случаен първоначално масите да се възстанови от неспазване на converge неблагоприятни е следствие от комбинацията на изучаването на процедурата.
В изучаването на процедурата е по същество търсят глобален минимум от steepest спускане по площ, както и възможността за наличие на "местна минимална," в които търсенето може да стане хванати.
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).

Невралгия мрежа с две суровини, невроза и едно тяло, и един изход
Ние влак тази невроза с доставка на суровини, производство на компютри, преносими компютри за грешка, компютри тегло и пристрастие промени, както и актуализиране на тежести и предразсъдъци, които пристигат на нови тегла ( w1', w2' ).
Има един много интересен начин да се визуализира този процес.
Ние можем взе множеството на тежести като вектор в едно мулти-тримерното пространство. Така например, в продължение на две тегла имаме вектор W = (w1, w2) в двуизмерен "тегло пространство."
При масите са коригирани, ние имаме нов тегло вектор W' = (w1',w2').
Ние можем да визуализира тази точка като W преминаване към нова точка W' като част от процеса е да сведем до минимум производството грешка.
Обикновено една не би да изчислявате изхода за грешка за всички възможни комбинации на теглото, защото надявам се, че теглото процеса на коригиране ефективно ще се насочете към най-добрата комбинация.
Все пак, нека парцел на площ, които по същество показва колко добре една невроза отговаря на всички точки в стаята за обучение, като функция на неговите две тегла:

Сумата от квадратна грешка за определено обучение, определени като функция на две тегла (w1, w2)
Basically, целта на обучението е да се спускат до най-ниското ниво на тази площ, където грешката е сведено до минимум.
След като намерят точката W = (w1, w2), че добивите на минималната стойност на тази площ, обучението е завършен и след това не можем просто използват обучени невроза.
Следната диаграма показва изхода от обучени невроза, като функция на всички възможни елементи X = (x1, x2):

Невроза мощност като функция на две съставни елементи (x1, x2) за теглото комбинацията, която минимизира квадратна грешка
Макар че със сумата за тази два входа невроза е просто (w1*x1 + w2*x2), за активиране на функцията се превръща просто в завърта равнината на стол.
Тази площ е правилният изход стойности за всички комбинации на входа (x1, x2) определен от нашата подготовка в стаята.
Но можете да си представите как вход вектори X = (x1, x2) подобно обучение стойности, също ще доведе до правилното изход ценности; тази функция на невронни мрежи се нарича "обобщение" и е основната стойност на невронни мрежи.
Тъй като ние се опитаме да се "спускат" на повърхността на квадратна грешка, ние трябва да "високосна, преди ние с нетърпение!"
Ние обновяване на теглото вектор и пристрастие, а след това ние оценяваме "височината" на повърхността най-новата ни място.
Една последица от това е, че ние може да премине към една точка, с по-висока грешка.
Друга последица е, че той може да отнеме известно време да се спускат към дълбочината на нашите предишното място.
Възможността за "leaping" до по-висока върхове и долини на грешка площ е пряко свързан с "изучаването на курс," тъй като изучаването на курс определя колко влияние имат стойности на грешка на нашия тегло и пристрастие промени.
Следната диаграма показва как увеличаване на обучение курс hastens нашето пристигане на по-ниски позиции по квадратна грешка площ, където грешката е сведено до минимум.
Графиката също така показва, че увеличаване на обучение курс също въвежда възможността за вземане на лошите стъпки:

Краткосрочни тенденция на корен-е-(RMS) квадратна грешка за цялото обучение в стаята в продължение на няколко повторения обучение, курсове за изучаване 0.1, 0.5, 1.0 и 2.0.
Ето една графика на корен-е-квадратна грешка при изхода на многослойни мрежа с обучението в стаята с 19386 елементи, които много лош опит стъпки по пътя на най-добрите носители тегло:

Обучение Понякога се натъкваме на spikes в корена-е-квадратна (RMS) грешка, грешка, когато се увеличава за някои повторения, преди да поднови една низходяща тенденция.
Понякога тенденцията е просто плавно конвергенция на желаното набор от теглото:

Тенденция на корен-е-(RMS) квадратна грешка за цялото обучение в стаята в продължение на няколко повторения обучение, курсове за изучаване 0.1, 0.5, 1.0 и 2.0.
8. Пример: Изключителен или (xor)
"Изключителен или" (xor) е функция, която приема две Булева входове и добивите един Булева продукция в съответствие със следната таблица:
|
X1
|
X2
|
Y = xor (X1, X2)
|
|
0
|
0
|
0
|
|
0
|
1
|
1
|
|
1
|
0
|
1
|
|
1
|
1
|
0
|
По принцип, един невроза е артикули {x1, x2, ...}, въведени чрез връзки с тежести {w1, w2, ...}.
В невроза computes междинен количество d = bias + (w1*x1 + w2*x2 + ...), които могат да бъдат считани за идентифициране, който равнина, в един безкраен набор от паралелни равнини, съдържа определена точка с координати {x1, x2, ...}.
В невроза computes производство стойност, y = ActivationFunction( d ), което има ефект от разделянето на безкраен набор от паралелни плоскости в два сета, с един комплект за производство на ниски стойности на продукцията, както и останалите в стаята, произвеждащи висока мощност ценности.
Така, един невроза се разделя много пространство в двата региона, разделени от равнината bias + w1*x1 + w2*x2 + ... = 0, и задава ниски стойности на изхода на пункта в района на едната страна на равнината, и задава високи стойности на изхода на пункта в района на противоположната страна на плоскост.
Така, ако две точкови множества в пространството имат много различни класификации и могат да бъдат напълно отделени от равнина, а после един невроза може да се използва правилно да класифицираме точки от тези множества като принадлежащи към една или друга страна.
Изключителните или (xor) функция класифицира точки в двумерен пространство (с координати (x1, x2)), така че точките в стаята { (0,0), (1,1) } са класифицирани като производство на един изход от "0," както и точки в стаята { (0,1), (1,0) } са класифицирани като производство на производство от "1."
Не е единствена "равнина" (в този случай, една линия), които могат да самостоятелна тези четири точки в двата апарата.
Следователно, една невроза не може да се използва за класифициране точки в зависимост от изключителна или (xor) функция.
Един невроза може само да разделя пространство на точки в двата региона.
Изключителните или (xor) функция класифицира точки по начин, че по същество разделя двуизмерен пространство в три региона (или, алтернативно, четири региони).
Две неврони могат да разделят две тримерно пространство, в три региона (например, с две отделни паралелни линии), и по този начин може да се използва за класифициране на точки в зависимост от изключителна или (xor) функция.
Една трета невроза може да се използва за комбиниране на резултатите от другите два неврони в едно производство.
Следните невронни мрежи, с две материали, както и два невроза органи в първия слой, както и един невроза, а през втората слой, и един изход, може да се използва за класифициране на точки в зависимост от изключителна или (xor) функция.
Следните невронни мрежи могат да бъдат обучени да изчислявате изключителни или (xor) функция, или невронни мрежи могат просто да са му тегло и пристрастие ценности, възложени по начин, който произвежда желаното поведение.

А невронни мрежи, способни на класификацията на точки в съответствие с изключителна или (xor)
В компютърен код, свързани с този документ показва, обучение на невронни мрежи е показано в диаграмата отгоре, за да съвпада с изключителна или (xor) функция.
В невронни мрежи понякога не успее да научите функцията, но софтуера могат просто да бъдат рестартирани да опитате с изучаването на нов набор от първоначалната тегла.
Ако софтуерът успешно научава изключително или (xor) функция, а след това на изхода подобен на следния:
x1 = 0.0000 x2 = 0.0000 y = 0.0172 error = 0.0172
x1 = 1.0000 x2 = 0.0000 y = 0.9802 error = -0.0198
x1 = 0.0000 x2 = 1.0000 y = 0.9839 error = -0.0161
x1 = 1.0000 x2 = 1.0000 y = 0.0154 error = 0.0154
Изходните (y) е в рамките на 2% от стойността на желания за всяка от четирите комбинации на променливите (x1, x2).
Въпреки, че мрежата е обучен да научите изхода само четири стойности за комбинация от променливи (със стойности 0.0 и 1.0, представляващи Булева стойност), на суровини за невронни мрежи могат да бъдат зададени на всеки произволен плаваща точка ценности.
Следните изображение показва изхода от обучени невронни мрежи за много комбинации от входа стойности:

А невронни мрежи, способни на класификацията на точки в съответствие с изключителна или (xor)
В площ представлява продукцията на невронни мрежи за всички възможни комбинации на входа (x1, x2) в диапазоните [ -2.0, +2.0 ].
Изхода е в близост до 0.0 в намалява площта на повърхността, а изхода е в близост до 1.0 на най-високо области на повърхността му.
Имайте предвид, че на повърхността е ниско за по точки { (0,0), (1,1) }, и на повърхността е високо в пунктовете { (0,1), (1,0) }.
Мрежата е само обучени за производството на желаните резултати в продължение на четири специфични комбинации от входа променливи, невронни мрежи, но също така произвежда продукция за всички други възможни комбинации на входа ценности.
Способността на невронни мрежи за производство на разумни решения за общите случаи, след като бъдат обучени за специални случаи може да се разглежда като "обобщение."
Всеки процес, който подхожда на данни точки на модела, като например монтиране точки на линията или друга крива, също произвежда "Генерализиране" ефект, така че фактът, че монтирането един невронни мрежи за производството на желаните резултати за конкретни резултати от уроците по вид обобщение не е извънредно, но въпреки това е интересно да се наблюдава способността да се обобщи от конкретни случаи.
9. Пример: Tic-tac-toe "(Naughts и Кръстове)"
9.1 Въведение
Tic-tac-toe "(Naughts и Кръстове)" е проста игра играе на 3 * 3 мрежа от клетки, които могат да бъдат маркирани с "O" или "X".
Играчи алтернативно място "O" и "X" марки в unoccupied клетки, докато един от играчите извърши ред, колона или диагонал.
Тъй като съществуват 3 реда и 3 колони, и 2 диагонали, има осем печеливши модели за всеки играч.

Tic-Tac-Toe борда и печеливши модели
Той е незначителен да напишеш recursive функция, която изследва всички възможни Tic-Tac-Toe игри, тъй като максималната продължителност на играта е девет движения.
Към всяка точка в играта ние просто разглежда резултатите от движение във всяка една от останалите unoccupied клетки.
Тази функция може да потвърди, че Tic-Tac-Toe играе с "добра" игра "играчи" ще приключи, без победител.
9.2 Обучение един невронни мрежи да се посочи най-добрите ходове
А recursive функция може да проучат всички възможни игри и да се определи най-добрия ход за всяка конфигурация на борда.
Ние добавяне на борда на всяка конфигурация (суровини), и най-добрият ход (желаните резултати), за да списък на материали за обучение.
Ние тогава влака на мрежата за производство на желаните резултати за всеки набор от суровини.
Мрежата ще има 9 суровини, съответстващи на всяка клетка на мрежата, както и приноса стойности ще бъдат ограничени до следните стойности:
0: Unoccupied клетки
+1: протагониста плеър
-1: противниковия играч
Мрежата ще има 9 изходи, съответстващи на всяка клетка на мрежа, и на изхода стойности ще бъдат ограничени до следните стойности:
0: Да не се преместите тук
1 е: Реагирайте тук
Осем изходи, ще бъде "0," и един изход ще бъде определен до "1."
Така, след обучение на невронни мрежи, Съвет конфигурация може да бъде определен като вход, както и невронни мрежи ще посочат най-добрия ход.
Изходните-близо до "1," ще посочат най-добрия ход, както и всички останали изходи трябва да бъде близка до "0."
По принцип, всяка функция с Булева параметри и Булева изходи могат да бъдат представлявани от невронни мрежи с два слоя от неврони.
Първият слой от неврони да се разделят много пространство в региона, а вторият слой съчетава в региона класификации за производство на съответния изход ценности.
В Tic-Tac-Toe невронни мрежи Булева произвежда продукция, суровини, и въпреки че има три състояния ( -1, 0, +1 ) успяхме, в princple, конвертирате тези няколко дискретни входа стойности с набор от материали Булева.
Затова, два слоя от неврони трябва да е достатъчна, за да научите Tic-Tac-Toe.
Защото в мрежата има 9 изходи, има 9 невроза органи в крайното (второ) слой.
Единствените останали невронни мрежи дизайн на решението се взема решение за броя на невроза органи да въведат в първия слой на невронни мрежи.
За да направите това решение, компютърен код могат да генерират и задвижена невронни мрежи с N неврони в първия слой.
Способността на невронни мрежи да научат цялостно обучение за Tic-Tac-Toe може да бъде graphed.
Следната диаграма показва цялостното обучение е грешка по време на обучението за всяка от 48 различни невронни мрежи, с N = 1,2,...,48 неврони в първия слой.

Като цяло обучението е грешка по време на обучението, за N = 1,2,...,48 неврони в първия слой (N = 1 е в горната част, както и N = 48 е в дъното, както и повечето междинни криви са по-ниски по-високи стойности на N)
Друг начин да визуализира тази тенденция е да формират площ от поредица от завои:

Като цяло обучението е грешка по време на обучението, за N = 1,2,...,48 неврони в първия слой (N = 1 е в гърба, и N = 48 е най-отпред)
По този начин, виждаме, че тъй като ние подход N = 48 неврони в първия слой, мрежата е да бъде в състояние да приеме всички случаи обучение.
Нещо по-малко от 48 неврони нива изглежда недостатъчно, за да научите пълния набор от случаите.
При малък брой неврони, като всеки допълнителен невроза значително намалява общата грешка.
Въпреки това, когато броят на неврони се в близост до номера, необходими за да научиш целия набор от уроци, като всяка допълнителна невроза само намалява грешката от една сравнително малка сума.
Следните изображение показва невронни мрежи с 9 материали, както и 48 невроза органи в първия слой, и 9 невроза органите на втори слой, и 9 изходи.

А невронни мрежи, способни да научат да играят tic-tac-toe
В компютърен код, свързани с този документ включва код за изграждане и обучение на невронни мрежи е показано по-горе.
Обучението в стаята има 4520 точки за обучение.
В 200 обучението повторения (включваща 3 размножаване стъпки, за общо 200 * 4520 * 3 = 2712000 симулация стъпки и същ номер на грешка, размножаване стъпки), като общата грешка е намалял от 1.520 да 0.153.
(Тези цифри могат да варират в зависимост от случайни първоначалните условия.)
Обучението, което се изисква няколко минути.
Следват два примера на определени входове и изходи, произведени от обучени невронни мрежи:
Scenario #1:
Input:
1.0000 -1.0000 0.0000
0.0000 1.0000 -1.0000
-1.0000 0.0000 0.0000
Best move:
0.0001 0.0000 0.0676
0.0001 0.0000 0.0000
0.0000 0.0000 0.9870
Scenario #2:
Input:
-1.0000 -1.0000 0.0000
1.0000 1.0000 0.0000
0.0000 0.0000 0.0000
Best move:
0.0000 0.0000 0.0859
0.0000 0.0000 0.9819
0.0000 0.0000 0.0000
Мрежата е обучен да произвежда най-добрите ходове на играч, чиято марка отговаря "+1."
Най-добрият ход за играч на противника, чиято марка отговаря на "-1," могат да бъдат намерени чрез умножаване на всички елементи от (-1) преди да симулира невронни мрежи.
10. Обучение невронни мрежи
По-долу е цитат от "Artificial Intelligence" (3rd edition; Addison Wesley; 1993), от Patrick Henry Winston, глава 22, Learning by Training Neural Nets, p. 468.
Невралгия-Net обучение е изкуство
Вие сега знаете, че сте изправени пред много избори, след като реши да работят върху един проблем чрез обучение на един невронни нетно използване на гърба размножаване:
* Как можете да представят информация в мрежата невронни условия?
Как можете да използвате невронни нетната суровини да изразя това, което знаете?
Как можете да използвате невронни нетните резултати да се определи това, което искате да знаете?
* Колко неврони трябва да имате във вашата невронни нето?
Брой артикули?
Брой изходи?
Колко тежести?
Колко скрити пластове?
* Какво курс параметър трябва да използвате в гърба-размножаване формула?
* Ако ви влак невронни нето на етапи, или едновременно?
Грешен избор, водят до лоши резултати.
Една малка невронни нето не могат да научат това, което искате да научите.
А големите нетни ще научите бавно, може да идват от местните максимуми и могат да проявяват overfitting.
Една малка честота параметър май насърчаване на нестабилност или да предоставят лоши предсказания.
За съжаление, на правилното избор зависи от характера на проби.
Математически, вие може да видите на проби, като представител glimpses на скрити функции, с едно измерение за всеки вход.
Ако има много артикули, функцията на много характер прави функция трудно да мислите за и невъзможно да се визуализира.
Съответно, най-добрият пътеводител за избора си е изпитание и за грешка, buttressed, ако е възможно, с позоваване на избори, които са работили добре в подобни проблеми.
По този начин, успешното разгръщане на невронни мрежи технология изисква време и опит.
Невралгия-нето експерти са на изкуството; те не са просто наръчник потребители.
11. Кадри стойности на входа и изхода стойности, подходящи за невронни мрежи
Математическият модел на невроза тяло, представени в този документ произвежда един изход стойност като се използва "логистична sigmoid функция" (т.е., ( 1 / (1 + Exp(-x)) )).
Следователно, резултатите са ограничени до диапазона от 0.0 да 1.0.
Така че, математическият модел на невронни мрежи, представени в този документ могат да бъдат използвани директно да учат и да произвеждат продукция в диапазона от 0.0 да 1.0, като за Булева изходи, или за продължително изходи ограничена до част от този диапазон.
Въпреки това, в мрежата могат да бъдат използвани също да научите и произвеждат продукция в ограничен кръг, ако резултатите се преобразува от и към диапазона от 0.0 да 1.0.
Така например, предполагам крайния изход стойности са ограничени до диапазона от P да Q, и предполагам Z представлява произволна крайния изход стойност ограничен до диапазона от P да Q, и предполагам Y представлява съответния невронни мрежи мощност се ограничава до диапазона от 0.0 да 1.0.
Следните формули може да се използва за конвертиране между двата вида продукция стойности:
Y = (Z - P) / (Q - P); // Q > P; Q != P
Z = P + (Q - P) * Y; // Q > P
Конвертор окончателно изхода на невронни мрежи продукция е необходимо по време на обучението.
Конвертор един невронни мрежи изхода на крайния изход е необходимо по време на нормална симулация.
Входове на невронни мрежи, не са ограничени както като изходи, защото връзките са тегло ценности, които могат да се разширят или attenuate вход стойности произволно.
Въпреки това, въведени стойности далеч извън диапазона от -1.0 да 1.0 може да предизвика проблеми, тъй като преди тегла имате възможност да коригирате, в екстремни стойности ще пристигнат първо като параметър за "логистичен sigmoid функция" ( 1 / (1 + Exp(-x)) ).
Екстремни стойности за тази функция ще направи продукцията на невроза много близо до 0.0 или 1.0, както и при грешки размножавам назад чрез мрежата на тази невроза, грешката ще бъде претеглена с (Output * (1 - Output)), която ще бъде изключително малки.
Ето защо, конвертиране на първоначалното въвеждане на стойности варират от 0.0 да 1.0 преди предоставянето на тези стойности за материали на невронни мрежи вероятно е добра идея.
Предполагам първоначалното въвеждане стойности са ограничени до диапазона от A да B, и предполагам W представлява произволна оригинален принос стойност ограничен до диапазона от A да B, и предполагам X представлява съответния невронни мрежи вход стойност, че ние решите да ограничите до варират от 0.0 да 1.0.
Следната формула може да се използва за конвертиране на първоначалното въвеждане стойност до стойност, подходяща за доставка на невронни мрежи.
(Не е необходимо да конвертирате една невронни мрежи вход стойност до стойност в първоначалното въвеждане диапазон.)
X = (W - A) / (B - A); // B > A; B != A
12. Препратки
Следните книги могат да бъдат полезни в разбирането невронни мрежи и техните приложения.
[1] Artificial Intelligence (3rd ed) (Patrick Henry Winston; Addison-Wesley; 1993)
Тази книга е много интересна и полезна.
Авторът описва много очарователни теми, с примери, с достатъчно подробно, за да можете да използвате понятия в практически ситуации.
Авторът описва невронни мрежи и "обратно размножаване" обучение в значителни подробности, включително и математически разговори.
[2] Artificial Intelligence: A New Synthesis (Nils J Nilsson; Morgan Kaufmann; 1998)
Тази книга, както и референтния [1], е завладяващ и практическото въвеждане на изкуствен интелект.
Въпреки това, тази книга е малко по-кратък от референтната [1].
Мисля, че човек, ще се възползват от четене двата [1] и [2].
Бих само препоръчва тази книга, ако имате силен интерес във всички Изкуствен интелект, че да се препоръча позоваването [1] дори и на тези, които са изрично е интересно да научите за невронни мрежи.
[3] Focus on AI (Prima Tech / Prima Publishing)
Част от играта развитие серия редактирани от Andre LaMothe.
Тази книга е полезна за игра програмисти, и е изпълнена с примери, компютърен код, които докажат, невронни мрежи, генетични алгоритми, както и размита логика, всички приложени към играта характер, поведение.