Нейронные сети для чайников

Изучаем нейронные сети: с чего начать

В данной статье собраны материалы — в основном русскоязычные — для базового изучения искусственных нейронных сетей.

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

Книги

Начнем подборку с классического способа изучения — с помощью книг. Мы подобрали русскоязычные книги с большим количеством примеров:

  • Ф. Уоссермен, Нейрокомпьютерная техника: Теория и практика. 1992 г.
    В книге в общедоступной форме излагаются основы построения нейрокомпьютеров. Описана структура нейронных сетей и различные алгоритмы их настройки. Отдельные главы посвящены вопросам реализации нейронных сетей.
  • С. Хайкин, Нейронные сети: Полный курс. 2006 г.
    Здесь рассматриваются основные парадигмы искусственных нейронных сетей. Представленный материал содержит строгое математическое обоснование всех нейросетевых парадигм, иллюстрируется примерами, описанием компьютерных экспериментов, содержит множество практических задач, а также обширную библиографию.
  • Д. Форсайт, Компьютерное зрение. Современный подход. 2004 г.
    Компьютерное зрение – это одна из самых востребованных областей на данном этапе развития глобальных цифровых компьютерных технологий. Оно требуется на производстве, при управлении роботами, при автоматизации процессов, в медицинских и военных приложениях, при наблюдении со спутников и при работе с персональными компьютерами, в частности, поиске цифровых изображений.

Видео

Нет ничего доступнее и понятнее, чем визуальное обучение при помощи видео:

  • Чтобы понять,что такое вообще машинное обучение, посмотрите вот эти две лекции от ШАДа Яндекса.
  • Введение в основные принципы проектирования нейронных сетей — отлично подходит для продолжения знакомства с нейронными сетями.
  • Курс лекций по теме «Компьютерное зрение» от ВМК МГУ. Компьютерное зрение — теория и технология создания искусственных систем, которые производят обнаружение и классификацию объектов в изображениях и видеозаписях. Эти лекции можно отнести к введению в эту интересную и сложную науку.

Образовательные ресурсы и полезные ссылки

  • Портал искусственного интеллекта.
  • Лаборатория «Я — интеллект».
  • Нейронные сети в Matlab.
  • Нейронные сети в Python (англ.):
    • Классификация текста с помощью нейронных сетей и TensorFlow;
    • Простой классификатор изображений.
  • Нейронная сеть на JavaScript.

Серия наших публикаций по теме

Ранее у нас публиковался уже курс #neuralnetwork@tproger по нейронным сетям. В этом списке публикации для вашего удобства расположены в порядке изучения:

  • Общие сведения о нейронных сетях.
  • Строение нейронных сетей.
  • Описание основных функций активации.
  • Архитектура однослойных НС.
  • Архитектура многослойных НС.
  • Правило обучения Хебба.
  • Правило обучения Розенблатта.
  • Правило обучения Уидроу-Хоффа.
  • Многослойный персептрон.
  • Алгоритм обратного распространения ошибки.
  • Алгоритм наискорейшего спуска с моментами.
  • Эвристические алгоритмы.
  • Алгоритм имитации отжига.
  • Метод роя частиц.
  • Генетические алгоритмы.
  • Эволюционный алгоритм.
  • Распознавание образов.
  • Прогнозирование временных рядов.

>

Искусственные нейронные сети (ИНС) — что такое нейросети, как они работают, преимущества и недостатки искусственных нейронов, где используются нейросети

Нейросети для чайников

Сегодняшняя статья будет посвящена достаточно сложной теме — что такое искусственные нейронные сети и зачем они нужны. Мы расскажем вам историю создания нейронных сетей, как развивалась данная наука о сетях и что сейчас она может предложить человечеству. Тема очень сложная для понимания и, возможно, понять, что написано в данной статье не получится с первого раза, однако мы постараемся изложить информацию о нейронных сетях как можно проще. Тема нейронных сетей актуальна сейчас, как никогда — то и дело в сети встречается масса сайтов, на которых эти самые сети забавно совмещают картинки, разукрашивают ч/б фотографии, распознают рукописный текст, речь и т.д. Это лишь малая часть того, что на самом деле умеет ИНС (искусственная нейронная сеть). Возможности ИНС безграничны, однако они существенно уступают тому, что умеет человеческий мозг. По сравнению с нейронными сетями, мы спокойно можем разобрать речь собеседника в шумном помещении, узнать человека среди сотен других людей и т.д. ИНС умеет все то же самое, однако если сравнить нейросеть с каким-либо живым существом на планете, то она будет едва умнее пиявки. Все же, наш мозг добился отличной работоспособности спустя 50 000 лет эволюции (если мы говорим о Homo sapiens), а нейросети существуют всего 65 лет. Тем не менее, современные технологии сильно шагнули вперед и нет никаких сомнений, что через 10-15 лет нейрокомпьютеры вплотную приблизятся по своим возможностям к человеческому мозгу, благодаря стремительному развитию нейросетей и искусственного интеллекта в целом.

  1. История создания ИНС
  2. Что такое нейросеть
  3. Как работают нейронные сети
  4. Где эффективны ИНС
  5. Преимущества нейросети
  6. Недостатки нейронной сети
  7. Виды ИНС
  8. Нейросети в реальной жизни

Искусственные нейронные сети — история создания

