Основы нейросетей. Константин Константинович Берлинский
Чтение книги онлайн.
Читать онлайн книгу Основы нейросетей - Константин Константинович Берлинский страница 4
https://ru.wikipedia.org/wiki/Розенблатт,_Фрэнк
https://ru.wikipedia.org/wiki/Искусственный_интеллект
https://ru.wikipedia.org/wiki/Зима_искусственного_интеллекта
Написано довольно сложным языком, с формулами и фразами вида "… очевидно, что нелинейная характеристика нейрона может быть произвольной: от сигмоидальной до произвольного волнового пакета или вейвлета, синуса или многочлена". Ага, очевидно… для доцентов физмат вузов! Остро не хватает знаний по матану, теорверу, дифурам и прочим задротским ништякам для очкариков и яйцеголовых. Гуманитариям, думаю, читать будет совсем тяжко.
В итоге, как я понял работает НС.
Допустим есть картинка 100*100 точек. Нужно определить, какая цифра 0..9 на ней изображена.
Делаем 1-ый слой (сенсорный S) – двумерный битовый массив 100*100. В каждую позицию записываем 0 или 1 в соответствии с тем, закрашена ли точка в той же позиции в файле.
Делаем 2-ой слой (ассоциативный A) – трехмерный числовой массив N*100*100. Где N – число образов, которые должна распознавать наша НС. В данном случае N=10, т.к. нам нужно распознать числа 0..9, т.е. всего 10 цифр / образов. В каждую позицию [N, i, j] записываем число х в соответствии с тем, насколько часто встречается закрашенная точка в той же позиции для цифры 0..9.
Как посчитать 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м и знает, какие лапы и другие причиндалы у определенных пород собак.
Или