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

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

DL vs ML

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

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

Что такое нейронная сеть?

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

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

Есть несколько ключевых компонентов нейронной сети:

  1. Входной слой: Входной слой — это место, где данные передаются в нейронную сеть. Каждый нейрон во входном слое представляет функцию или атрибут анализируемых данных.
  2. Скрытые слои: на скрытых слоях происходит большая часть обработки. Каждый нейрон в скрытом слое получает входные данные от нейронов предыдущего слоя, выполняет вычисления на основе этих входных данных и отправляет выходные данные нейронам следующего слоя. Нейронная сеть может иметь несколько скрытых слоев, каждый из которых содержит разное количество нейронов.
  3. Выходной слой. На выходном слое делаются окончательные прогнозы или классификации. Каждый нейрон в выходном слое представляет собой возможный выход или класс, а нейрон с наивысшим уровнем активации является прогнозируемым выходом.
  4. Функция активации: Функция активации — это математическая функция, которая применяется к входу каждого нейрона для определения его выхода. Функция активации добавляет нелинейность нейронной сети, позволяя ей изучать более сложные закономерности и взаимосвязи в данных.
  5. Вес: вес представляет силу связи между двумя нейронами. Во время обучения веса корректируются, чтобы свести к минимуму ошибку между прогнозируемым результатом и фактическим результатом.

Входной слой

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

Количество нейронов во входном слое определяется размерностью входных данных. Например, если входными данными является изображение размером 28x28 пикселей, то входной слой будет иметь 784 нейрона (28x28=784). Если входные данные представляют собой предложение из 10 слов, то входной слой будет иметь 10 нейронов.

Скрытые слои

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

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

Выходной слой

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

Например, если нейронная сеть используется для бинарной классификации, выходной слой обычно будет иметь один нейрон с сигмовидной функцией активации, которая выдает значение от 0 до 1, указывающее вероятность принадлежности к положительному классу. Если сеть используется для многоклассовой классификации, выходной слой будет иметь несколько нейронов, каждый из которых соответствует своему классу, а функция активации SoftMax используется для получения вероятностей принадлежности к каждому классу.

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

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

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

Масса

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

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

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

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