Функции стоимости: CROSS_ENTROPY, MSE, BINARY

Функции стоимости (cost functions) являются фундаментальным элементом обучения нейронных сетей. Они определяют меру ошибки сети, оценивая расхождение между предсказанными значениями и реальными целевыми значениями. В библиотеке Synaptic реализованы несколько стандартных функций стоимости: CROSS_ENTROPY, MSE, BINARY. Каждая из них предназначена для конкретных типов задач и имеет свои особенности в вычислении и поведении при обучении.


CROSS_ENTROPY

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

Определение и формула: Для бинарной классификации с одним выходным нейроном:

[ C = - _{i=1}^{N} ]

  • (y_i) — реальное значение (0 или 1)
  • (_i) — предсказанная сетью вероятность
    1. — количество образцов

Для многоклассовой классификации используется расширение формулы через сумму по классам:

[ C = - {i=1}^{N} {k=1}^{K} y_{ik} (_{ik})]

Особенности:

  • Чувствительна к уверенности сети в предсказаниях: неправильные уверенные предсказания штрафуются сильнее.
  • Обеспечивает стабильное и быстрое сходимость при использовании softmax на выходном слое.
  • Рекомендуется для классификационных задач с вероятностным выходом.

Пример использования в Synaptic:

const { Network, Trainer } = require('synaptic');

let myNetwork = new Network();
let trainer = new Trainer(myNetwork);

trainer.train(trainingSet, {
    rate: 0.1,
    iterations: 20000,
    cost: Trainer.cost.CROSS_ENTROPY,
    log: 1000
});

MSE (Mean Squared Error)

MSE (среднеквадратичная ошибка) широко применяется для регрессионных задач и задач предсказания численных значений.

Определение и формула:

[ MSE = _{i=1}^{N} (y_i - _i)^2]

  • (y_i) — истинное значение
  • (_i) — предсказанное значение
    1. — количество примеров

Особенности:

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

Пример использования в Synaptic:

trainer.train(trainingSet, {
    rate: 0.05,
    iterations: 15000,
    cost: Trainer.cost.MSE,
    log: 500
});

BINARY

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

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

[ C = _{i=1}^{N} ((_i) y_i)]

  • (()) — индикаторная функция, возвращающая 1 при несовпадении и 0 при совпадении.

Особенности:

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

Пример использования в Synaptic:

trainer.train(trainingSet, {
    rate: 0.1,
    iterations: 10000,
    cost: Trainer.cost.BINARY,
    log: 100
});

Выбор функции стоимости

  • CROSS_ENTROPY: оптимальна для вероятностной классификации, помогает сети быстрее обучаться при softmax-выходе.
  • MSE: применяется для регрессии, численных предсказаний, где важна среднеквадратичная ошибка.
  • BINARY: подходит для чисто бинарной классификации без учета вероятности, оценивает только правильность предсказания.

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