От регрессии к нейронным сетям (From regression to neural networks)

Автор: | 14.06.2021

Введение 
Модель нейрона
Функции активации
Архитектуры НС
Обучение НС
Проблемы с оптимизацией функции потерь
Полезные ссылки

Введение

Известна функциональная зависимость между температурой по Цельсию ()и Фаренгейту ():

F = 1.8* C + 32.

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

Эту же задачу можно решить с помощью нейронной сети.

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

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

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

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

Нейронная сеть определяется 4-я сущностями:

  • модель нейрона;
  • функция активации;
  • архитектура сети;
  • алгоритм обучения.

Модель нейрона

Что делает искусственный нейрон? Простыми словами, он считает взвешенную сумму на своих входах, добавляет смещение (bias) и решает, следует это значение исключать или использовать дальше.

Нейрон имеет n входов xi с  весами wi и единичный вход (смещение) с весом b. Выход Y рассчитывается через функцию активации от суммы воздействия все входов.

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

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

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

Без функции активации значение выхода  может быть в диапазоне  -∞ <Y <+∞. В этом случае нейронная сеть  имеет ограниченные возможности обучения – только в рамках линейной регрессии.

Нейронные сети с нелинейной функцией активации имеют возможность рассчитывать и изучать любую функцию.

Ступенчатая функция возвращает только результат 0 или 1 (бинарный классификатор).

Линейная функция позволяет получать спектр значений в диапазоне  -∞ <Y <+∞, а не только бинарный ответ. Недостатки:

  • Теряется возможность создавать архитектуру из слоев, поскольку нейронная сеть все равно будет подобна одному слою с линейной функцией активации (комбинация линейных функций линейным образом — другая линейная функция).
  • Нефиксированный диапазон значений функции -∞ <Y <+∞
  • Производная Y=cx по x равна с (константа). Это означает, что градиент никак не связан с x.

Наиболее используемые функции активации:

ReLu возвращает значение х, если х положительно, и 0 в противном случае.
Сигмоида — нелинейная по своей природе, имеет фиксированный диапазон значений функции (0 < Y <1), градиент при приближении к концам сигмоиды уменьшается.
Гиперболический тангенс  имеет градиент больше, чем у сигмоиды (производная круче).

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

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

Архитектуры НС

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

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

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

Общая классификация:

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

По архитектуре связей ИНС могут быть сгруппированы в два класса:

  • сети прямого распространения, в которых графы не имеют петель;
  • сети с обратными связями (рекуррентные сети).

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

Примеры:

  • Многослойный персептрон  представляет собой многослойную сеть с наличием или без обратных связей, обучаемую с учителем для решения задач прогнозирования.
  • RBF сеть использует радиально-симметричные функции в качестве функции активации.  Эта  сеть двухслойная, без обратных связей. Обычно применяется в задачах классификации и прогнозирования 
  • Сеть Кохонена — однослойная нейронная сеть без обратных связей, обучаемая без учителя, используется для решения задач классификации.
  • Сеть Хопфилда — простейшая ассоциативная многослойная сеть с обратными связями, обучаемая без учителя.

Подробнее см. Шпаргалка по разновидностям нейронных сетей.

Обучение НС

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

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

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

Проблемы с оптимизацией функции потерь

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

Все алгоритмы в машинном обучении должны максимизировать или минимизировать функцию, которая называется «целевой функцией».  Обычно мы называем тип минимизированной функции «функцией потерь».  Среднеквадратичная ошибка (MSE) — наиболее часто используемая функция потерь регрессии. Метод расчета — найти сумму квадратов расстояний между прогнозируемым значением и истинным значением.

Математически процесс обучения можно описать следующим образом. В процессе функционирования нейронная сеть формирует выходной сигнал Y, реализуя некоторую функцию Y = G(X). Если архитектура сети задана, то вид функции G определяется значениями синаптических весов нейронов сети. Обучение состоит в поиске (синтезе) функции G, близкой к F в смысле некоторой функции ошибки E.

Если выбрано множество обучающих примеров – пар (XN, YN) (где k = 1, 2, …, N) и способ вычисления функции ошибки E, то обучение нейронной сети превращается в задачу многомерной оптимизации, имеющую очень большую размерность.  При этом, поскольку функция E может иметь произвольный вид, обучение в общем случае – многоэкстремальная невыпуклая задача оптимизации.

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

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

Градиентный спуск остается самым популярным методом поиска оптимума, хотя существует множество альтернативных подходов.

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

Проблемы, связанные с этим:

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

Существуют методы, которые смягчают потенциально отрицательные последствия этих проблем.

 

Полезные ссылки: