При обучении нейрона нам известна ошибка самой сети, то есть на входных нейронах. На их основе можно рассчитать ошибку в предыдущем слое и так далее до входных что носит название метода обратного распространения ошибки.
Сам же процесс обучения можно разделить на этапы: инициализация, само обучение и предсказание.
Если же у нас цифра может быть различного размера, то применяется pooling слои, которые масштабируют изображение в меньшую сторону. По какому алгоритму будет вычисляться то, что будет записано при объединении, зависит от алгоритма, обычно это функция max для алгоритма «max pooling» или «avg» (среднеквадратичные значение соседних ячеек матрицы) average pooling.
У нас уже появилось несколько слоёв. Но в применяемых на практике нейронных сетях их может быть очень много. Сети с количеством слоёв больше четырёх слоёв принято называть глубокими нейронными сетями (DML, Deep ML). Их может быть очень много, что приводит к сложности. С улучшением архитектур, позволяющих уменьшить или обойти такие ограничения, появляются сети с сотнями слоёв. Например, блоки Residual Connect, позволяющие сохранить градиенты и ставшие стандартом для глубоких сетей, появились впервые в ResNet с количеством слоёв 152 штуки и это далеко не самая глубокая сеть. Но, как вы уже заметили, количество слоёв не берётся, по принципу, чем больше, тем лучше, а прототипируется. Излишнее количество ухудшает качество за счёт затухания, если для этого не применять определённые решения, такие как проброс данных с последующим суммированием. Примерами архитектур нейронных сетей могут быть ResNeXt, SENet, DenseNet, InceptionRes NetV2, InceptionV4, Xception, NASNet, MobileNet V2, Shuffle Net и Squeeze Net. Большинство из этих сетей предназначены для анализа изображений и именно изображения, зачастую, содержат наибольшее количество деталей, и на эти сети возлагается наибольшее количество операций, чем и обуславливается их глубина. Одну из подобных архитектур мы рассмотрим при создании сети классификации цифр LeNet5, созданную в 1998.
Если же нам нужно не просто распознать цифру или букву, а их последовательность, заложенный в них смысл, то нам нужна связь между ними. Для этого нейронная сеть после анализа первой буквы отравляет на свой вход вместе со следующей буквой результат анализа текущей. Это можно сравнить с динамической памятью, а сеть реализующую такой принцип, называют рекуррентной (RNN). Примеры таких сетей (с обратными связями): сеть Кохонена, сеть Хопфилда, ART модели. Рекуррентные сети анализируют текст, речь, видео информацию, производят перевод с одного языка на другой, генерируют текстовое описание к изображениям, генерируют речь (WaveNet MoL, Tacotron 2), категоризируют тексты по содержанию (принадлежность к спаму). Основным направлением, в котором работают исследователи в попытке улучшить в подобных сетях является определение принципа, по которому сеть будет решать, какую, на сколько долго и на сколько сильно будет сеть учитывать предыдущую информацию в будущем. Сети, приминающие специализированные инструменты по сохранению информации, получили название LSTM (Longshort term memory).
Не все комбинации удачны, какие то позволяют решать только узкие задачи. С ростом сложности, всё меньший процент возможных архитектур является удачным, и носит своё названия.
В общем, имеются сети принципиально отличающиеся устройством и принципами:
* сети прямого распространения;
* свёрточные нейронные сети ;
* рекуррентные нейронные сети;
* автоматический кодировщик (классический, разряженный, вариационный, шумоподавляющий) ;
* сети доверия ("deep belief");
* генеративно состязательные сети противостояние двух сетей: генератора и оценивателя;
* нейронные машины Тьюринга нейронная сеть с блоком памяти;
* нейронные сети Кохонена для обучения без учителя;
* различные архитектуры кольцевых нейронных сетей: нейронная сеть Хопфилда, цепь Маркова, машина Больцмана.
Рассмотрим более подробно наиболее часто применяемые сети, а именно, сети прямого распространения, свёрточные и рекуррентные:
Нейронные сети прямого распространения:
* два входа и один выход Percetron (P);
* два входа, два нейрона полносвязных с выходом и один выход Feed Forward (FF) или Redial Basics Network (RBN);
* три входа, два слоя по четыре полносвязных нейрона и два выхода Deep Feed Forward (DFF);
* глубокие нейронные сети;
* сеть экстремального распространения сеть со случайными связями (нейронная эхосеть).
Cвёрточные нейронные сети: