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

НЕЙРОН

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

Z - это узел, который принимает смещение b и X в качестве входных данных, эти X имеют определенные веса w, умноженные на них.

Это похоже на уравнение прямой y = mX + c и дает линейный Z.

Это Z затем пропускается через нелинейную функцию активации g и выдает ŷ

Общие функции активации: Sigmoid, Tanh, SoftMax (Multiclass), reLU и leaky reLU.

КОНЦЕПЦИЯ

Модель нейронной сети состоит из нескольких таких перцептронов, уложенных в слои с разными узлами и различными функциями активации на каждом уровне. Уникальность модели заключается в ее весе и смещении. Эти веса взаимодействуют с нашими входными X и определяют точность модели.

Основной принцип заключается в том, что мы начинаем со случайных весов, а затем обучаем модель, давая ей входные данные и правильный ожидаемый результат. Этот метод называется контролируемым обучением. Убыток рассчитывается исходя из окончательного результата y. Модель рассчитывает эти потери, которые являются мерой того, насколько ошибочна модель. Цель модели - минимизировать эти потери на каждой итерации обучения.

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

Для большей ясности предположим, что веса модели нанесены на оси x и y, а расчетные потери - на оси Z.

Поскольку ось Z - это потеря, высокие точки имеют большие потери, поэтому наша цель - найти самую низкую точку на этой карте.

ГРАДИЕНТНЫЙ СПУСК

Этот метод используется для достижения точки минимальных потерь.

Скажем, присвоенные случайным образом веса - это координаты мяча.

Затем он проверяет наклон

и указывает, в какую сторону идет вверх (больший убыток), а затем делает шаг в противоположном направлении.

Затем веса обновляются

Это повторяется до тех пор, пока мяч не достигнет схождения (самая низкая точка на карте).

Альфа - это скорость обучения, которая сообщает модели, насколько большой или малый шаг нужно сделать.

ОБРАТНОЕ РАСПРОСТРАНЕНИЕ

Чтобы получить упомянутый выше наклон, нам нужно перейти от потери к переменной

Значение dL / dw - это то, как небольшое изменение веса влияет на потерю.

Мы достигаем этого с помощью правила цепочки

Итак, для диаграммы выше

ОПТИМИЗАЦИЯ

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

Ткань, как карта веса в реальной жизни, очень сложна и больше похожа на чрезвычайно каменистую местность.

Я пробовал воссоздать его, но на самом деле он в 100 раз сложнее, с множеством локальных максимумов и минимумов.

Слишком низкая скорость обучения может привести к тому, что модель застрянет в локальных минимумах и подумает, что она сходится.

Слишком большая скорость обучения может означать полное отсутствие минимумов.

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

Некоторые из наиболее часто используемых алгоритмов скорости обучения - это SGD (простой градиентный спуск), Adam, Adadelta, Adagrad и RMSprop, с которыми я знаком. Остальные, кроме SGD, адаптивны.

ФИТИНГ

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

Есть две проблемы с моделями, связанные с подгонкой: недостаточная подгонка и переобучение.

Диаграмма хорошо визуализирует проблему.

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

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

Значения потерь для обучения всегда будут меньше, чем для тестирования.

В процессе обучения наступает момент, когда без обмана потери минимальны. Справа от черной линии потери в конечном итоге достигают нуля, поскольку модель полностью запоминает все данные. Любая точка слева от черной линии будет означать потерю истинного потенциала модели.

Ранняя остановка - это метод, который определяет, когда следует прекратить обучение модели.

Приложения

Почему это так популярно. Сейчас, как никогда ранее, наука о данных процветает и находится на подъеме; все больше и больше людей хотят изучать и заниматься наукой о данных. Применение техник очень нравится людям. Эта статья проливает свет на искусственные нейронные сети (ИНС), которые могут извлекать массу функций и иметь обучаемые параметры длиной до 6 и 7 цифр. Приложения ИНС включают

· Финансовое прогнозирование

· Управление рисками

· Прогноз продаж

· компьютерное зрение,

· Распознавание образов.

Существуют и другие формы нейронных сетей, а именно сверточная нейронная сеть (CNN) и рекуррентная нейронная сеть (RNN), которые имеют захватывающие области применения глубокого обучения, такие как

· Генерация музыки

· Классификация настроений

· Машинный перевод

· Прогнозирование траектории (беспилотные автомобили)

PS: Все изображения и анимация были сделаны мной.