Перекрестная потеря энтропии и использование в машинном обучении | GPTMain News

Введение

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

Перекрестная потеря энтропии является фундаментальной концепцией машинного обучения, особенно в области глубокого обучения. В любой задаче классификации, где даны данные, и модель должна правильно пометить эти данные из ранее помеченных примеров, можно применить кросс-энтропийную потерю. Это тип функции потерь, используемый для измерения разницы между прогнозируемым распределением вероятностей и истинным распределением вероятностей целевой переменной. В этом посте мы рассмотрим теорию кросс-энтропийной потери, ее различные формы (бинарную кросс-энтропию и мультиклассовую кросс-энтропию) и способы ее применения в популярных средах глубокого обучения, таких как PyTorch и TensorFlow.

Читайте также: Что такое сиамские сети? Введение

Функции потерь

Изображение с https://optimal.uva.nl/project-plan/project-plan.html?cb. Визуализация траектории градиентного спуска для невыпуклой функции.

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

Что такое перекрестная энтропийная потеря?

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

Теория перекрестной потери энтропии

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

Функция Софтмакс

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

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

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

Читайте также: Как использовать перекрестную проверку для уменьшения переобучения

кросс-энтропия

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

Двоичная кросс-энтропия

Бинарная кросс-энтропия — это особая форма кросс-энтропии, используемая в задачах бинарной классификации, где целевая переменная может принимать только два значения (например, истина/ложь). В этом случае бинарная перекрестная энтропия используется для измерения несходства между предсказанными вероятностями и истинными бинарными метками. Убыток — это ошибка в сделке в диапазоне от 0 до 1.

Формула бинарной кросс-энтропии (BCE)

Формула бинарной кросс-энтропии (BCE) определяется как:

BCE = -(y * log(y’) + (1 – y) * log(1 – y’))

где y — истинная метка, а y’ — прогнозируемая вероятность.

Мультиклассовая кросс-энтропия/категориальная кросс-энтропия

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

Мультиклассовая формула кросс-энтропии

Формула кросс-энтропии для нескольких классов определяется как:

C = -(1/N) * Σ_i (y_i * log (y’_i))

где N — количество выборок, y_i — истинная метка для i-й выборки, а y’_i — прогнозируемая вероятность для i-й выборки.

Как применять кросс-энтропию?

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

ПиТорч

В PyTorch кросс-энтропийные потери можно рассчитать с помощью torch.nn.CrossEntropyLoss функция.

Вот пример того, как использовать эту функцию в задаче бинарной классификации:

import torch
import torch.nn as nn

# Define your model
model = nn.Sequential(nn.Linear(10, 20), nn.ReLU(), nn.Linear(20, 1), nn.Sigmoid())

# Define your loss function
criterion = nn.BCELoss()

# Define your inputs and labels
inputs = torch.randn(100, 10)
labels = torch.randint(0, 2, (100, 1), dtype=torch.float32)

# Forward pass to get the output from the model
outputs = model(inputs)

# Calculate the loss
loss = criterion(outputs, labels)

# Backward pass to calculate the gradients
loss.backward()

В этом примере мы используем BCELoss функция, которая вычисляет бинарную кросс-энтропийную потерю. Для задачи классификации нескольких классов вы должны использовать CrossEntropyLoss функция вместо этого. Входные данные для функции потерь являются выходными данными модели (outputs) и истинные метки (labels).

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

ТензорФлоу

В TensorFlow кросс-энтропийные потери можно рассчитать с помощью tf.keras.losses.SparseCategoricalCrossentropy или tf.keras.losses.BinaryCrossentropy функции, в зависимости от того, работаете ли вы с проблемой мультиклассовой или бинарной классификации соответственно.

Вот пример того, как использовать BinaryCrossentropy функция в задаче бинарной классификации:

import tensorflow as tf

# Define your model
model = tf.keras.Sequential([
    tf.keras.layers.Dense(20, activation='relu', input_shape=(10,)),
    tf.keras.layers.Dense(1, activation='sigmoid')
])

