Чтение онлайн

на главную - закладки

Жанры

Шрифт:

По сути НС это жестко заданный алгоритм. Если прогнать через нее один и тот же набор данных, результат будет на 100% известен. А там где есть алгоритм нет разума, т.к. разум гибкий и иногда противоречащий правилам и ожидаемой выгоде. Кто из нас не садился играть в Героев накануне экзамена в универе или не съедал торт забив на диету?

Как выяснилось, разочарование в ИИ стандартная штука. Называется "зима ИИ". Это периоды, когда человечество разочаровывалось в ИИ (из-за завышенных ожиданий), сокращались бюджеты, рушились карьеры и снижался на годы интерес к ИИ. Самая известная зима ИИ – в 1969 г началась после того, как одногруппник Фрэнка Розенблатта (изобретателя

перцептрона) Марвин Минский доказал принципиальную невозможность решения многих классов задач перцептронами. А также после многочисленных провалов проектов для военных по машинному переводу (мгновенному переводу секретных переговоров русских), автономному танку, распознавания на фото бронетехники, краху Lisp-машин (еще одна вундервафля не оправдавшая ожиданий) и др.

Да, а придумал перцептрон Фрэнк Розенблат. Наш человек. Его еврейская семья очень своевременно свалила в США из СССР/Украины как раз в годы между 1 и 2-ой мировыми войнами. Хорошая интуиция. Стал известным ученым в области ИИ, профессором и звездой Корнеллского университета. Исследовал мозг, включая такие спорные опыты на мышах, как обучение мышей навыкам, затем переработку их мозгов в миксере и ввод этой жидкости в мозг другим мышам, а у тех внезапно появлялись навыки прошлых мышей. Мозг странная штука.

Умер в 43 года очень странной смертью после кораблекрушения своей яхты в Чесапикском заливе в 1971 г. Надеюсь, это все-таки была операция по смене личности от ЦРУ и он жил долго и счастливо работая в секретной лаборатории и придумывая всякие интересные штуки. Хоть я и не верю в мировые заговоры. Миром правит явная лажа, а не тайная ложа.

Крупный недостаток НС – они не могут предсказать будущее на основе прошлого если данные из прошлого не коррелируют с будущим. Например они не способны угадать перелом тренда и предсказать курс доллара на завтра. Также, можно скормить НС хоть миллиард знаков числа Pi, но на их основе НС не сможет предсказать следующую цифру. Впрочем, никто из хомо сапиенс это тоже сделать не в состоянии.

Ссылки:

1) Машинное обучение для людей: https://vas3k.ru/blog/machine_learning/

2) Русское датасаенс коммьюнити: https://ods.ai

Источник фото

4 Распознавание цифр без нейросетей

Продолжаю изучать нейронные сети (НС). Если вам неинтересны технические детали НС (ну, вдруг), а в посте ищете только смехуечки, промотайте текст до середины (фразы "тупой комп"), там пара абзацев для гуманитариев.

Итак, прочитал еще пару статей. Многое прояснилось, но вопросы остались. Сигмоидная функция f(х) = 1/(1+e^-х). По описанию страшная вещь! А по факту – просто преобразователь данных. Чтобы значения от [-..+] преобразовать в [0..1].

Нейрон смещения – тот же преобразователь, чтобы сдвинуть функцию (полученные значения) влево или вправо по оси х. Т.е. из диапазона [0..1] перейти, например, в диапазон [3..4].

Но главное, я по-прежнему не понимаю как на физическом уровне устроен процесс обучения и распознавания НС.

Работу НС обычно описывают так. Есть НС с 3мя слоями: входным, средним и выходным. Присваиваем нейронам среднего слоя случайные веса. Подаем на входной слой образец для обучения. Накладываем каждую точку входного изображения на входной слой.

Если на нейроне входного слоя есть сигнал, умножаем его на вес связанного нейрона из 2-го слоя и передаем на 3-ий выходной слой. Выходной слой суммирует пришедшие сигналы со 2-го слоя и пропускает его через функцию активации (ту самую сигмоиду) чтобы преобразовать сигнал в [0..1].

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

Вроде понятно, но что конкретно? Как сделать НС с нуля? Как она научится распознавать изображение? Зачем расставлять случайные веса нейронов (приносить шум в систему) в начале обучения? Зачем менять веса нейронов на каждой итерации через градиентный спуск? Разве НС не будет перенастраиваться каждый раз и запоминать последний образец? Как методом обратного распространения ошибки менять веса всех нейронов так, чтобы общая вероятность распознавания НС увеличивалась после каждой итерации? Разве возможно уменьшать выходную ошибку f_error(х) если она зависит от кучи параметров х1…хn, а сами параметры х не должны влиять друг на друга?

