Последна актуализация на 23 октомври 2019 г.

Невронните мрежи се обучават с помощта на стохастичен градиент спускане и изискват да изберете функция на загуба при проектиране и конфигуриране на вашия модел.

Има много функции за загуба, от които можете да избирате и може да бъде предизвикателство да знаете какво да изберете или дори какво е функцията за загуба и ролята, която играе при обучение на невронна мрежа.

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

След като прочетете тази публикация, ще разберете:

  • Невронните мрежи се обучават с помощта на процес на оптимизация, който изисква функция за загуба за изчисляване на грешката на модела.
  • Максималната вероятност предоставя рамка за избор на функция за загуба при обучение на невронни мрежи и модели на машинно обучение като цяло.
  • Кръстосаната ентропия и средната квадратична грешка са двата основни типа функции за загуби, които да се използват при обучение на модели на невронни мрежи.

Стартирайте проекта си с новата ми книга „По-добро задълбочено обучение“, включително уроци стъпка по стъпка и файловете с изходния код на Python за всички примери.

Да започваме.

функции

Функции за загуба и загуба за обучение на невронни мрежи с дълбоко обучение
Снимка от Райън Албре, някои права запазени.

Общ преглед

Този урок е разделен на седем части; те са:

  1. Обучението по невронна мрежа като оптимизация
  2. Какво е функция на загуба и загуба?
  3. Максимална вероятност
  4. Максимална вероятност и кръстосана ентропия
  5. Каква функция за загуба да използвам?
  6. Как да приложим функции за загуба
  7. Функции за загуба и отчетено представяне на модела

Ще се съсредоточим върху теорията зад функциите на загубите.

За помощ при избора и прилагането на различни функции за загуби вижте публикацията:

Обучението по невронна мрежа като оптимизация

Дълбоко обучаващата се невронна мрежа се научава да картографира набор от входове към набор от изходи от данни за обучение.

Не можем да изчислим перфектните тегла за невронна мрежа; има твърде много неизвестни. Вместо това проблемът с обучението се поставя като проблем за търсене или оптимизация и се използва алгоритъм за навигация в пространството от възможни набори от тегла, които моделът може да използва, за да направи добри или достатъчно добри прогнози.

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

„Градиентът“ при градиентно спускане се отнася до градиент на грешка. Моделът с даден набор от тегла се използва за прогнозиране и се изчислява грешката за тези прогнози.

Алгоритъмът за градиентно спускане се стреми да промени тежестите, така че следващата оценка да намали грешката, което означава, че алгоритъмът за оптимизация се движи надолу по градиента (или наклона) на грешката.

Сега, след като знаем, че обучението на невронни мрежи решава задача за оптимизация, можем да разгледаме как се изчислява грешката на даден набор от тегла.

Искате по-добри резултати с дълбоко обучение?

Вземете моя безплатен 7-дневен курс за срив на имейл сега (с примерен код).

Щракнете, за да се регистрирате и също така да получите безплатна версия на курса в PDF Ebook.

Какво е функция на загуба и загуба?

В контекста на алгоритъм за оптимизация, функцията, използвана за оценка на кандидат-решение (т.е. набор от тегла) се нарича целевата функция.

Може да се стремим да максимизираме или минимизираме целевата функция, което означава, че търсим решение за кандидат, което има съответно най-високата или най-ниската оценка.

Обикновено при невронните мрежи се стремим да минимизираме грешката. Като такава, целевата функция често се нарича функция на разходите или функция на загубата, а стойността, изчислена от функцията на загубите, се нарича просто „загуба“.

Функцията, която искаме да минимизираме или увеличим, се нарича целева функция или критерий. Когато го минимизираме, можем също да го наречем функция на разходите, функция на загуба или функция за грешка.

Функцията за разходи или загуби има важна работа, тъй като трябва да дестилира всички аспекти на модела в едно число по такъв начин, че подобренията в този брой да са знак за по-добър модел.

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

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

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

Следователно е важно функцията да представя вярно нашите дизайнерски цели. Ако изберем лоша функция за грешка и получим незадоволителни резултати, грешката е наша, поради лошо определяне на целта на търсенето.

