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

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


Как посчитать Xij для каждого образа? Прогоняем много файлов 100*100 где по-разному записана цифра 0..9. Если для цифры точка закрашена прибавляем 1 к Xij, иначе убавляем 1.


Т.е. для цифры 1, например, матрица будет такая, что по краям будут сильно отрицательные значения. А в полоске посередине все более положительные.


И наконец, делаем 3ий слой (реагирующий R) – одномерный числовой массив размерности N. При поступлении картинки для распознавания НС считает число совпадений точек для каждого из образов 0..9. Т.е. для каждой точки смотрим, если она закрашена, то в позицию R[n] прибавляем значение из 2го слоя A[n, i, j].


В итоге получаем для каждого эталонного образа 0..9 финальную оценку R[n], которая говорит насколько картинка похожа на эти образы. Для удобства, эти баллы можно нормализовать и получить, например, что на "8" картинка похожа с вероятностью 85%, а на "3" с вероятностью 60% и так далее. Можно настроить выход третьего слоя, чтобы он давал только одно значение – число с максимальной полученной вероятностью в случае если эта вероятность >80%. А если вероятность меньше, то считать что цифра не распознана.


Вот в принципе и всё. Кстати, эта штука с 3-мя слоями называется перцептрон. Он считается простейшим, т.к. у него только один внутренний A-слой.


Можно сделать НС с несколькими внутренними A-слоями. Например, один A-слой распознает отдельно лапы, хвост, морду и шерсть собак. А 2ой A-слой пользуется 1м и знает, какие лапы и другие причиндалы у определенных пород собак.


Или первый слой распознает буквы, 2-ой слова из букв, а 3ий понимает, полученный текст спам или нет. Плюс 2-ой слой влияет на 1ый. Например, в английском языке есть артикль the и если есть слово из 3х букв и первые 2 – "th", то 3ий слой ненавязчиво советует 2-му слою, что 3-я буква "e". Это рекуррентные НС.


В реальности считаются не "число попаданий точки и умножение на весовой коэффициент", а хитрая математическая магия: сигмоидальная функция, метод градиентного спуска, метод обратного распространения ошибки и прочая нечисть.


Что из этого всего следует:

1) для приемлемого качества НС нужно обучать гигантским количеством данных.

2) обучающие данные должны быть размеченными, т.е. человек должен отсмотреть все эти файлы с изображениями, например, собак и указать, что это именно собака, а не кошка.

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

4) исходные данные нужно нормализовать – при распознавании текста из графического файла резать текст на слова и буквы, поворачивать изображение, чтобы оно было без наклона, увеличивать или уменьшать, сделать монохромным, убирать шумы и др.

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

6) что хорошо – обучить НС можно один раз на мощностях ИТ-гиганта типа Гугл, а пользоваться результатами смогут все.

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

7) большой минус – НС, в-основном, могут решать всего 2 основных класса задач:

а) распознавание – отнести объект к известному классу, т.е. сказать, что на фото число 1 или 2, танк или корова.

Страница 6