В режиме распознавания подаем на вход скан цифры и определяем пересечения с матрицами цифр 0..9. Если точка закрашена в образце и матрице, суммируем вес из матрицы. Если в образце точка закрашена, а в матрице нет, вычитаем штрафные очки. Это защита от кейса "закрасим всю область черным и получим цифру 8". Матрица с максимальной суммой считается распознанной цифрой 0..9.
В общем долго объяснять, а кода получилось всего ничего ~100 строк. См. код в скринах и ссылку в конце.
Можно улучшить алгоритм. Если точка не попала в пересечение, находить ближайшую и добавлять ее вес с неким коэффициентом. Можно делать изображения черно-белыми (сейчас серое). При совпадении точек умножать ее вес на вес из матрицы и др.
Но даже с исходными условиями получилось довольно неплохо. НС корректно определило цифру в 57% случаев при тренировке 5 тыс изображений и 5тыс для теста.
Правда на вики пишут, если правильно построить НС, можно добиться 99.8% корректно распознанных цифр. На кривой козе к Тьюрингу не подъедешь.
В общем, надо копать тему дальше. Есть инструменты обучения НС более высокого порядка – Google/TensorFlow, Microsoft/Azure, Amazon/AWS, Яндекс/DSVM. Где нужно задать только данные и параметры обучения и можно использовать НС не зная какие алгоритмы в ней работают. Но все-таки хочу знать что у этой штуки под капотом. Без этого пегого дудочника не напишешь и в техкранч не попадешь.
Как я сказал выше, основная проблема в том, что я не понимаю как НС должна работать "по-настоящему". Что бесит – даже создатели НС, той же DeepBlue (побила Каспарова в шахматах) или AlphaGo (разгромила чемпиона мира по ГО) не могут внятно объяснить, как работает их НС и почему она сделала определенный ход.
Еще смешнее с появившимися последнее время интеллектуальными голосовыми/чат помощниками – Сири, Алисой и Олегом. На жалобу клиентки, что ей не удается войти в моб банк по отпечатку пальца, Олег посоветовал отрезать ей пальцы.
Лол, кек. А что в итоге? Авторы Олега не смогли объяснить его кровожадность. Типа, Олег еще учится, потом станет умнее. Имхо, это не ИИ, а просто перебор фраз, части которых использовались в похожем контексте, а Олег тупо их склеил в примерно осмысленную фразу. Это не интеллектуальный помощник, а буллшит генератор. По развитию Олег не ушел от ELIZA, видел такую программу поддерживающую разговор с человеком еще в 1996 г (создана в 1966 г!).
Это же алгоритм и тупой комп! Что ему дали, то он и посчитал. В ИТ нет ответа "я кнопочку нажала и все пропало, не знаю что произошло". Всегда есть конкретная причина у всего и всегда есть ответ на поставленный вопрос. Может трудно получить ответ, но он всегда есть.
Математика – точная наука, не то что эти ваши гуманитарные сопли:
– География – бессмысленное заучивание списка стран и столиц.
– История – зазубривание списка фактов и сознательное искажение этих фактов в угоду текущей повестке.
– Литература – изучение контента, написанного алкоголиками, самоубийцами и депрессивными интеллигентами, не нашедших своего места в жизни и рефлексирующих над проблемами давно утративших актуальность.
– и прочие недонауки (медицина/биология, философия, психология и, мое любимое – естествознание! никогда не понимал, что это такое и зачем это в школе).
Не боюсь оскорбить гуманитариев этим постом, они его не прочтут, т.к. стоят на свободной кассе.
Со своей стороны признаюсь, что несмотря на техническое образование, не понимаю как работают многие вроде бы элементарные вещи.
Особенно плохо в школе нам давали физику. Препод был 2х-метровый боксер-еврей. Похоже он просто замещал свою жену, тоже учителя физики, но сам совершенно не любил, не понимал и не умел интересно объяснять свой предмет. Но сообщить ему сей прискорбный факт желающих не нашлось.
А еще говорят евреи круты в физике. В универе, правда, я сдал ее на высший бал и только за счет этого поступил на бюджет. Тупо зазубрил формулы и моментально все забыл на следующий день. А вот математику и особенно химию нам давали неожиданно хорошо для почти сельской школы.
Итак, ТОП-12 непонятных для меня вещей. Для того, кто плохо знает физику, мир полон чудес.
1) Электричество. Дырки и электроны, которые ползут в разные стороны в зависимости от разности потенциалов. Ну фигня же полная! Как это посмотреть в микроскоп?
2) Конденсаторы. Заряженный аккумулятор Теслы весит как пустой, но двигает авто на сотни километров. Чудо же!
3) Гравитация и закон всемирного тяготения. Кидаешь яблоко вверх и оно приземляется тебе на голову. А если его кинуть с 1-ой космической скоростью 8 км/сек, оно уйдет на стационарную орбиту вокруг планеты и будет крутиться там очень долго. А с 11.2км/сек яблоко покинет планету (16.7 – Солнечную систему). Но блин, почему вещество притягивает другое вещество? Почему людей тянет друг к другу?
4) Гравитация на микроуровне. Почему электрон крутится вокруг ядра и не улетает к чертям?