Что такое нейросети?

02.05.2018

Многие не осознают этого, но машинное обучение уже вокруг нас, и оно оказывает определенное влияние на жизнь. Искусственные нейронные сети используются в поиске по фото в Google и Яндекс, в камерах смартфонов для определения положения лица и многих других функциях. Нейросети активно используются для синтеза изображений, например, в 2016 году мобильное приложение Prisma, которое позволяет обрабатывать фотографии в стиле работ знаменитых художников, приобрело массовую популярность.

В 2016 году программа AlphaGo выиграла турнир по игре Го у знаменитого игрока Ли Седоля. Стоит отметить, что в Го нельзя одержать победу простым перебором комбинациий, так как на это не хватило бы вычислительных ресурсов. Нейронная сеть обучилась игре, проанализировав уже сыгранные партии и выигрышные комбинации, а также играя самостоятельно.

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

Основная идея искусственной нейронной сети состоит в том, чтобы компьютерные алгоритмы могли распознавать закономерности и принимать решения "по-человечески".

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

Искусственная нейронная сеть позволяет быстро обрабатывать данные, обучаться на их основе и обновлять внутреннюю структуру для повышения производительности. Благодаря механизмам обучения нейросети могут разрабатывать свои собственные алгоритмы, гарантирующие их правильную работу.

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

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

Соединения между нейронами называются синапсом. У синапсов есть один параметр — вес, который представлен числом. Вес может быть либо положительным, либо отрицательным (если одна единица подавляет или блокирует другую). Чем выше вес, тем больше влияние информации одного нейрона на другой.

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

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

В феврале этого года приобрела популярность нейросеть deepfakes, которая заменяет лица знаменитостей в роликах. Deepfakes анализирует лица на видео и пытается «исправить» их — то есть сделать как можно более похожими на образец, которому обучили нейросеть. Пример работы алгоритма deepfakes в можно посмотреть в этом ролике, где лица актеров заменили на лицо Николаса Кейджа.

Нейросеть Algorithmia, запущенная в 2016 году, реалистично раскрашивает чёрно-белые изображения. Нейросеть обучилась раскрашиванию, проанализировав около 1 миллиона фотографий.

Сотрудники Яндекса научили нейросеть генерировать стихи на английском языке в стиле Курта Кобейна. Позже на основе этих стихов был записан музыкальный альбом под названием Model. Для того чтобы обучить нейросеть генерировать стихи на английском языке, разработчики собрали огромный архив современной и классической зарубежной поэзии.

Возможности применения нейросетей расширяются с каждым днем. Вы знаете другие интересные нейросети? Тогда поделитесь своими идеями с читателями, пишите в нашу группу vk.