www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Руководство для начинающих по нейронным сетям: часть первая

Дата публикации Mar 22, 2017


Люди - невероятные машины для распознавания образов. Наш мозг обрабатывает «входные данные» из мира, классифицирует их (это паук; это мороженое), а затем генерирует «результат» (убегайте от паука; попробуйте мороженое). И мы делаем это автоматически и быстро, практически без усилий. Это та самая система, котораячувствчто кто-то злится на нас или невольно читает знак остановки, когда мы проезжаем мимо него. Психологи называют этот способ мышления «Системой 1» (придуманный Китом Становичем и Ричардом Уэстом), и он включает в себя врожденные навыки - такие как восприятие и страх - которые мы разделяем с другими животными. (Существует также «Система 2», и если вы хотите узнать больше об этом, проверьтеМышление, быстро и медленноДэниел Канеман).

Так какое это имеет отношение к нейронным сетям? Я попаду туда через секунду.

Вы легко распознали цифры выше, верно? Ты толькозналпервая цифра 5; тебе не нужно было об этом думать. Конечно, ваш мозг не сказал: «Ах, это похоже на две ортогональные линии, соединенные с повернутым, необоснованным полукругом, так что это 5.». Разработка правил распознавания рукописной цифры неоправданно сложна, поэтому исторически компьютерным программам было довольно сложно их распознать.

О, Эппл Ньютон. (Источник: Гари Трюдо для Дунсбери)

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

Перцептрон

Перцептроны былиразработаныЕще в 1950–60-х годах ученый Фрэнк Розенблатт, вдохновленный более ранними работами Уоррена МакКаллока и Уолтера Питтса. Хотя сегодня мы используем другие модели искусственных нейронов, они следуют общим принципам, установленным персептроном.

Так что же они вообще? Перцептрон принимает несколько двоичных входов:х1, х2,…,и производит один двоичный вывод:

Персептрон с 3 входами. (Источник:Майкл Нильсен)

Давайте лучше разберемся в этом с примером. Скажем, вы ездите на велосипеде на работу. У вас есть два фактора, чтобы принять решение пойти на работу: погода не должна быть плохой, и это должен быть будний день. Погода не такая уж и большая, но работать по выходным - нет, нет. Входные данные должны быть двоичными, поэтому давайте предложим условия как вопросы типа да или нет. Погода хорошая? 1 для да, 0 для нет. Это будний день? 1 да, 0 нет.

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

Для нашего примера, давайте намеренно установим подходящие веса 2 для погоды и 6 для дня недели. Теперь, как мы рассчитаем выход? Мы просто умножаем ввод на соответствующий вес и суммируем все значения, которые мы получаем для всех входов. Например, если это хороший, солнечный (1) день недели (1), мы сделаем следующий расчет:

Этот расчет известен каклинейная комбинация, Теперь, что означает 8? Сначала нам нужно определитьпороговое значение.Выход нейронной сети, 0 или 1 (оставаться дома или идти на работу), определяется, если значение линейной комбинации больше порогового значения. Допустим, пороговое значение равно 5, что означает, что если в результате вычисления вы получите число меньше 5, вы можете остаться дома, но если оно равно или больше 5, то вы должны идти на работу.

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

(Источник: Panagiotis Peikidis. Основано наXKCD комикс "Компиляция")

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

Следующий:

Руководство для начинающих по нейронным сетям: часть вторая

# 2 Смещение, функции активации, скрытые слои и построение более продвинутой архитектуры нейронной сети с прямой связью.

medium.com


Ресурсы

  1. Использование нейронных сетей для распознавания рукописных цифрМайкл Нильсен (более подробные объяснения на том же уровне).
  2. Книга глубокого обученияЙен Гудфеллоу, Йошуа Бенжио и Аарон Курвиль (более продвинутый и технический, предполагает знание математики на уровне старшекурсника).
  3. Udacity Deep Learning Nanodegree Foundation(17-недельный проектный курс; сложность где-то в середине 1. и 2.)
  4. Игровая площадка нейросети TensorFlow(прикольная интерактивная визуализация нейронных сетей в действии)

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map