Выходы нейросети и функции потерь
В этом разделе обсудим, что будет представлять собой выходной слой (output layer) нейросети для различных задач регрессии и классификации.
Истинный отклик будем обозначать , который по вектору признаков предсказывается нейросетевым преобразованием , зависящим от вектора весов .
Одномерная регрессия
В одномерной регрессии требуется предсказать одно число (скаляр) . Соответственно у нейросети будет один нейрон на выходном слое.
Если значение прогноза может быть любым, то на выходном слое используется тождественная активация.
Если предсказывается неотрицательное значение, то используется активация ReLU.
Если предсказывается положительное значение, то используется активация SoftPlus.
При прогнозе, который не должен принимать значения вне отрезка используется активация tangh или hard-tangh.
Что нужно дополнительно сделать если целевая величина ?
Нужно перемасштабировать выход нейросети из отрезка :
В качестве функции потерь, по которой мы будем настраивать веса, можно использовать любую дифференцируемую функцию, поскольку нейросети настраиваются градиентными методами оптимизациями, которые вычисляют градиент прогностической функции по весам .
Например, можно взять квадрат ошибки:
или модуль ошибки:
Для набора объектов минимизируется среднее значение этих функций потерь по объектам. Среднее по квадратам отклонений называется mean squared error или MSE -оценкой. Среднее по модулям отклонений называется mean absolute error или MAE-оценкой.
Векторная регрессия
Если требуется решить задачу векторной регрессии, т.е. предсказывать не одно вещественное число, а сразу вектор , то нужно задать архитектуру сети так, чтобы у неё было выходов.
Чем это лучше, чем делать K независимых прогнозов различными нейросетями для вектора из K откликов?
Если прогнозируемые величины связаны, например, когда предсказываем цены набора акций на следующий день (которые зависят от общих макроэкономических показателей), то эффективнее прогнозировать их одной нейросетью с K выходами:
-
на этапе обучения это приведёт к переиспользованию промежуточных признаков (активаций внутренних слоёв), настроенных для одного отклика другими откликами и наоборот, в результате чего промежуточные признаки настроятся лучше, и модель будет работать точнее;
-
кроме того, это вычислительно эффективнее, поскольку не придётся перевычислять всю последовательность промежуточных признаков много раз для каждой отдельной модели.
Аналогично одномерной регрессии, для настройки весов можно использовать любую дифференцируемую функцию, например квадрат нормы расхождения:
либо норму расхождения между прогнозом и фактическим значением:
Для набора объектов также минимизируется среднее значение этих функций потерь по объектам.
Бинарная классификация
Для бинарной классификации выходной слой содержит один выход с сигмоидной функцией активации, которая принимает значения на интервале , а её выход интерпретируется как вероятность положительного класса:
Вероятность отрицательного класса считается как
Настройка архитектуры производится методом максимального правдоподобия (максимизация вероятности пронаблюдать фактические отклики в обучающей выборке):
где - число объектов выборки, а вероятность всех откликов факторизуется (представляется в виде произведения вероятностей) при предположении, что наблюдения отдельных объектов независимы.
Максимизация (1) численно неудобна (приходится перемножать много малых чисел, за счёт чего быстро сходимся к машинному нулю), поэтому на практике максимизируют логарифм правдоподобия:
Поскольку в машинном и глубоком обучении принято минимизировать функцию потерь, то в терминах функции потерь (2) записывается как
при этом чаще минимизируют не сумму, а среднее минус логарифмов вероятностей.
Почему неважно, минимизировать сумму или среднее?
Если интересует оптимальное значение весов , то минимизируемый критерий L(w) можно домножать на любую положительную константу (в частности, ) - всё равно минимум будет достигаться в одн ой и той же точке .
Более того, к минимизируемому критерию можно применять любую монотонно возрастающую функцию , чем мы и пользовались, когда заменили максимизацию вероятностей в (1) максимизацией логарифма вероятностей в (2). Это не окажет влияние на оптимальные веса , хотя, конечно, повлияет на само значение критерия. Но в настройке нейросетей нас интересует не сам критерий, а только веса, которые его минимизируют.
Тогда функция потерь для единственного объекта будет так называемой кросс-энтропийной функцией потерь (cross-entropy loss) и запишется как
где - индикатор условия:
Допускается трактовать выход нейросети и как ненормированный рейтинг класса, а не его вероятность. В этом случае на выходном слое действует тождественная активация, а сама нейросеть настраивается, используя одну из функций потерь, штрафующих неправильный рейтинг, например функцию потерь hinge:
Многоклассовая классификация
В многоклассовой классификации отклик , т.е. принимает одно из дискретных значений. В этом случае на выходном слое нейросети создают выходов , к которым применяют SoftMax-преобразование, с которым мы уже встречались в логистической регрессии, для того, чтобы получить вероятности классов:
при этом параметр температуры SoftMax-преобразования полагают равным единице.
Почему можно брать ?
Параметр отвечает за общий масштаб значений , которые и так автоматически настраивается, причём независимо для каждого рейтинга за счёт выбора весов нейросети с последнего слоя.
От какого вида преобразований SoftMax-ве роятности не меняются?
Формулы расчёта вероятностей через SoftMax инварианты к сдвигу на общую функцию :
Избавиться от этой неоднозначности можно введя регуляризатор, штрафующий абсолютные величины .
Как только получены вероятности классов, производить настройку нейросети можно тем же методом максимального правдоподобия, что и в случае бинарной классификации. Функция потерь для отдельного объекта также называется кросс-энтропийной функцией потерь и будет вычисляться по формуле:
Как и в бинарном случае, допускается трактовать выход нейросети как ненормированный рейтинг класса, а не его вероятность. В этом случае на выходном слое действуют тождественные активации, но необходимо придумать обобщение функции потерь на многоклассовый случай.
Примеры обобщения для функции потерь hinge:
где - гиперпараметр, а - оператор положительной срезки.