Сега, когато сме запознати с функцията за загуба и загуба, трябва да знаем какви функции да използваме.

Максимална вероятност

Има много функции, които могат да се използват за оценка на грешката на набор от тегла в невронна мрежа.

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

Оценката на максималната вероятност или MLE е рамка за извод за намиране на най-добрите статистически оценки на параметри от исторически данни за обучение: точно това, което се опитваме да направим с невронната мрежа.

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

Имаме набор от данни за обучение с една или повече входни променливи и ни е необходим модел за оценка на параметрите на теглото на модела, които най-добре картографират примери за входни данни към изходната или целевата променлива.

При даден вход, моделът се опитва да прави прогнози, които съответстват на разпределението на данните на целевата променлива. При максимална вероятност функция за загуба оценява колко точно разпределението на прогнозите, направени от даден модел, съвпада с разпределението на целевите променливи в данните за обучение.

Един от начините да се тълкува оценката на максималната вероятност е да се разглежда като свеждане до минимум на различието между емпиричното разпределение [...], дефинирано от обучителния набор и разпределението на модела, със степента на различие между двете, измерено чрез дивергенция KL. […] Минимизирането на тази KL дивергенция съответства точно на минимизирането на кръстосаната ентропия между разпределенията.

Предимството от използването на максимална вероятност като рамка за оценка на параметрите на модела (тежести) за невронни мрежи и в машинното обучение като цяло е, че с увеличаване на броя на примерите в набора от данни за обучение, оценката на параметрите на модела се подобрява. Това се нарича свойството на „последователност“.

При подходящи условия оценителят на максималната вероятност има свойството консистентност […], което означава, че когато броят на примерите за обучение се доближи до безкрайността, максималната оценка на вероятността на параметър се сближава с истинската стойност на параметъра.

Сега, когато сме запознати с общия подход за максимална вероятност, можем да разгледаме функцията за грешка.

Максимална вероятност и кръстосана ентропия

При рамковата максимална вероятност грешката между две разпределения на вероятности се измерва с помощта на кръстосана ентропия.

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

В набора от данни за обучение вероятността за пример, принадлежащ към даден клас, ще бъде 1 или 0, тъй като всяка извадка от набора от данни за обучение е известен пример от домейна. Ние знаем отговора.

Следователно, при оценка на максимална вероятност, ние бихме търсили набор от тегла на модела, които минимизират разликата между прогнозираното разпределение на вероятността на модела, като се има предвид набора от данни и разпределението на вероятностите в набора от данни за обучение. Това се нарича кръстосана ентропия.

В повечето случаи нашият параметричен модел определя разпределение [...] и ние просто използваме принципа на максималната вероятност. Това означава, че използваме кръстосаната ентропия между данните за обучението и прогнозите на модела като функция на разходите.

Технически кръстосаната ентропия идва от областта на теорията на информацията и има единица „битове“. Използва се за оценка на разликата между приблизително и прогнозирано разпределение на вероятностите.

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

Много често се използват няколко основни функции. Средната квадратична грешка е популярна при проблеми с приближаването на функцията (регресия) [...] Функцията за грешка при кръстосана ентропия често се използва за класификационни проблеми, когато изходите се интерпретират като вероятности за членство в посочен клас.

Независимо от това, в рамките на оценката на максималната вероятност и приемайки разпределение на Гаус за целевата променлива, средната квадратична грешка може да се счита за кръстосана ентропия между разпределението на прогнозите на модела и разпределението на целевата променлива.

Много автори използват термина „кръстосана ентропия“, за да идентифицират конкретно отрицателната логаритмична вероятност от разпределение на Бернули или softmax, но това е погрешно наименование. Всяка загуба, състояща се от отрицателна логаритмична вероятност, представлява кръстосана ентропия между емпиричното разпределение, дефинирано от обучителния набор, и разпределението на вероятностите, дефинирано от модела. Например, средната квадратична грешка е кръстосаната ентропия между емпиричното разпределение и гауссов модел.

Следователно, когато използваме рамката за оценка на максималната вероятност, ние ще внедрим функция за кръстосана ентропия, която често на практика означава функция за загуба на кръстосана ентропия за проблеми с класификацията и функция за загуба на средна квадратна грешка за проблеми с регресията.

