Обратно разпространение в невронна мрежа: ML алгоритъм и пример

⚡ Умно обобщение

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

  • 🔘 Основна идея: Верижното правило дава градиента на загубата за всяко тегло, един слой наведнъж.
  • ☑️ Тренировъчен цикъл: Преминаване напред, измерване на грешката, разпространението ѝ назад, актуализиране на теглата, повторение.
  • Два варианта: Статичното обратно разпространение съпоставя фиксиран вход с фиксиран изход; рекурентното обратно разпространение първо се установява, след което се разпространява.
  • 🧪 Защо това е важно: Градиентното спускане остава практично само за дълбоки мрежи, защото градиентите се използват повторно слой по слой.
  • 🛠️ Известни ограничения: Производителността зависи от качеството на входните данни, а шумните извадки изкривяват научените тегла.
  • Градиентно здраве: Умножението на много малки производни води до изчезващи градиенти; ReLU и нормализирането намаляват ефекта.

Обратно разпространение в невронна мрежа: алгоритъм за машинно обучение

Какво е изкуствена невронна мрежа?

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

Обратното разпространение е алгоритъмът, който решава какви трябва да бъдат тези тегла, така че двете идеи е най-добре да се четат заедно.

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

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

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

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

Как работи алгоритъмът за обратно разпространение

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

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

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

Диаграма на алгоритъма за обратно разпространение, показваща преминаване напред през входни, скрити и изходни слоеве и движението на грешката назад

  1. Входове X, пристигат през предварително свързания път
  2. Входът се моделира с помощта на реални тегла W. Теглата обикновено се избират на случаен принцип.
  3. Изчислете изхода за всеки неврон от входния слой, през скритите слоеве, до изходния слой.
  4. Изчислете грешката в изходите:
    ErrorB= Actual Output – Desired Output
    
  5. Върнете се от изходния слой към скрития слой, за да коригирате теглата така, че грешката да бъде намалена.
  6. Продължавайте да повтаряте процеса, докато се постигне желаният резултат.

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

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

Защо се нуждаем от обратно разпространение?

Най-важните предимства на обратното разпространение са:

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

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

Какво е Feed Forward Network?

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

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

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

Два вида мрежи за обратно разпространение са:

  • Статично обратно разпространение
  • Повтарящо се обратно разпространение

Статично обратно разпространение

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

Повтарящо се обратно разпространение

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

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

критерий Статично обратно разпространение Рекурентно обратно разпространение
Картаping Статичен вход към статичен изход Нестатично; мрежата се установява преди да се използва грешката
Скорост Бързо, едно преминаване на проба По-бавно, активирането се повтаря, докато се стабилизира
Форма на мрежата Предварителна връзка, без цикли Съдържа връзки за обратна връзка
Типична употреба Оптично разпознаване на символи, класификация с фиксиран размер Проблеми, чийто резултат зависи от установено вътрешно състояние