# Define your loss function
loss_fn = tf.keras.losses.BinaryCrossentropy()

# Define your inputs and labels
inputs = tf.random.normal([100, 10])
labels = tf.random.uniform([100, 1], 0, 2, dtype=tf.int32)

# Forward pass to get the output from the model
outputs = model(inputs)

# Calculate the loss
loss = loss_fn(labels, outputs)

# Use an optimizer to minimize the loss
optimizer = tf.keras.optimizers.SGD(learning_rate=0.01)
optimizer.minimize(loss, model.trainable_variables)

В этом примере мы используем BinaryCrossentropy функция, которая вычисляет бинарную кросс-энтропийную потерю. Для задачи классификации нескольких классов вы должны использовать SparseCategoricalCrossentropy функция вместо этого. Входными данными для функции потерь являются истинные метки (labels) и выход из модели (outputs).

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

Источник: YouTube

Заключение

Cross Entropy Loss — это широко используемая функция потерь в машинном обучении, особенно в моделях классификации. Его способность измерять разницу между предсказанными вероятностями и истинными вероятностями делает его подходящим выбором для задач бинарной и многоклассовой классификации. При обучении модели глубокого обучения важно выбрать соответствующую функцию потерь, и перекрестная потеря энтропии может быть хорошим вариантом, если вашей целью является прогнозирование вероятностей классов. В PyTorch и TensorFlow реализовать функцию Cross Entropy Loss просто, и для ее использования требуется базовое понимание ее основных концепций, таких как энтропия, активация softmax, а также бинарная и мультиклассовая кросс-энтропия.

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

Рекомендации

Аггарвал, Чару С. Нейронные сети и глубокое обучение: учебник. Спрингер, 2018.

«CrossEntropyLoss — документация по PyTorch 1.13». Питорч, 2022 г., https://pytorch.org/docs/stable/generated/torch.nn.CrossEntropyLoss.html. По состоянию на 13 февраля 2023 г.

Жерон, Орельен. Практическое машинное обучение с помощью Scikit-Learn, Keras и TensorFlow: концепции, инструменты и методы создания интеллектуальных систем. «О’Рейли Медиа, Инк.», 2019 г.

Гудфеллоу, Ян и др. Глубокое обучение. Массачусетский технологический институт, 2016.

Максим. «Как выбрать кросс-энтропийную потерю в TensorFlow?» Переполнение стека, https://stackoverflow.com/questions/47034888/how-to-choose-cross-entropy-loss-in-tensorflow. По состоянию на 13 февраля 2023 г.

«Модуль: Tf.Keras.Losses». ТензорФлоу, 18 ноября 2022 г., https://www.tensorflow.org/api_docs/python/tf/keras/losses. По состоянию на 13 февраля 2023 г.

ван Амстердам, Университет. “План проэкта.” Оптимизация для машинного обучения и с его помощью (оптимальная) — Амстердамский университет, 21 декабря 2020 г., https://optimal.uva.nl/project-plan/project-plan.html?cb. По состоянию на 13 февраля 2023 г.

Последние статьи

Related articles

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь

hentai lou nicehentai.com ahegeo hentai pron v bigztube.mobi kannada school girl sex videos sxsi com pornoko.net indian porn xnxx.com سكس.جماعي pornigh.com سكس لوسي bangali sex in kompoz2.com ganapa kannada movie songs
سكس مع المعلمة matureporni.com سكس كس مفتوح desi clip.com foxporns.info girls sexy pictures хентай манга hentaitale.net hentai zombie girl little sister doujin justhentaiporn.com kasumi tendo hentai افلام جيانا مايكلز gratisfucktube.com foto sex
desi gay porn vedio momyporn.mobi nepali x video مدام شرموطه freetube18x.com ايناس الدغيدي سكس tony tony chopper hentai hentaimangaz.com naruto new hentai manga الكس والزبر pornarabic.net احلى بزاز ميلفاية arabgrid.net فلم\سكس