Мы выкарыстоўваем файлы cookie на гэтым сайце для паляпшэння вашага вопыту карыстання.
Для больш падрабязнай інфармацыі азнаёмцеся з Палітыка канфідэнцыяльнасці

AI
ML/DL
Нейронныя сеткі для пачаткоўцаў.
13.09.2024

У дадзеным артыкуле будуць разгледжаны розныя спосабы навучання нейронных сетак (у прыватнасці, метад зваротнага распаўсюджвання), а таксама асноўныя вызначэнні і асаблівасці, неабходныя для навучання нейронных сетак.

 

Што такое нейрон зрушэння?

Перш чым разглядаць асноўную тэму артыкула, неабходна разглядзець такое паняцце, як нейрон зрушэння, або bias. Нейрон зрушэння – гэта трэці від нейронаў, які выкарыстоўваецца ў большасці нейрасетак. Асаблівасць гэтага тыпу нейронаў заключаецца ў тым, што яго ўваход і выхад заўсёды раўняюцца 1 і яны ніколі не маюць уваходных сінапсаў. Нейроныя зрушэнні могуць альбо прысутнічаць у нейроннай сетцы па адным на слоі, альбо цалкам адсутнічаць, 50/50 быць не можа (чырвоным на схеме пазначаны вагі і нейроны, якія размяшчаць нельга). Злучэнні ў нейронаў зрушэння такія ж, як у звычайных нейронаў – з усімі нейронамі наступнага ўзроўню, за выключэннем таго, што сінапсаў паміж двума bias нейронамі быць не можа. Такім чынам, іх можна размяшчаць на ўваходным слоі і ва ўсіх схаваных слаях, але ніяк не на выходным слоі, так як ім няма з чым будзе фармаваць сувязь.

 

Для чаго патрэбен нейрон зрушэння?

Нейрон зрушэння патрэбен, каб мець магчымасць атрымліваць выходны вынік, шляхам зруху графіка функцыі актывацыі направа або налева ад нуля. Таксама нейроны зрушэння дапамагаюць у тым выпадку, калі ўсе ўваходныя нейроны атрымліваюць на ўваход 0 і незалежна ад таго, якія ў іх вагі, яны ўсё перададуць на наступны слой 0, але не ў выпадку прысутнасці нейрона зрушэння. Значэнне велічыні нейронаў зрушэння – гэта гіперпараметр. Менавіта дадзеная велічыня, а таксама наяўнасць або адсутнасць нейрона зрушэння, які выбіраецца адвольна, прагнаўшы нейронную сетку з нейронамі змешвання і без іх і параўнаўшы вынікі.

 

Як зрабіць, каб нейронная сетка давала правільныя адказы?

 

Для гэтага неабходна навучыць нейрасеткі. Існуе некалькі метадаў навучання нейронных сетак, у дадзеным артыкуле будуць прыведзены тры найбольш цікавыя:

  • метад зваротнага распаўсюджвання памылкі (Backpropagation);
  • метад пругкага распаўсюджвання памылкі (Resilient propagation або Rprop);
  • генетычны Алгарытм (Genetic Algorithm).

 

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

 

Што такое градыентны спуск?

 

Градыентны спуск – гэта спосаб знаходжання лакальнага мінімуму або максімуму функцыі з дапамогай руху ўздоўж градыенту. Для разумення сутнасці градыентнага спуску і важнасці яго для метаду зваротнага распаўсюджвання, неабходна пабудаваць графік, дзе па восі х будуць значэнні вагі нейрона (w) а па восі у – памылка, адпаведная гэтай вазе (e).

На графіку прыкметна, што графік функцыі f (w) – залежнасць памылкі ад абранай вагі. Самым важным для нейроннай сеткі на графіку з’яўляецца кропка (w2, e2) – глабальны мінімум функцыі, у якой нейронная сетка будзе даваць найменшую памылку. Для знаходжання глабальнага мінімуму функцыі выкарыстоўваецца метад градыентнага спуску (жоўтым на графіку пазначаны градыент).

 

