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

Для начала, есть несколько вариантов нейронных сетей (NN), основные из которых следующие:

  • CNN: сверточные нейронные сети - особый тип искусственной нейронной сети (ИНС), в которой используется алгоритм модуля машинного обучения под названием перцептроны, позволяющий осуществлять контролируемое обучение и анализировать данные. . CNN используются для обработки изображений и обработки естественного языка.

Погодите, помедленнее, что такое снова перцептрон? По сути, он принимает несколько двоичных входов и производит единственный двоичный выход.

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

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

С алгебраической точки зрения это будет:

И вот насколько просты перцептроны! Теперь вернемся к вариантам ИНС:

  • RNN: рекуррентные нейронные сети - класс ANN, в котором между элементами графа формируются соединения для создания последовательности.

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

  • Автоэнкодеры: неконтролируемый алгоритм машинного обучения, который обучен копировать свои входные данные в свои выходные.
  • Глубокое обучение: метод машинного обучения, который позволяет ИИ прогнозировать результаты на основе заданного набора входных данных.

Чтобы понять разнообразие этих нейронных сетей, давайте начнем с понимания основ. Что такое нейрон?

Нейроны

Основа нейронной сети - нейрон (понятно). НС были вдохновлены структурой нейронов в человеческом мозгу, строительными блоками которой являются нейроны. Функциональность нейронной сети аналогична нейрону человека. По сути, он принимает какой-то ввод и выпускает какой-то вывод.

На сегодняшний день были опробованы 4 основные функции активации: Step, Sigmoid, Tanh и ReLU. Мы рассмотрим это позже в статье.

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

Функции активации

Для начала рассмотрим пошаговую функцию:

Здесь, если выход будет один, если x равен или больше нуля, и 0, если x меньше нуля. Шаговая функция Хевисайда - одна из наиболее распространенных функций активации в нейронной сети. Функция производит двоичный вывод.

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

Чтобы решить эту проблему, были введены сигмовидные функции.

Сигмовидная функция

Для начала вот как они выглядят:

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

  1. Он способен понимать нелинейные данные, что важно для точных моделей и изображений.
  2. Is полностью дифференцируем и может использоваться с разными подходами.
  3. Предположение о зависимой переменной при следовании сигмовидной функции использует гауссовское распределение для независимой переменной.

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

Однако сигмовидная функция тоже не идеальна. Проблема с исчезновением . градиенты.

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

Функция Тань

Функция tanh (z) по сути является измененной версией сигмовидной функции, но выходной диапазон составляет [-1,1] вместо [0,1] [1]. Вот как это выглядит:

Мы используем функцию tanh в некоторых местах вместо сигмовидной функции, потому что, поскольку данные сосредоточены вокруг 0, производные выше.

Чем выше градиент, тем выше скорость обучения.

Но проблема с исчезающим градиентом все еще возникает в функции Тань. Чтобы справиться с этим, была разработана функция ReLU.

Функция выпрямленной линейной единицы (ReLU)

ReLU - это наиболее часто используемая функция активации в моделях глубокого обучения (DL). Если получен какой-либо отрицательный ввод, функция переходит в 0, но для любого положительного значения она возвращает это значение обратно. Итак, это можно записать как f (x) = max (0, x)

Чтобы понять это, вот как это выглядит:

Leaky ReLU - это разновидность функции ReLU, одна из самых известных. Он такой же, как оригинал для положительных чисел, но вместо 0 для отрицательных значений имеет постоянный наклон (менее 1)

По сравнению с сигмоидной и Tanh-функциями, ReLU работает лучше всех.

Теперь вернемся к нейронным сетям.

На этом этапе мы рассмотрели нейроны и функции активации, которые являются строительными блоками любой нейронной сети.

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

Вот для примера небольшая нейронная сеть.

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

Нейронная сеть с более чем одним скрытым слоем считается глубокой нейронной сетью.

Когда мы начали эту статью, мы говорили о CNN и RNN. Вернемся к этому на мгновение.

Сверточная нейронная сеть (CNN):

CNN - это один из вариантов нейронной сети, о которой мы говорили ранее. Название происходит от типа скрытого слоя, из которого он состоит.

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

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

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

В математике это определяется следующим образом:

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

Теперь давайте посмотрим на объединение. Его функция - уменьшить пространственный размер представления, чтобы уменьшить количество параметров. Работает автономно.

Существует два типа объединения , Максимальное объединение и M в объединении. Максимальный пул основан на максимальном значении, а минимальный пул основан на минимальном значении.

Теперь давайте посмотрим на рекуррентные нейронные сети (RNN):

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

Однако в большинстве случаев это неверно. Большинство входных данных или данных имеют тенденцию быть связанными или последовательными. Чтобы понять это, вот как выглядит RNN:

RNN супер успешны при использовании в НЛП, потому что они способны запоминать прошлые входные данные и использовать их для будущих выходов.

Думаю, на данный момент это хорошая основа.

Какие основные выводы?

  • Нейронная сеть разработана и вдохновлена ​​человеческим мозгом
  • Он принимает входные данные, пропускает их через множество слоев, где проходит через различные фильтры и выдает результат.
  • Есть множество функций активации.
  • CNN не могут запомнить прошлые вводы
  • RNN могут запоминать прошлые входы и могут использовать их для будущих выходов.

Большое спасибо за чтение этой статьи! Обязательно хлопайте в ладоши и подписывайтесь на меня на этом носителе!

Если у вас есть вопросы, напишите мне в LinkedIn.