Размер шрифта
-
+

Основы нейросетей - стр. 13


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


3) Для скрытых слоев в правиле подсчета дельт сказано, что нужно умножить на веса исходящих ребер на их дельты. Это не так. Не дельты, а 3 из 4-х множителей в дельте. Т.е. из дельт нужно исключить сигнал на предыдущем узле. Т.е. умножить на: (Tj-Oj)*Oj*(1-Oj), а не на (Tj-Oj)*Oj*(1-Oj)*On, где n=j-1


4) Ничего не сказано про архитектуру слоев и ребер. Должны ли они быть Full-connected [FC] (каждый узел соединен с каждым следующим) и как изменить алгоритм если у нас не FC-слои.


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


6) Полно туманных разъяснений вида "ну, тут очевидно – надо взять частную производную dE/dw". Ага, очевидно. Целыми днями только этим и занимаюсь.


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


8) Неясно, нужно ли нормализовать входные сигналы (из 0..255, например, делать числа в интервале 0..1).


9) Говорят, в начале нужно выставить маленькие значения весов ребер. Неясно, насколько малые. 0..1 или 0..0,001?


Правильно говорят, нужна своя, православная вики за 2 млрд руб!


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


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


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


Ссылка: A Step by Step Backpropagation Eхample by Matt Mazur

https://mattmazur.com/2015/03/17/a-step-by-step-backpropagation-example/


Сделал реализацию по статье и вуаля! Все работает! См. код в конце статьи и на скринах.


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


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

Страница 13