Содержание статьи
Нейросеть где используется
Какими бывают нейросети
По сути, принцип работы нейронных сетей, о которых мы сейчас рассказываем, близок к человеческой нервной системе. Каждый нейрон здесь – это этакая ячейка, у которой имеется множество входных отверстий для получения информации и одно выходное. Каким образом многочисленные входящие сигналы формируются в выходящий, как раз и определяет алгоритм вычисления.
К середине 2019 года нейросети обрели невероятную мощь. До восстания машин еще далеко, но прогресс налицо: они умеют не только развлекать, но и лечить, учить и работать. Попробуем на простых примерах, рассказать, что это такое, и как нейросети, обучаясь сами, обучают и нас
Но по какой логике пересчитываются веса, понять можно. В ходе обучения нейросеть анализирует данные, а потом ей дают правильный ответ. Этот ответ для нее — числовое значение. Поэтому она подгоняет веса так, чтобы в своей работе сеть приближалась к эталонному значению. Мы подробнее расскажем об этом процессе ниже, когда поговорим про обучение.
Искусственная нейронная сеть — не модель человеческого мозга: даже самые мощные из существующих сетей не могут достигнуть таких мощностей и подобного количества нейронов. В человеческом мозгу огромное количество нервных клеток — десятки миллиардов. В искусственных нейросетях намного меньше нейронов. Для создания нейронной сети, по возможностям равной человеческому мозгу, сейчас нет мощностей.
Самый простой пример – «умные» плейлисты музыки (например, Яндекс.Музыка подбирает уникальный плейлист исходя из того, чтобы слушаете чаще всего) или видео на YouTube . Совпадение? Не думаем. Точнее, знаем, что так работают нейронные сети, которые получают поступившую от вас, а также миллионов похожих на вас людей, и прогнозируют то, что вам может понравиться. Вы, кстати, можете им помочь, посмотрев или нет предложенный ролик или пропустив песню. Поисковый алгоритм тут же будет чуть изменен.
Нейросеть повторяет этот же принцип, но программно. Нейроны — это программные объекты, внутри которых хранится какая-то формула. Они соединены синапсами — связями, у которых есть веса: некоторые числовые значения. Веса отражают накопленную нейросетью информацию, но сами по себе, в отрыве от сети, не несут информационной ценности.
Нейронные сети – это одно из направлений в разработке систем искусственного интеллекта. Не единственное, но очень популярное из-за своих возможностей в сфере развлечения. Сейчас о них говорят на каждом углу, а впервые о таких сетях услышали еще в 1943 году. Кстати, тогда еще не существовало даже понятия «искусственный интеллект», а сети уже были.
Сама нейросеть представляет собой систему из множества таких нейронов (процессоров). По отдельности эти процессоры достаточно просты (намного проще, чем процессор персонального компьютера), но будучи соединенными в большую систему, нейроны способны выполнять очень сложные задачи по сбору информации, ее анализу и созданию новой. Вот вам хорошо иллюстрирующий этот принцип работы пример:
Нейросеть — аналог мозга?
Нейронные сети стали называть так из-за принципов работы математической модели, которая чем-то напоминает функционирование нашей нервной системы. Уверены, что вы и сами в курсе: у нас есть нейроны, образующие нервную систему. Их главная задача — распространять информацию по всему телу, используя электрические и химические сигналы. Они черпают ее из окружающей среды или организма, оценивают ее, думают, как отреагировать, а еще запоминают. Вообще, это крайне занятные штуки, и на эту тему есть множество прекрасных книг (читайте — нейроны скажут вам спасибо). Мы же вернемся к их искусственным (?) коллегам.
Для эффективного обучения нужно много повторений. Иначе нейронная сеть будет работать неточно — ведь входные данные могут серьезно различаться, а она окажется натренирована только на один возможный вариант. Поэтому обучение проводится в несколько итераций и эпох.
Это опять же свойство, взятое из человеческого мозга. Нейронные связи в нашей нервной системе укрепляются, когда мы что-то выучиваем, — в итоге мы помним и делаем это лучше. Так появляются знания и навыки. У искусственных нейронных сетей так же: просто вместо физического изменения нервной ткани здесь происходит изменение числовых значений.
Веса. Веса — числовые значения внутри синапсов нейронов. Нейросеть подсчитывает их самостоятельно в ходе обучения. Когда нейронная сеть сталкивается в ходе обучения с каким-то признаком, который нужно запомнить, она пересчитывает веса. При этом доподлинно неизвестно, какие именно числовые значения отвечают за те или иные признаки — и как именно признаки в них преобразуются.
Потому что мощности стали позволят разрабатывать нейросети даже небольшим компаниям. А главное — появились готовые, предобученные нейросети, распознающие образы, на основании которых можно делать свои приложения, не занимаясь длительной подготовкой нейросети к работе. По сути, создав один раз нейросеть, которая что-то делает с фотографиями (различает лицо, например), вы потом сможете использовать этот алгоритм и на других подобных проектах.
Классификация Такие нейросети берут заданные данные и классифицируют их. Например, могут догадаться, к какому жанру относится текст, или оценить платежеспособность человека по его банковскому профилю Предсказание Эти сети делают какие-то выводы на основе заданной информации. Сюда можно отнести как предсказание будущих доходов по текущим данным, так и «дорисовывание» картинки Распознавание Часто применяемая задача — распознавать те или иные объекты. Такие нейросети используются в умных камерах, при наложении фотофильтров, в камерах видеонаблюдения и других подобных программах и устройствах.
Ну а последние несколько месяцев и вовсе принесли нейронным сетям и их создателям небывалую славу: выстрелило приложение FaceApp, показывающее, как вы будете выглядеть через энное количество лет. Наверное, пока мы пишем эту статью, кто-то изобрел нейросеть, которая напишет эту статью за меня… Но на самом деле, развлечения – это не предел использования нейронных сетей. Куда важнее то, чему они могут научиться и чему научить нас.
Представьте себе сельскохозяйственный комбайн, исполнительные механизмы которого снабжены множеством видеокамер. Он делает пять тысяч снимков в минуту каждого растения в полосе своей траектории. Каждый снимок сам по себе ничего не значит. Но используя нейросеть, сравнивая полученные результаты с теми, что есть в его программе, комбайн анализирует — не сорняк ли это, не поражено ли оно болезнью или вредителями. И обрабатывает каждое растение индивидуально. Фантастика? Уже не совсем. А через пять лет может стать нормой.
Три задачи нейронных сетей
Кроме того, есть входной и выходной слои. Входной принимает информацию и преобразовывает ее, например переводит картинку в матрицу из чисел. Выходной обрабатывает результат и представляет его в понятном человеку виде. Например, результат 0,77827273 он представит как «с точностью в 78% это такой-то предмет».
Синапсы. Синапс — это связь между нейронами. У каждого синапса есть веса — числовые коэффициенты, от которых как раз и зависит поведение нейронной сети. В самом начале, при инициализации сети, эти коэффициенты расставляются случайным образом. Но в ходе обучения они меняются и подстраиваются так, чтобы сеть эффективнее решала задачу.
В основе искусственной нейронной сети лежит устройство нервной ткани человека. Она состоит из нервных клеток, связанных между собой длинными отростками. В клетках происходят нервные импульсы, они передаются по отросткам в другие клетки. Таким образом нервная ткань обрабатывает или генерирует информацию. Сами импульсы очень сложно расшифровать: это не понятные человеку данные, а набор слабых электрических токов, которые нейроны воспринимают как информацию.
Перцептроны — Это классические нейронные сети, изначально однослойные, позже многослойные. Сейчас используются в основном для вычислений. Сверточные нейронные сети — Это многослойные сети, которые состоят из чередующихся сверточных и субдискретизирующих слоев и предназначены специально для работы с изображениями. Рекуррентные нейронные сети Их особенность в возможности последовательно обрабатывать цепочки данных и «запоминать» предыдущую информацию. Поэтому их применяют для работы с изменяющимися сведениями или длинными цепочками данных, например рукописными текстами. Генеративные нейронные сети Предназначены для создания контента. Иногда используются генеративно-состязательные нейросети — связка из двух сетей, где одна создает контент, а другая оценивает его качество.
Нейронными сетями занимаются специалисты по машинному обучению. Они не пишут программы, основанные на алгоритмах: вместо этого они создают модель и обучают ее, а потом тестируют, насколько хорошо она работает. Есть отдельные компании, специализирующиеся на разработке нейросетей, а есть продуктовые отделы крупных IT-организаций, например Google.
Но разработки в этом направлении ведутся — правда, пока такие проекты находятся на стадии исследований. И даже с небольшим по сравнению с мозгом количеством нейронов нейросети могут достигать поразительных результатов в обучении. Некоторые даже проходят тест Тьюринга, но с оговоркой: сознания у них нет, просто они хорошо научились имитировать его наличие. Иногда даже человек не всегда способен распознать в своем собеседнике нейронную сеть.