История на обратното разпространение

  • През 1961 г. основната концепция за непрекъснато обратно разпространение е изведена в контекста на теорията на управлението от Дж. Кели, Хенри Артър и Е. Брайсън.
  • През 1969 г. Брайсън и Хо дадоха метод за многоетапна динамична системна оптимизация.
  • През 1970 г. Сепо Линаймаа публикува обратния режим на автоматично диференциране, изчислителният метод, върху който е изградено съвременното обратно разпространение на грешката.
  • През 1974 г. Вербос заявява възможността за прилагане на този принцип в изкуствена невронна мрежа.
  • През 1982 г. Хопфийлд представи своята идея за невронна мрежа.
  • През 1986 г. с усилията на Дейвид Е. Румелхарт, Джефри Е. Хинтън, Роналд Дж. Уилямс, обратното разпространение получава признание.
  • През 1989 г. Ян ЛеКун и колегите му обучават конволюционна мрежа с обратно разпространение на грешката да чете ръкописни цифри, едно от първите мащабни практически приложения.
  • През 1993 г. Уан е първият човек, спечелил международно състезание за разпознаване на образи с помощта на метода на обратно разпространение.
  • През 2006 г. работата на Хинтън върху дълбоки мрежи от вярвания и предварително обучение на слоеве съживи интереса към обучението на дълбоки мрежи, който беше замрял поради изчезващи градиенти.
  • През 2010 г. Ксавие Глорот и Йошуа Бенхио анализираха защо дълбоките мрежи са трудни за обучение и въведоха подобрена инициализация на теглото, което заедно с активирането на ReLU направи дълбокото обратно разпространение практично.
  • През 2012 г. AlexNet (Крижевски, Суцкевер и Хинтън) спечелиха състезанието ImageNet, използвайки обратно разпространение на код, ускорено от GPU, с което дадоха тласък на съвременния бум на дълбокото обучение.
  • През 2014 г. беше въведен оптимизаторът Adam (Kingma и Ba) и бързо се превърна в вариант по подразбиране за градиентно спускане, използван с обратно разпространение.
  • През 2015 г., мрежите за пакетна нормализация и остатъчните мрежи (ResNet) решиха проблемите с градиентния поток в много дълбоки мрежи, позволявайки обратно разпространение през стотици слоеве.
  • През 2015-2017 г., TensorFlow и PyTorch направи автоматичното диференциране стандартна софтуерна функция, така че градиентите вече не трябваше да се извеждат на ръка.
  • През 2017 г. беше въведена архитектурата Transformer, която е обучавана от край до край с обратно разпространение на кода, както и големите езикови модели, изградени върху нея.
  • През 2019 г. Бенджио, Хинтън и ЛеКун получиха наградата „Тюринг“ на ACM AM за работата си върху дълбоките невронни мрежи.
  • През 2020 г. в статията „Обратно разпространение и мозъкът“ (Лиликрап, Санторо, Марис, Акерман и Хинтън) се твърди, че мозъкът може да се доближава до обучение, подобно на обратно разпространение, като по този начин се отваря отново дебата за биологичната правдоподобност.
  • През 2022 г. Хинтън предложи алгоритъма Forward-Forward, метод за обучение, който напълно избягва обратния пас.
  • През 2024 г. Джон Хопфийлд и Джефри Хинтън получиха Нобелова награда за физика за фундаментални открития, които позволиха машинното обучение с изкуствени невронни мрежи.
  • През 2025 г. методите forward-forward бяха разширени до конволюционни мрежи, показвайки, че обучението без обратно разпространение може да работи при задачи за класификация на изображения.
  • Към 2026 г. обратното разпространение остава стандартният алгоритъм за обучение за почти всички модели на дълбоко обучение, докато изследванията продължават в областта на методите за обучение без градиент, локално и паралелно обучение, които намаляват разходите за памет и изчисления.

Ключови точки за обратно разпространение

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

Най-добра практика за обратно разпространение

Обратното разпространение в невронната мрежа може да се обясни с помощта на аналогията с „връзката на обувката“. Актуализациите на теглото се държат подобно на опъването върху връзката: твърде малко и нищо не се държи заедно, твърде много и нещо се скъсва.

Опъване на дантелата Какво означава по време на тренировка
Твърде малко напрежение Недостатъчно ограничаващ и много свободен — моделът не е подходящ
Твърде много напрежение Твърде много ограничения (претрениране); отнема твърде много време (относително бавен процес); по-висока вероятност за счупване
Дърпане на едната връзка повече от другата Дискомфорт (пристрастие) — една част от мрежата доминира в съответствието

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

Недостатъци на използването на обратно разпространение

  • Действителната производителност на обратното разпространение при конкретен проблем зависи от входните данни.
  • Алгоритъмът за обратно разпространение при извличане на данни може да бъде доста чувствителен към шумни данни
  • В мини-партида, обратното разпространение трябва да се реализира с матрично-базиран подход; looping Работата с по един пример наведнъж е значително по-бавна.
  • В дълбоките мрежи многократното умножение на малки производни може да свие градиентите към нула, така че най-ранните слоеве едва се учат - проблемът с изчезващия градиент, описан в Google Crash курс за машинно обучение.

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

Въпроси и Отговори

Обратното разпространение изчислява градиента на загубата спрямо всяко тегло. Градиентното спускане е оптимизаторът, който използва този градиент и премества всяко тегло. Единият измерва наклона, а другият прави стъпката.

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

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

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

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

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

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

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

Обобщете тази публикация с: