что такое функция потерь в нейронных сетях

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

Дата публикации Jun 20, 2019

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетях

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

Функция потери | Краткое вступление

Средняя квадратическая ошибка

пример

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

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетях

Двоичный Кроссентропия

пример

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетях

Во время обучения сети целевое значение, подаваемое в сеть, должно быть 1, если онодождьв противном случае 0.

Примечание 1

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

Заметка 2

Что если вы не используете сигмоидальную активацию на последнем слое? Затем вы можете передать аргумент from logits как true к функции потерь, и он будет внутренне применять сигмоид к выходному значению.

Категориальная кроссентропия

пример

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

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетях

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

Заметка

Что делать, если мы не используемSoftMaxактивация на последнем слое? Затем вы можете передать аргумент from logits как true к функции потерь, и она будет внутренне применятьSoftMaxдо выходного значения. То же, что и в приведенном выше случае.

Редкая категориальная кроссентропия

Эта функция потерь почти аналогична CCE за исключением одного изменения.

Когда мы используем SCCE Функция потери, вам не нужно одно горячее кодирование целевого вектора. Если целевым изображением является кошка, вы просто передаете 0, иначе 1. В основном, какой бы класс ни был, вы просто передаете индекс этого класса.

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетях

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

этоисходный код всех доступных функций потерь в Керасе

Источник

Функция потерь (Loss Function)

Функция потерь (Loss Function, Cost Function, Error Function; J) – фрагмент программного кода, который используется для оптимизации Алгоритма (Algorithm) Машинного обучения (ML). Значение, вычисленное такой функцией, называется «потерей».

Функция (Function) потерь может дать бо́льшую практическую гибкость вашим Нейронным сетям (Neural Network) и будет определять, как именно выходные данные связаны с исходными.

Нейронные сети могут выполнять несколько задач: от прогнозирования непрерывных значений, таких как ежемесячные расходы, до Бинарной классификации (Binary Classification) на кошек и собак. Для каждой отдельной задачи потребуются разные типы функций, поскольку выходной формат индивидуален.

С очень упрощенной точки зрения Loss Function может быть определена как функция, которая принимает два параметра:

Эта функция, по сути, вычислит, насколько хорошо работает наша модель, сравнив то, что модель прогнозирует, с фактическим значением, которое она должна выдает. Если Ypred очень далеко от Yi, значение потерь будет очень высоким. Однако, если оба значения почти одинаковы, значение потерь будет очень низким. Следовательно, нам нужно сохранить функцию потерь, которая может эффективно наказывать модель, пока та обучается на Тренировочных данных (Train Data).

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

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

Классификационные потери

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

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетяхВыходной формат данных нейросети бинарной классификации

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

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

Бинарная классификация

В двоичной классификации на выходном слое будет только один узел. Чтобы получить результат в формате вероятности, нам нужно применить Функцию активации (Activation Function). Поскольку для вероятности требуется значение от 0 до 1, мы будем использовать Сигмоид (Sigmoid), которая приведет любое реальное значение к диапазону значений от 0 до 1.

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

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

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

Функция потерь, которую мы используем для двоичной классификации, называется Двоичной перекрестной энтропией (BCE). Эта функция эффективно наказывает нейронную сеть за Ошибки (Error) двоичной классификации. Давайте посмотрим, как она выглядит.

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетяхГрафики потери бинарной кросс-энтропии

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

И когда нам нужно предсказать отрицательный класс (Y = 0), мы будем использовать немного трансформированный аналог:

Для первой функции, когда Ypred равно 1, потеря равна 0, что имеет смысл, потому что Ypred точно такое же, как Y. Когда значение Ypred становится ближе к 0, мы можем наблюдать, как значение потери сильно увеличивается. Когда же Ypred становится равным 0, потеря стремится к бесконечности. Это происходит, потому что с точки зрения классификации, 0 и 1 – полярные противоположности: каждый из них представляет совершенно разные классы. Поэтому, когда Ypred равно 0, а Y равно 1, потери должны быть очень высокими, чтобы сеть могла более эффективно распознавать свои ошибки.

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетяхСравнение потерь двоичной классификации

Полиномиальная классификация

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

В данном случае мы используем функцию активации Softmax. Эта функция гарантирует, что все выходные узлы имеют значения от 0 до 1, а сумма всех значений выходных узлов всегда равна 1. Вычисляется с помощью формулы:

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетях

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

Итак, почему мы должны передавать каждое значение через экспоненту перед их нормализацией? Почему мы не можем просто нормализовать сами значения? Это связано с тем, что цель Softmax – убедиться, что одно значение очень высокое (близко к 1), а все остальные значения очень низкие (близко к 0). Softmax использует экспоненту, чтобы убедиться, что это произойдет. А затем мы нормализуем результат, потому что нам нужны вероятности.