В общем, я не понял как создать НС с нуля. Поэтому решил сделать промежуточное грубое решение исходя из того, что ясно на данный момент.

В чудесном новом мире датасаенс и нейронных сетей есть свой аналог простейшего приложения HelloWorld, как это принято в остальном ИТ. Задача состоит в том, чтобы написать программу, которая распознает рукописные цифры 0..9. Всего-то.

Я уж было решил взять тетрадь в клеточку, написать по страничке каждую цифру, отсканировать и создать таким образом набор данных для распознавания. Но тут открыл для себя прекрасный сайт kaggle.com с кучей бесплатных датасетов, конкурсами и datascience-кудесницами. Оттуда скачал *.csv датасет MNIST с 60+10 тыс рукописных цифр в размере 28х28 точек собранных из сканов контрольных работ американских школьников.

Реализовал простой алгоритм. Назвал его "метод вероятностного накопления". La m'ethode de l'accumulation de probabilit'e (fr). На всякий случай забью название, вдруг докторскую еще по ней защищать.

Суть в том, чтобы в режиме обучения для каждой цифры просуммировать веса каждой точки ее изображения для всех тренировочных образов. После тренировки НС у нас будут 10 матриц 28х28 с весами каждой точки для цифр 0..9.

В режиме распознавания подаем на вход скан цифры и определяем пересечения с матрицами цифр 0..9. Если точка закрашена в образце и матрице, суммируем вес из матрицы. Если в образце точка закрашена, а в матрице нет, вычитаем штрафные очки. Это защита от кейса "закрасим всю область черным и получим цифру 8". Матрица с максимальной суммой считается распознанной цифрой 0..9.

В общем долго объяснять, а кода получилось всего ничего ~100 строк. См. код в скринах и ссылку в конце.

Можно улучшить алгоритм. Если точка не попала в пересечение, находить ближайшую и добавлять ее вес с неким коэффициентом. Можно делать изображения черно-белыми (сейчас серое). При совпадении точек умножать ее вес на вес из матрицы и др.

Но даже с исходными условиями получилось довольно неплохо. НС корректно определило цифру в 57% случаев при тренировке 5 тыс изображений и 5тыс для теста.

Поделиться:
Популярные книги

Я еще князь. Книга XX

Дрейк Сириус
20. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я еще князь. Книга XX

70 Рублей

Кожевников Павел
1. 70 Рублей
Фантастика:
фэнтези
боевая фантастика
попаданцы
постапокалипсис
6.00
рейтинг книги
70 Рублей

Ты - наша

Зайцева Мария
1. Наша
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Ты - наша

Брачный сезон. Сирота

Свободина Виктория
Любовные романы:
любовно-фантастические романы
7.89
рейтинг книги
Брачный сезон. Сирота

Болотник 3

Панченко Андрей Алексеевич
3. Болотник
Фантастика:
попаданцы
альтернативная история
6.25
рейтинг книги
Болотник 3

Часовой ключ

Щерба Наталья Васильевна
1. Часодеи
Фантастика:
фэнтези
9.36
рейтинг книги
Часовой ключ

Возвышение Меркурия. Книга 2

Кронос Александр
2. Меркурий
Фантастика:
фэнтези
5.00
рейтинг книги
Возвышение Меркурия. Книга 2

Архил...? Книга 2

Кожевников Павел
2. Архил...?
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Архил...? Книга 2

Найдёныш. Книга 2

Гуминский Валерий Михайлович
Найденыш
Фантастика:
альтернативная история
4.25
рейтинг книги
Найдёныш. Книга 2

Хозяйка лавандовой долины

Скор Элен
2. Хозяйка своей судьбы
Любовные романы:
любовно-фантастические романы
6.25
рейтинг книги
Хозяйка лавандовой долины

Зайти и выйти

Суконкин Алексей
Проза:
военная проза
5.00
рейтинг книги
Зайти и выйти

Вечный. Книга VI

Рокотов Алексей
6. Вечный
Фантастика:
рпг
фэнтези
5.00
рейтинг книги
Вечный. Книга VI

Инквизитор Тьмы 5

Шмаков Алексей Семенович
5. Инквизитор Тьмы
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Инквизитор Тьмы 5

Вторая невеста Драконьего Лорда. Дилогия

Огненная Любовь
Вторая невеста Драконьего Лорда
Любовные романы:
любовно-фантастические романы
5.60
рейтинг книги
Вторая невеста Драконьего Лорда. Дилогия