Применение нейронных сетей для создания прогнозов

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

Этот график представляет входную переменную 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. Это позволяет модели оставаться «управляемой», предотвращая появление больших чисел в скрытых узлах.

Допустим, мы хотим создать модель для следующих данных:

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

Если мы объединим несколько сигмовидных функций, мы сможем создать реалистичную модель. Объединив эти три сигмоиды:

Мы создаем следующую функцию:

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

Теперь вы понимаете основы нейронных сетей.