кочан Какво е обратно разпространение? - Обединете.AI
Свържете се с нас
AI майсторски клас:

AI 101 г

Какво е обратно разпространение?

mm
Обновено on

Какво е обратно разпространение?

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

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

Целта на обратното разпространение

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

Обучение на дълбока невронна мрежа

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

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

Активиране = сума (тегло * вход) + отклонение

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

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

Обратно разпространение в мрежата

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

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

грешка = (очакван_изход – действителен_изход) * наклон на изходната стойност на неврона

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

След като се изчислят грешките за мрежата, теглата в мрежата трябва да се актуализират. Както споменахме, изчисляването на грешката включва определяне на наклона на изходната стойност. След като наклонът бъде изчислен, може да се използва процес, известен като градиентно спускане, за да се коригират теглата в мрежата. Градиентът е наклон, чийто ъгъл/стръмност може да бъде измерен. Наклонът се изчислява чрез нанасяне на „y над“ или „възход“ върху „пробега“. В случая на невронната мрежа и процента на грешки, "y" е изчислената грешка, докато "x" е параметрите на мрежата. Параметрите на мрежата са свързани с изчислените стойности на грешката и когато теглата на мрежата се коригират, грешката се увеличава или намалява.

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

Блогър и програмист със специалности в Machine Learning намлява Дълбоко обучение теми. Даниел се надява да помогне на другите да използват силата на ИИ за социално благо.