Содержание статьи
Обучи себя сам. Что такое нейронные сети и как они, развлекая, меняют нашу жизнь
Нейрослой
Сама нейросеть представляет собой систему из множества таких нейронов (процессоров). По отдельности эти процессоры достаточно просты (намного проще, чем процессор персонального компьютера), но будучи соединенными в большую систему, нейроны способны выполнять очень сложные задачи по сбору информации, ее анализу и созданию новой. Вот вам хорошо иллюстрирующий этот принцип работы пример:
Среди основных областей применения нейронных сетей — прогнозирование, принятие решений, распознавание образов, оптимизация, анализ данных. Нейросети лежат в основе большинства современных систем распознавания и синтеза речи, а также распознавания и обработки изображений. Они применяются в некоторых системах навигации, будь то промышленные роботы или беспилотные автомобили. О примерах мы поговорим чуть позже, а пока же узнаем…
Дабы найти значение ошибки E, надо найти сумму квадратов разности векторных значений, которые были выданы нейронной сетью в виде ответа, а также вектора, который ожидается увидеть при обучении. Еще надо будет найти дельту каждого слоя и учесть, что для последнего слоя дельта будет равняться векторной разности фактического и ожидаемого результатов, покомпонентно умноженной на векторное значение производных последнего слоя:
Нейронные сети стали называть так из-за принципов работы математической модели, которая чем-то напоминает функционирование нашей нервной системы. Уверены, что вы и сами в курсе: у нас есть нейроны, образующие нервную систему. Их главная задача — распространять информацию по всему телу, используя электрические и химические сигналы. Они черпают ее из окружающей среды или организма, оценивают ее, думают, как отреагировать, а еще запоминают. Вообще, это крайне занятные штуки, и на эту тему есть множество прекрасных книг (читайте — нейроны скажут вам спасибо). Мы же вернемся к их искусственным (?) коллегам.
Пусть у нас уже есть нейронная сеть, но ведь ее ответы являются случайными, то есть наша нейросеть не обучена. Сейчас она способна лишь по входному вектору input выдавать случайный ответ, но нам нужны ответы, которые удовлетворяют конкретной поставленной задаче. Дабы этого достичь, сеть надо обучить. Здесь потребуется база тренировочных примеров и множество пар X — Y, на которых и будет происходить обучение, причем с использованием известного алгоритма обратного распространения ошибки.
В обучаемости. Без этого они просто были бы еще одной математической моделью, но благодаря обучению могут приводить в шок непосвященных. Нейросети могут распознавать более глубокие, иногда неожиданные закономерности в данных. Объяснить на пальцах это не так просто. В общем смысле слова, обучение заключается в нахождении верных коэффициентов связи между нейронами, а также в обобщении данных и выявлении сложных зависимостей между входными и выходными сигналами. Если вначале ее легко обмануть, то через пару сотен тысяч действий, она легко распознает, если вы пытаетесь дать ей что-то не то.
Вот оно, обучение!
Но полученный вектор представляет собой неактивированное состояние (промежуточное, невыходное) всех нейронов, а для того, чтобы нам получить выходное значение, нужно каждое неактивированное значение подать на вход вышеупомянутой функции активации. Итогом ее применения и станет выходное значение слоя.
Ну а последние несколько месяцев и вовсе принесли нейронным сетям и их создателям небывалую славу: выстрелило приложение FaceApp, показывающее, как вы будете выглядеть через энное количество лет. Наверное, пока мы пишем эту статью, кто-то изобрел нейросеть, которая напишет эту статью за меня… Но на самом деле, развлечения – это не предел использования нейронных сетей. Куда важнее то, чему они могут научиться и чему научить нас.
Один нейрон может превратить в одну точку входной вектор, но по условию мы желаем получить несколько точек, т. к. выходное Y способно иметь произвольную размерность, которая определяется лишь ситуацией (один выход для XOR, десять выходов, чтобы определить принадлежность к одному из десяти классов, и так далее). Каким же образом получить n точек? На деле все просто: для получения n выходных значений, надо задействовать не один нейрон, а n. В результате для каждого элемента выходного Y будет использовано n разных взвешенных сумм от X. В итоге мы придем к следующему соотношению:
По сути, принцип работы нейронных сетей, о которых мы сейчас рассказываем, близок к человеческой нервной системе. Каждый нейрон здесь – это этакая ячейка, у которой имеется множество входных отверстий для получения информации и одно выходное. Каким образом многочисленные входящие сигналы формируются в выходящий, как раз и определяет алгоритм вычисления.
В нескольких абзацах расскажем, что это такое, как работает и чего ждать. Сразу скажем – на научную точность не претендуем, потому что тему в трех словах не опишешь, зато оставим в конце несколько ссылок на интересные примеры использования нейронных сетей, которые могут пригодиться и вам.
Потому что мощности стали позволят разрабатывать нейросети даже небольшим компаниям. А главное — появились готовые, предобученные нейросети, распознающие образы, на основании которых можно делать свои приложения, не занимаясь длительной подготовкой нейросети к работе. По сути, создав один раз нейросеть, которая что-то делает с фотографиями (различает лицо, например), вы потом сможете использовать этот алгоритм и на других подобных проектах.
К середине 2019 года нейросети обрели невероятную мощь. До восстания машин еще далеко, но прогресс налицо: они умеют не только развлекать, но и лечить, учить и работать. Попробуем на простых примерах, рассказать, что это такое, и как нейросети, обучаясь сами, обучают и нас
Самый простой пример – «умные» плейлисты музыки (например, Яндекс.Музыка подбирает уникальный плейлист исходя из того, чтобы слушаете чаще всего) или видео на YouTube . Совпадение? Не думаем. Точнее, знаем, что так работают нейронные сети, которые получают поступившую от вас, а также миллионов похожих на вас людей, и прогнозируют то, что вам может понравиться. Вы, кстати, можете им помочь, посмотрев или нет предложенный ролик или пропустив песню. Поисковый алгоритм тут же будет чуть изменен.