Впервые о нейронных сетях начали говорить в далеких 50-х годах прошлого века. В период с 1943 по 1950 год были представлены миру первые две основополагающие ученые работы. Одна из них, статья 1943 года двух выдающихся ученых — Уорена Маккалока и Уолтера Питтса освещала математическую модель нейронной сети, а в 1949 году канадский нейропсихолог Дональд Хебб выпустил книгу «Организация поведения», в которой было подробное описание процесса самообучения ИНС.

Позднее, в 1957 году известный американский ученый Фрэнк Розенблатт изобрел перцептрон — математическую (компьютерную) модель обработки информации человеческим мозгом. Данная разработка уже в те годы умела прогнозировать погоду и распознавать образы, однако вскоре перцептрон жестко раскритиковали из-за скандальной работы Марвина Минского. В 1969 году ученый выпустил статью, в которой разъяснялось, какие задачи перцептроном не могут быть решены и при каких условиях его работа неэффективна. После этого интерес к неросетям угас, но не на долго.

В 1974 году Пол Вербос разработал алгоритм обратного распространения ошибки, который используется и по сей день для обучения ИНС. Начиная с 1985 года Джон Хопфилд предлагает миру свое виденье устройства и работы нейросети, которая способна решать некоторые виды задач. Именно работы Джона Хопфилда вновь разогревают нешуточный интерес мировой общественности к искусственным нейронным сетям. В 90-е годы прошлого века алгоритм обратного распространения ошибки получил существенное развитие, за счет чего былая критика Минского касательно неработоспособности сетей окончательно опровергнута. На сегодняшний день ИНС является главным подразделом машинного обучения.

Нейросеть — в целом об ИНС

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

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

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

А вот как выглядит наш с вами мозг, упрощенный до ИНС.

Нейронные сети — почему они работают?

Для начала — принцип работы ИНС в точности повторяет алгоритм работы биологических нейронных сетей. Чаще всего ответ на вопрос, почему нейросети работают, звучит так: каждый нейрон из сети умеет обрабатывать сигнал, а поскольку их миллиарды, то входящая информация на входе преобразуется в правильный сигнал на выходе. Важно учитывать то, что алгоритм работы каждого нейрона одинаков, поэтому возникает вопрос: если все нейроны работают по одинаковому примеру, то почему нейросети могут выдавать разные ответы, а не один и тот же постоянно? Дело в том, что помимо самих нейронов существуют еще и синапсы. Синапс — это место соединения выхода одного нейрона и входа другого, при этом сигнал при прохождении через синапс либо усиливается, либо ослабляется. На картинке можно увидеть, как соединяются биологические нейроны друг с другом — красный цвет отображает главный нейрон, а желтый выходы близлежащих нейронов. Каждый из биологических нейронов обладает тысячами входов для других нейронов, а значит и синапсов также тысячи. Умножим наши тысячи на миллиарды нейронов (у человека около 85 млрд. нейронов в головном мозге) и получаем очень большое число синапсов.

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

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

  • пороговая функция;
  • гистерезис;
  • сигмоид.

Когда эффективны ИНС?

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

Простые и средние по сложности, принцип решения которых известен:

  • легкие уравнения;
  • распечатка документа;
  • запуск программы.

Подобные задачи решаются с помощью обычного ПК.

Мало- среднесложные задачи с частичным знанием решения:

  • прогнозирование ситуации;
  • нахождение погрешности;
  • приблизительные ответ уравнения.

Такие задачи решаются при помощи статистики.

Высокая сложность задачи с неизвестным решением:

  • сложное прогнозирование;
  • распознавание речи;
  • распознавание образов.

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

Что касается нейросети, то для того же распознавания она просто незаменима. ИНС можно научить распознавать лица, при этом самообучение, присуще нейросетям позволит работать алгоритму приложения в итоге безошибочно определять, кто изображен на фотографии. ИНС можно научить всему, что мы делаем на бессознательном уровне. Да, это трудно, но это возможно.

Преимущества нейросети

1. Шум входных данных

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

2. Адаптация к изменениям

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

3. Отказоустойчивость

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

Подобное свойство присуще и искусственным нейросетям, когда при повреждении некоторого количества нейронов, выдаваемые ответы системы в общем — логичны и правильны.

4. Быстрота работы

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

Виды искусственных нейронных сетей

Для начала стоит знать, что любая нейросеть состоит из двух основных слоёв — принимающего (он же и распределительный) сигналы и обрабатывающего. Однако, если нейронная сеть состоит только лишь из этих двух слоев — то она однослойная, если слоев больше, то многослойная. Теперь поподробнее.

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

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

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

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

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

Нейронные сети — использование в реальной жизни

Искусственные нейронные сети используют практически везде. Например, все вы знаете о Google картах с режимом Street View. Так вот, при просмотре улиц каждый из нас замечал замазанные лица людей и номера машин — все это выполнили нейронные сети. Также при наборе текста посредством голоса (распознавание речи) используются нейронные сети. На просторах интернета существует множество развлекательных проектов с применением нейронных сетей. Это и приложение MSQRD — наложение всевозможных масок на лицо в реальном времени, и Андроид-приложение Mlvch, которое обрабатывает картинки при помощи ИНС, и многое другое.

Более серьезное применение нейроных сетей можно увидеть в яндексовском приложении Авто.ру, которое распознает автомобили на снимках; CaptionBot от Майкрософт — нейросеть автоматически придумывает подпись к изображениям, исходя из содержания картинок; WhatDog — распознавание породы собак, изображенных на фотографиях и т.п.

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