Легкое введение в искусственные нейронные сети

от
Прочее    перевод, neural networks

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

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

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

neuron-network_invert.jpg
"Мы — это наш мозг"
Мозг предположительно состоит из 86 миллиардов нейронов, пятая часть которых образует кору головного мозга. Она отвечает за память, мышление, сознание, внутренний голос, эмоции, и на самом деле более развита, чем у всех млекопитающих... В некотором смысле, это делает нас, людей, особенными.

Раньше нейробиологи ошибочно считали, что мозг работает как чёрный ящик: кодирует входящую информацию, обрабатывает её и некоторым образом реагирует. Но оказалось, что всё несколько сложнее и элегантнее, чем есть на самом деле: в нём происходит непрерывное формирование связей между нейронами. Зачем они нужны? Допустим, вы всегда, когда выходите из комнаты, оставляете компьютер включённым. Проходит некоторое время, и эта привычка закрепляется на уровне нейронов: создаётся связь. Но однажды, когда вы возвращаетесь в комнату и видите, что компьютер выключен, нейроны ведут себя другим, особым образом. У вас это проявляется в виде обеспокоенности, что с вашим компьютером что-то не так.

Мне нравится думать о мозге не как об устройстве хранения данных, а скорее как о системе поведения.

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

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

Нервные клетки самоорганизуются и постоянно посылают импульсы. Может показаться, что вы способны прекратить мыслительную деятельность, но это не так, вы постоянно думаете о чём-то и зачастую даже не догадываетесь об этом.

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

Neuralnetwork.png
Каждый нейрон принимает несколько входных сигналов (чисел), интегрирующую функцию, которая суммирует входные сигналы и возвращает число, передаваемое в функцию активации. Результат посылается на единственный выход.

Y3yBw1F.png
Описанная выше модель искусственного нейрона была разработана Маккалоком-Питтсом в начале 1940-х годов. Она является упрощённой версией так называемого персептрона. Разберём, в чём отличия:

    • Принимает на вход вещественных чисел
    • Каждому числу соответствует вес — константа, показывающая насколько важен тот или иной сигнал
    • Интегрирующая функция вычисляет сумму
    • Функция активации — булева функция, которая проверяет неравенство , где порог нейрона

Перенесём в левую часть неравенства, то есть добавим ещё один входной параметр всегда равный 1 и с весом (). Это позволяет несколько упростить выражение:

DBOJzLG.png
Опишем вывод нейрона:



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

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

Обучающие алгоритмы
Чтобы нейронная сеть могла специализироваться в решении задач определённого типа, её необходимо обучить. Этим занимается машинное обучение.

В публикации “Несколько полезных вещей о машинном обучении, которые вы должны знать” автор разделяет выполнение алгоритмов машинного обучения на три различных этапа: представление, эффективность, и оптимизация. Представление определяет формат данных, который будет приемлем для компьютера. Это то как будет храниться информация об объекте и его характеристиках в памяти. Эффективность определяет скорость работы системы при поставленной задаче на предоставленном наборе данных. Оптимизация — алгоритм, предназначенный улучшить эффективность вычислений, соответственно.

Как я недавно заметил, существует несколько классов алгоритмов в машинном обучении. Первый известен как обучение с учителем, когда сеть тренируется на обучающей выборке , в которой задаётся "правильный ответ". Хорошим примером может послужить множество пар чисел . Второе число — булево значение равное 1, если первое число нечётно.

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

Для лучшего понимания, попробуйте представить, какой должна быть выборка для XOR-функции в случае обучения с учителем.

Заключение
Человеческий мозг — это биологическая самообучающаяся нейронная сеть. Несмотря на то, что исследователи знают о нём гораздо больше, чем несколько лет назад, существует главная проблема, которую никак не удаётся решить. Многообразие доступной информации настолько велико, что очень трудно представить её комьютерное представление. Например, подумайте, на каких показателях должен быть основан алгоритм классификатора формы объекта? Очевидно, наши визуально-пространственные способности мозга позволяют решать такие задачи самостоятельно без особых проблем, в то время как компьютеры только пытаются это сделать.

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


Автор оригинала: Lucien R. Zagabe

Дальнейшее чтение
Курс Машинное обучение от Яндекса.