Градыент – гэта вектар, які вызначае крутасць схілу і паказвае яго кірунак адносна кропак на паверхні або графіку. Каб знайсці градыент, трэба ўзяць вытворную ад графіка па дадзенай кропцы (як гэта і паказана на графіку). Рухаючыся па кірунку гэтага градыенту, памылка будзе імкнуцца да нуля.

Аднак пры руху па кірунку градыенту можна натрапіць на лакальны мінімум. Трапленне ў лакальны мінімум характэрна тым, што памылка назаўжды застанецца ў дадзенай кропцы. Такім чынам яна ніколі не дасягне глабальнага мінімуму. Для вырашэння гэтай праблемы выкарыстоўваецца метад паскарэння з дапамогай моманту (momentum). Вось кароткая ілюстрацыя моманту:

 

Аднак у такога метада існуюць свае асаблівасці. Занадта вялікі момант можа прывесці да таго, што памылка праскочыць глабальны мінімум. Таму, як момант, так і хуткасць навучання (learning rate) павінны быць старанна падабраныя. Хуткасць навучання – гэта параметр, які выкарыстоўваецца разам з момантам у метадзе зваротнага распаўсюджвання памылкі. Хуткасць навучання, таксама як і момант, з’яўляецца гіперпараметрам – велічыня, якая падбіраецца шляхам спроб і памылак. Высокая хуткасць навучання паскарае працэс, але можа зрабіць траекторыю нестабільнай, у той час як занадта нізкая – замарудзіць навучанне або зусім яго спыніць. Візуалізацыя паводзін градыенту пры занадта вялікай хуткасці навучання:

Што такое метад зваротнага распаўсюджвання?

 

Візуалізацыя метаду зваротнага распаўсюджвання памылкі прыведзена ніжэй:

Першы этап метаду зваротнага распаўсюджвання памылкі – Forward pass, на якім паслядоўна перадаецца інфармацыя ад падобных нейронаў да выходных і падлічваецца выхад нейроннай сеткі. Пасля гэтага падлічваецца памылка прадказання мадэлі і, грунтуючыся на ёй, выконваецца этап Back pass, які заключаецца ў паслядоўнай змене вагаў нейроннай сеткі, пачынаючы з вагаў выхаднога нейрона. Значэнне вагаў будзе мяняцца ў той бок, які дасць найлепшы вынік.

 

Што яшчэ трэба ведаць аб працэсе навучання?

 

Нейрасеткі можна навучаць з настаўнікам і без (supervised, unsupervised learning).

Навучанне з настаўнікам – гэта тып трэніровак, уласцівы такім праблемам, як рэгрэсія і класіфікацыя, пры якіх нейронная сетка навучаецца на аснове наяўнага правільнага выніку, чаканага ад нейроннай сеткі.

Навучанне без настаўніка – гэты тып навучання сустракаецца не так часта. Тут няма настаўніка, таму сетка не атрымлівае жаданы вынік ці ж іх колькасць вельмі малая. У асноўным такі від трэніровак уласцівы нейронным сеткам, у якіх задача складаецца ў групоўцы даных па пэўных параметрах.

Існуе яшчэ такі метад, як навучанне з падмацаваннем (reinforcement learning). Такі спосаб выкарыстоўваецца і ў дачыненні тады, калі можна, грунтуючыся на выніках, атрыманых ад нейроннай сеткі, даць ёй ацэнку. Нейроннай сетцы прадастаўляецца права знайсці любы спосаб дасягнення мэты, пакуль ён будзе даваць добры вынік. Такім спосабам, сетка пачне разумець, чаго ад яе хочуць, і паспрабуе знайсці найлепшы спосаб дасягнення гэтай мэты без пастаяннага прадастаўлення даных “настаўнікам”.

 

Што такое гіперпараметры?

 

Гіперпараметры – гэта значэнні, якія трэба падбіраць уручную і часта метадам спроб і памылак. Сярод такіх значэнняў можна вылучыць:

  • момант і хуткасць навучання;
  • колькасць схаваных слаёў;
  • колькасць нейронаў у кожным слоі;
  • наяўнасць або адсутнасць нейронаў зрушэння.

 

Што такое збежнасць?

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