Применение нейронных сетей для создания прогнозов
Сегодня мы обсудим, как выглядят нейронные сети. Нейронные сети, также называемые глубоким обучением, — это хлеб с маслом для прогнозирования. Они выглядят как сети и поначалу могут немного сбивать с толку, поэтому давайте начнем с множественной регрессии.
Этот график представляет входную переменную x слева, каждый x[i] умножается на θ[i], а результирующий выход y справа. Это создает плоскость в пространстве с постоянным наклоном в любом конкретном направлении.
Этот тип модели способен понимать простые закономерности, но мы можем добиться большего.
Давайте возьмем модель множественной регрессии и добавим несколько обновлений:
На приведенной выше диаграмме представлено уравнение, которое принимает значения x[0] и x[1], а затем возвращает результат y. Это уравнение будет выглядеть как поверхность слева.
Вот пошаговый процесс расчета уравнения нейронной сети:
Левая колонка превращается в среднюю колонку. Для наглядности соединения имеют цветовую маркировку. Этот средний столбец называется скрытым слоем. Каждый узел в скрытом слое происходит от этих цветных весов. Эти веса написаны в правом нижнем углу и представлены как θ.
Теперь давайте подробнее рассмотрим скрытый слой. Каждый пузырь h[i] или узел создается из предыдущего слоя и функции активации.
Первый узел: h[0] = активация (1*Red1 + x[0]*Blue1 + x[1]*Yellow1)
Это похоже на множественную регрессию с одним отличием: функцией активации. Их много, но все они имеют одну ключевую особенность. Они нелинейны. Вот сигмоид, функция активации:
Эта функция принимает любое число от отрицательной бесконечности до положительной бесконечности и возвращает число от нуля до единицы.
Этот тип функции позволяет нам создавать кривые в пространстве. Эти функции «гибкие». Это позволяет нам соответствовать более сложным данным.
В любом случае, для создания каждого h[i] в скрытом слое мы будем:
Создайте плоскость, используя строку в нижнем правом поле переменных θ. Для h[i] точка пересечения (0,0,z) плоскости исходит из R[i]. Например, h[0] равно (0,0,R1). Наклон в направлении x[0] равен B1, а наклон в направлении x[1] равен Y1.
Как только мы «активируем» функцию, она будет выглядеть как кривая слева. Где z=0 на плоскости, z=1/2 на активированном уравнении. Узлы скрытого слоя никогда не бывают ниже нуля и выше 1 при использовании сигмовидной функции.
Этот узел h[0] «активирован» или ближе к 1, когда x[0] и x[1] большие.
Эта «гибкая» функция выгодна по нескольким причинам. Во-первых, изгиб позволяет каждой функции моделировать более сложные данные. Во-вторых, эти функции можно комбинировать для создания еще более сложных функций. Наконец, выходные данные сигмовидной функции никогда не бывают меньше 0 и больше 1. Это позволяет модели оставаться «управляемой», предотвращая появление больших чисел в скрытых узлах.
Допустим, мы хотим создать модель для следующих данных:
Как бы вы ни старались, самолет никогда не будет соответствовать этим данным. Однако нейронные сети гораздо мощнее самолета. Нейронная сеть способна прочитать этот паттерн и разработать модель.
Если мы объединим несколько сигмовидных функций, мы сможем создать реалистичную модель. Объединив эти три сигмоиды:
Мы создаем следующую функцию:
Каждый узел скрытого слоя представляет один компонент конечного вывода. Наличие трех узлов указывает на три раздела в конечном выводе. По мере того, как мы пытаемся улучшить модель, каждый θ корректируется в соответствии с функцией стоимости. Модель медленно сдвигается, пока не совпадет с набором данных.
Теперь вы понимаете основы нейронных сетей.