DL

Полносвязная нейронная сеть. Общие принципы работы.

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

Общая структура

Основные идеи работы нейросетей удобно разбирать на примере персептрона Ф. Розенблатта.

Сеть включает вектор входных значений (x1, x2, x3 и т.д.), слой нейронов (помечены кружками, переходящими в прямоугольники) и выходной слой (y).

Вектор входных значений

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

Что такое bias

Это дополнительный элемент входного вектора, обычной равный единице. Он нужен для обеспечения гибкости работы нейросети. По сути, этот элемент обеспечивает смещение разделяющей прямой по оси y (см. уравнение прямой y = k*x + b, здесь b является аналогом bias в нейросети).

Веса

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

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

Нейроны и слои

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

Нейроны объединяются в слои (обычно много нейронов – 32, 64 и т.д.). Чем больше нейронов, тем сложнее модель и тем более сложные закономерности она может выявлять. Но слишком большое число нейронов может привести к переобучению. Поэтому существуют эмпирические правила подбора их числа в слое.

Слоев может быть два и более, в зависимости от задачи.

Каждый слой может отличаться от других по числу нейронов. Для разных задач это число отличается.

Функция ошибки

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

Как это работает

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

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

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

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

Как обучается нейросеть

Алгоритм backpropagation

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

Вставить формулу как
Блок
Строка
Дополнительные настройки
Цвет формулы
Цвет текста
#333333
Используйте LaTeX для набора формулы
Предпросмотр
\({}\)
Формула не набрана
Вставить