Упрощенная математика за нейронными сетями

Опубликовано: 11/01/2021 Время на прочтение: 9 минут

Изображение Алины Грубняк на Unsplash

Понимание функций персептрона и активации

Персептрон (или нейрон) — фундаментальная частица нейронных сетей. Он работает по принципу порогового значения. Пусть f (x) — функция суммирования с порогом 40.

Рис. 1. Запуск нейрона (изображение автора)

Рис. 2. Персептрон (изображение автора)

Сигмовидная

Сигмоид-это широко используемая функция активации, которая помогает в захвате нелинейных отношений.

Рис. 3. Сигмовидная кривая (источник)

Танха (Тангенс Гиперболический)

Это более или менее похоже на сигмовидную функцию, но tanh колеблется от -1 до 1, что делает его подходящим для задач классификации. Она нелинейна.

Рис. 4. кривая Танха (изображение автора)

Релуи (Выпрямленного Линейного Блока)

Это наиболее часто используемая функция активации в глубоком обучении, поскольку она менее сложна, чем другие функции активации. f (x) возвращает либо 0, либо x.

Рис. 5. Кривая Релу (изображение автора)

NeuralNet

Чтобы понять черный ящик нейронной сети, Давайте рассмотрим базовую структуру с 3 слоями: входным слоем, плотным / скрытым слоем (связанным с обеих сторон нейронов) и выходным слоем.

Рис. 6. Простая нейронная сеть (изображение автора)

Рис. 7. Расчет суммарных параметров нейронной сети (изображение автора)

ОБНОВЛЕНИЕ СЕТИ

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

Функция Затрат

Простая нейронная сеть предсказывает значение, основанное на линейной зависимости, ŷ = wx + b, где ŷ (предсказанное) — аппроксимация y (фактическое). Теперь может быть несколько линейных линий, подходящих ŷ. Чтобы выбрать наиболее подходящую линию, мы определяем функцию затрат.

(Изображение автора)

Метод Градиентного Спуска

Это алгоритм, который помогает найти наилучшие значения для θ₀ и θ₁ путем минимизации функции затрат. Я знаю, что C= (1 / 2n) (θ₀ + xθ₁ — y) 2. Для аналитического решения возьмем частичное дифференцирование C по переменным (θ‘ s), известным как градиенты.

Рис. 8. Кривая градиентного спуска (изображение автора)

На стороне записки

Следуя этому, мы можем столкнуться с двумя потенциальными проблемами: 1. при обновлении значений θ вы можете застрять на локальных минимумах. Возможным решением является использование стохастического градиентного спуска (SGD) с импульсом, который помогает пересечь локальные минимумы; и 2. Если η слишком мал, то для сходимости потребуется слишком много времени. В качестве альтернативы, если η слишком велик (или даже умеренно высок), он будет продолжать колебаться вокруг минимумов и никогда не сойдется. Следовательно, мы не можем использовать одну и ту же скорость обучения для всех параметров. Чтобы справиться с этим, мы можем запланировать процедуру, которая регулирует значение η По мере того, как градиент движется к минимумам (например, косинусное затухание).

Обратное Распространение

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

Рис. 9. график вычислений (изображение автора)



прокрутка вверх