Почти универсалните невронни мрежи за дълбоко обучение се обучават в рамките на максимална вероятност, използвайки кръстосана ентропия като функция на загубата.

Повечето съвременни невронни мрежи се обучават с максимална вероятност. Това означава, че функцията на разходите е [...] описана като кръстосана ентропия между данните за обучението и разпределението на модела.

Всъщност приемането на тази рамка може да се счита за крайъгълен камък в дълбокото учене, тъй като преди да бъде напълно формализирано, понякога е било обичайно невронните мрежи за класификация да използват средно квадратична функция за загуба.

Една от тези алгоритмични промени беше замяната на средната квадратична грешка с кръстосано ентропийното семейство от функции за загуби. Средната квадратична грешка беше популярна през 80-те и 90-те години, но постепенно беше заменена от кръстосани ентропийни загуби и принципа на максимална вероятност, тъй като идеите се разпространяваха между статистическата общност и общността за машинно обучение.

Подходът за максимална вероятност е възприет почти универсално не само поради теоретичната рамка, но най-вече заради резултатите, които тя дава. По-конкретно, невронните мрежи за класификация, които използват сигмоидна или softmax функция за активиране в изходния слой, се учат по-бързо и по-стабилно, използвайки функция за кръстосана ентропия.

Използването на кръстосани ентропийни загуби значително подобри производителността на модели със сигмоидни и softmax изходи, които преди това са страдали от наситеност и бавно обучение при използване на средната квадратична загуба на грешка.

Каква функция за загуба да използвам?

Можем да обобщим предишния раздел и директно да предложим функциите за загуби, които трябва да използвате в рамките на максимална вероятност.

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

Помислете за конфигурацията на изходния слой като избор относно кадрирането на вашия проблем с прогнозата, а изборът на функцията за загуба като начин за изчисляване на грешката за дадено кадриране на вашия проблем.

Изборът на функция на разходите е тясно свързан с избора на изходна единица. През повечето време просто използваме кръстосаната ентропия между разпределението на данните и разпределението на модела. Тогава изборът как да се представи изходът определя формата на функцията за кръстосана ентропия.

Ще разгледаме най-добрите практики или стойностите по подразбиране за всеки тип проблем по отношение на изходния слой и функцията за загуба.

Проблем с регресията

Проблем, при който предсказвате реална стойност.

  • Конфигурация на изходния слой: Един възел с единица за линейно активиране.
  • Функция на загуба: Средна квадратна грешка (MSE).

Проблем с бинарната класификация

Проблем, при който класифицирате пример като принадлежащ към един от двата класа.

Проблемът е формулиран като предсказване на вероятността за пример, принадлежащ към клас първи, напр. класът, на който присвоявате целочислената стойност 1, докато на другия клас се присвоява стойността 0.

  • Конфигурация на изходния слой: Един възел със сигмоидна единица за активиране.
  • Функция на загуба: Кръстосана ентропия, наричана още логаритмична загуба.

Задача за класификация на няколко класа

Проблем, при който класифицирате пример като принадлежащ към един от повече от два класа.

Проблемът е формулиран като предсказване на вероятността за пример, принадлежащ на всеки клас.

  • Конфигурация на изходния слой: Един възел за всеки клас, използващ функцията за активиране на softmax.
  • Функция на загуба: Кръстосана ентропия, наричана още логаритмична загуба.

Как да приложим функции за загуба

За да направим функциите за загуби конкретни, този раздел обяснява как работи всеки от основните типове функции за загуби и как да се изчисли резултатът в Python.

Средно на квадрат загуба на грешка

Загубата на средна квадратична грешка или накратко MSE се изчислява като средната стойност на квадратичните разлики между прогнозираните и действителните стойности.

Резултатът винаги е положителен, независимо от знака на прогнозираните и действителните стойности, а перфектната стойност е 0,0. Стойността на загубата е сведена до минимум, въпреки че може да се използва в процеса на оптимизация на максимизирането, като резултатът е отрицателен.

Функцията Python по-долу осигурява псевдокодообразна работна реализация на функция за изчисляване на средната квадратична грешка за списък с действителни и списък с прогнозирани реални стойности.