"Нейронные сети — это революция" кричат заголовки газет и даже политические лидеры сегодня говорят о них. Это авторская статья, для тех кому просто любопытно. Попытаюсь в 10 строк описать, что это такое и как отличается от всего что было до. И покажу 10 примеров почему это хорошо и плохо. Итак — вперед!

Нейронные сети для любознательных

----------------------<cut>----------------------

В: Что такое "нейронная сеть" (НС) ?
О: Это компьютерная программа имитирующая работу (любого) мозга

В: А как она его имитирует?
О: Как сеть, состоящую из нейронов и синапсов

В: Что делают НС нейроны?
О: Принимают решение

В: Что делают НС синапсы?
О: Передают решение от одного нейрона к другому

В: Так НС это программа?
О: Да, но не совсем обычная. Это программа управляемая данными. И вот тут начинается интересное:

Когда-то давно Никлаус Вирт (изобретатель языка Паскаль и вообще теоретик языков программирования) вывел знаменитую формулу: Алгоритмы + структуры данных = программы. Так вот, в НС алгоритмов, как таковых, нет. Есть структура сети — сколько нейронов и как они между собой связаны синапсами. Есть математика определяющая как нейроны принимают решение. И есть параметры определяющие решение и его передачу от нейрона к нейрону

В: Так это же так просто, да?
О: На поверхности. У собаки 500 млн нейронов, у человека — 100 млрд. А если попытатся каждый связать с каждым ... ммм ... ну в общем очччень много связей, никакой компьютер не справиться

В: Так что же тогда делать?
О: Упрощать сеть, вместо плоской (каждый нейрон с каждым) делать многоуровневую

В: О, Глубокое Обучение, да?
О: Ба, вы об этом в новостях прочли? :-)

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

Нейронные сети для любознательных

В: Как это, хватит, а откуда нейроны знают что им делать?
О: А для этого этого их учат

В: Программист?
О: Нет, данные! На вход сети подают набор данных и ожидаемый от сети результат. Внутри сети сидит один очень важный алгоритм — минимизация. Его задача — "перебрать" внутренние параметры сети (решение каждого нейрона и распространение каждого синапса) чтобы результат максимально приблизился к ожидаемому для всех предоставленных данных

В: А разве это возможно?
О: Да, это давно решенная математическая задача

В: И что дальше?
О: А дальше мы подаем на вход сети другой набор данных и смотрим насколько хорошо наша натренированная сеть справится с ними. Это очень похоже на обучение человека — вам показывают 100 фото разных велосипедов и 100 фото не велосипедов, а потом просят найти велосипеды среди 100 других фото

В: И что, это всегда работает?
О: Нет конечно, даже человек с его 100 млрд нейронов ошибается, причем в ту и в другую сторону. Иногда на фото с машиной говорит — велосипед, иногда велосипед не замечает

В: Я устал, картинки будут?
О: А как же, вот:

Задача: разработать универсальную НС которая сможет изменять свойства объекта изображения (для программиста это как "иди туда, не знаю куда, принеси то, не знаю что" :-)

Решение: НС, но не простая, а золотая :-) Точнее, значительно сложнее чем описано выше — их там две, одна пытается заменить свойство объекта, а вторая — догадаться была замена или нет. Если догадалась то командует первой — делай снова. Полная статья — ищи кнопку "источник"

Результат: из фото — Монэ, из лошади — зебра, из зимы — лето (и обратно):

Нейронные сети для любознательных

Нейронные сети для любознательных

Нейронные сети для любознательных

В: Обалдеть, так почему такое не используется везде?
О: Ну во-первых используется — Google поиск картинок, Siri и Alexa — распознавание речи. Во-вторых НС требуют значительных мощностей компьютера, особенно на процесс обучения. Вот почему большинство реальных НС бегает на серверах и на облаке, хотя есть и легкие версии для микропроцессоров

В: А бывает когда НС ошибается, ну как человек с велосипедом?
О: Когда НС ошибается все намного хуже. Вот как наша "обалденная" НС ошибается:

Нейронные сети для любознательных

и даже вот так:
Нейронные сети для любознательных

(патриоты, меня не пинать, это не я, это в самой научной статье!)

Ну а на последок — видео, зебра, без "всадника":