1. На входы сети подается неизвестный сигнал. Фактически его ввод осуществляется непосредственной установкой значений аксонов:
поэтому обозначение на схеме сети входных синапсов в явном виде носит чисто условный характер. Ноль в скобке справа от означает нулевую итерацию в цикле работы сети.
2. Рассчитывается новое состояние нейронов:
и новые значения аксонов.
где f — активационная функция в виде скачка.
3. Проверка, изменились ли выходные значения аксонов за последнюю итерацию. Если да — переход к пункту 2, иначе (если выходы стабилизировались) — конец процедуры. При этом выходной вектор представляет собой образец, наилучшим образом сочетающийся с входными данными.
Распознавание цифр с помощью сетей Хопфилда
В первоначальной реализации сети Хопфилда, распознающей цифры, решено было задать в качестве эталона цифры от 1 до 9. Они представлялись векторами размерности 81, содержащими 1 или -1. Эта размерность векторов была выбрана не случайно, так как сеть Хопфилда способна распознать примерно 0,15*N образов, здесь N — число нейронов в сети и соответственно размерность вектора образа. Алгоритм обучения был несколько модифицирован по сравнению с описанным в предыдущей части работы: если сеть в конечном состоянии имеет на выходе вектор, не являющийся точной копией одного из эталонных, но очень похожий на некоторый эталонный образ, то программа «узнает» его. То есть на выходе сеть может иметь вектор, который не в точности является одним из эталонных, а в каком-то приближении. Конечная реализация распознает только цифры от 1 до 5, чтобы оставить наименее похожие друг на друга эталонные образы.
А вот наименее удачные попытки распознавания Рис. 7. Неудачный пример работы сети Хопфилда