Теперь, когда наши выходные данные имеют правильный формат, давайте посмотрим, как мы настраиваем для этого функцию потерь. Хорошо то, что функция потерь по сути такая же, как у двоичной классификации. Мы просто применим Логарифмическую потерю (Log Loss) к каждому выходному узлу по отношению к его соответствующему целевому значению, а затем найдем сумму этих значений по всем выходным узлам.

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетяхКатегориальная кросс-энтропия

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

Классификация по нескольким меткам

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

Для этого мы не можем использовать Softmax, потому что он всегда заставляет только один класс «становиться единицей», а другие классы приводит к нулю. Вместо этого мы можем просто сохранить сигмоид на всех значениях выходных узлов, поскольку пытаемся предсказать индивидуальную вероятность каждого класса.

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

Теперь, когда мы рассмотрели классификацию, перейдем к регрессии.

Потеря регрессии

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

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

Источник

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

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетях

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

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

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

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

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

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетях

Искусственная нейронная сеть состоит из трех компонентов:

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетях

Обучение нейросетей происходит в два этапа:

Во время прямого распространения ошибки делается предсказание ответа. При обратном распространении ошибка между фактическим ответом и предсказанным минимизируется.

Прямое распространение ошибки

Зададим начальные веса случайным образом:

Умножим входные данные на веса для формирования скрытого слоя:

Выходные данные из скрытого слоя передается через нелинейную функцию (функцию активации), для получения выхода сети:

Обратное распространение

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетях

Полученный результат затем вычитается из соответствующих весов.

В результате получатся следующие обновленные веса:

То, что мы предполагаем и инициализируем веса случайным образом, и они будут давать точные ответы, звучит не вполне обоснованно, тем не менее, работает хорошо.

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетяхПопулярный мем о том, как Карлсон стал Data Science разработчиком

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетяхЕсли вы знакомы с рядами Тейлора, обратное распространение ошибки имеет такой же конечный результат. Только вместо бесконечного ряда мы пытаемся оптимизировать только его первый член.

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

Частные производные

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

Разберем необходимость частных производных на примере.

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

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетях

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

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетях

Ошибка нескольких детей может уменьшиться, но общая ошибка все еще увеличивается.

Найдя частные производные, мы узнаем ошибки, соответствующие каждому весу в отдельности. Если выборочно исправить веса, можно получить следующее:

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетях

Гиперпараметры

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

Скорость обучения (learning rate)

Скорость обучения является очень важным гиперпараметром. Если скорость обучения слишком мала, то даже после обучения нейронной сети в течение длительного времени она будет далека от оптимальных результатов. Результаты будут выглядеть примерно так:

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетях

С другой стороны, если скорость обучения слишком высока, то сеть очень быстро выдаст ответы. Получится следующее:

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетях

Функция активации (activation function)

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

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

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетях

Функция потери (loss function)

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

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

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

Некоторые известные функции потерь:

Cреднеквадратичное отклонение – самая простая фукция потерь и наиболее часто используемая. Она задается следующим образом:

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетях

Функция потерь в нейронной сети должна удовлетворять двум условиям:

Глубокие нейронные сети

Глубокое обучение (deep learning) – это класс алгоритмов машинного обучения, которые учатся глубже (более абстрактно) понимать данные. Популярные алгоритмы нейронных сетей глубокого обучения представлены на схеме ниже.

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетяхПопулярные алгоритмы нейронных сетей (http://www.asimovinstitute.org/neural-network-zoo)

Более формально в deep learning:

Пример

Рассмотрим однослойную нейронную сеть:

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетях

Здесь, обучается первый слой (зеленые нейроны), он просто передается на выход.

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

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетях

Следовательно, чем больше число скрытых слоев, тем больше возможности обучения сети.

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетях

Не следует путать с широкой нейронной сетью.

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

Изучая английскую грамматику, требуется знать огромное число понятий. В этом случае однослойная широкая нейронная сеть работает намного лучше, чем глубокая нейронная сеть, которая значительно меньше.

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

Главное — баланс

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

Проклятье размерности

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

Грамматика английского языка имеет огромное количество аттрибутов, влияющих на нее. В машинном обучении мы должны представить их признаками в виде массива/матрицы конечной и существенно меньшей длины (чем количество существующих признаков). Для этого сети обобщают эти признаки. Это порождает две проблемы:

Компромисс

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

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

что такое функция потерь в нейронных сетях. Смотреть фото что такое функция потерь в нейронных сетях. Смотреть картинку что такое функция потерь в нейронных сетях. Картинка про что такое функция потерь в нейронных сетях. Фото что такое функция потерь в нейронных сетях

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

Следовательно, как правило, невозможно иметь маленькое смещение и маленькую дисперсию одновременно.

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *