наверх

как устроены нейросети

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

Зачем нейросетям узнавать котиков? Потому что они могут

Технари — самые ленивые люди на планете. Сначала им тяжело стирать и они изобретают стиральную машину, потом становится утомительно мыть руками и… Вы поняли. Хуже их только айтишники. Венец творения их лени — искусственная нейронная сеть. Она почти как настоящая, но только в компьютере. Есть три глобальные области применения для нейросетей:

1. Классификация. Например, если вы выбираете кружку для утреннего кофе, то распределяете все кружки по параметрам — какого она объема, цвета, есть ли принт в виде котиков — и только затем берете самую приглянувшуюся. Нейросеть классифицирует быстрее и лучше, чем вы. Без обид.

2. Предсказание. Нейросеть не сможет предсказать вашу судьбу (а даже если может, то вам не скажет), но зато может предсказать рост акций, основываясь на ситуации на фондовом рынке.

3. Распознавание. Это самое интересное применение нейросетей. Кто из вас определял свой возраст по фотографии? Есть нейросети, которые определяют есть ли котик на фотографии. И есть даже те, что не просто определяют, а еще и прогоняют чужого котика с вашей лужайки. Но не судите о моральных качествах всех нейросетей по одному ее представителю.

Зефир или не зефир, вот в чем вопрос

Искусственная нейросеть, конечно, дело непростое. Оставим реализацию специалистам, а сами пройдемся по верхам. Соберем свою нейросеть, которая будет принимать решение, купить ли нам эту пачку зефирок. И проблема человечества будет решена.

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

Синапсы — нейронные связи, благодаря которым общаются нейроны.

Представьте, что стоите в магазине перед полкой с конфетами. В этот момент в вашей жизни важны только три вещи:

1. Сейчас зима, а зимой горячий какао с зефиром особенно прекрасен.

2. Вы любите розовый.

3. Но не любите шоколад.

Входные нейроны понимают из человеческого языка только два слова: да и нет. Поэтому возьмем три входных нейрона, каждый из которых ждет ответ на свой вопрос:

1. Зима ли сейчас?

2. Розовый ли зефир?

3. Покрыт ли он шоколадом?

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

Давайте наконец скажем входным нейронам что происходит: на дворе не зима, зефир розовый и покрыт шоколадом. Также допустим, что у первого синапса вес 0,5, у второго 0 и у третьего 0,5.

Если входной нейрон говорит синапсу «да», тогда синапс активируется и передает дальше свой вес. В нашем случае второй и третий синапс передадут 0 и 0,5, а первый не передаст ничего. Красный выходной синапс получит окончательное значение. Он примет положительное решение, если получит сумму равную или больше 0,5.

В нашем случае он получает 0 + 0,5 = 0,5 и принимает решение покупать зефир. И вот вы стоите на кассе, за окном цветет лето, в ваших руках пачка розового зефира в шоколаде, и вы понимаете, что это совсем не то, что вы хотели. Что-то пошло в вашей жизни не так.

А чего вы ожидали? Нейронные сети нужно обучать.

Школа для непослушных нейросетей

Когда решение, принятое нейронной сетью, не влезает ни в какие рамки закона и вашей морали, нужно с этим что-то делать. Какие-то данные, которые мы задали были неверны, отсюда и такой результат. За окном действительно лето, вы правда любитель нежных розовых оттенков и страстью к шоколаду не воспылали. Значит что-то не так с весом синапсов. Так и происходит обучение нейронной сети. После каждой проверки вес синапсов, которые привели к ошибке, меняют. Мы не айтишники, народ не ленивый, поэтому сделаем это вручную. Мы зададим первому и второму синапсу вес 0,5. Если одно из этих условий выполнится, мы возьмем зефир с полки. А третьему синапсу зададим вес -1,5, потому что мы ни при каких условиях не хотим видеть шоколад на нашем любимом десерте, боже упаси. Проверяем.

Выходной синапс сообщает нам результат «-1» и не советует брать этот зефир. Теперь сеть сработала как надо. И теперь у нас есть одна хорошая новость и одна плохая. Хорошая в том, что у нас теперь есть схема умной нейросети, знающая ваши предпочтения в зефире. Ну а плохая — сегодня никакого сладкого.

Обучение нейронных сетей – это вторая большая боль после проектирования их архитектуры. Любое изменение входящих данных полностью меняет значение всех нейронов. И если мы можем проанализировать три синапса, то вручную отследить значения миллиона синапсов — просто невозможно. Делаем вывод, что специалисты по машинному обучению едят свой хлеб не зря.

Задача под звездочкой: скрытые нейроны

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

Скрытых нейронов, которые задают новые условия нейросети, может быть много. Такое усложнение называется обобщением. Это как раз то, к чему способен человеческий мозг — обобщать множество факторов для принятия единственно верного решения.

Сколько нейронов у пчелы

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

Немного интересной математики: у человека в среднем 1011 нейронов. В это время у лягушки их всего 107, а у пчелы 106. В 2012 году искусственные нейросети не могли догнать даже лягушку по количеству нейронов. Например, нейросеть для распознавания изображений тех годов содержала в себе 106 нейронов. Как у пчелы. Но нам радоваться нечему и на это есть две причины. Во-первых, с 2012 года технологии ушли далеко вперед. А во-вторых, уже тогда такая нейросеть была умнее на своем поприще не только лягушки, но и человека, несмотря на количество нейронов.

Наши нейроны призваны решать множество разных задач. Они управляют и движением тела, и принимаемыми решениями, и желанием погладить кота. В противовес все нейроны нейросети направлены только на одну задачу — распознать картинку. И не отвлекаются по мелочам. На сегодняшний же день самая хайповая нейросеть от Nvidia, превращающая простые скетчи в реалистичные изображения, содержит в себе уже 1,7 * 109 нейронов.

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