|
|
||
|---|---|---|
| .. | ||
| lab | ||
| OwnFramework.ipynb | ||
| README.md | ||
README.md
Увод у неуронске мреже. Вишеслојни перцептрон
У претходном одељку сте научили о најједноставнијем моделу неуронске мреже - једнослојном перцептрону, линеарном моделу за класификацију са две класе.
У овом одељку проширићемо овај модел у флексибилнији оквир који нам омогућава:
- извођење вишекласне класификације поред класификације са две класе
- решавање регресионих проблема поред класификације
- раздвајање класа које нису линеарно раздвојиве
Такође ћемо развити сопствени модуларни оквир у Python-у који ће нам омогућити да конструишемо различите архитектуре неуронских мрежа.
Квиз пре предавања
Формализација машинског учења
Почнимо са формализацијом проблема машинског учења. Претпоставимо да имамо скуп података за обуку X са ознакама Y, и да треба да изградимо модел f који ће давати најтачније предвиђања. Квалитет предвиђања мери се помоћу функције губитка ℒ. Често коришћене функције губитка су:
- За регресионе проблеме, када треба да предвидимо број, можемо користити апсолутну грешку ∑i|f(x(i))-y(i)|, или квадратну грешку ∑i(f(x(i))-y(i))2
- За класификацију, користимо 0-1 губитак (што је у суштини исто као и тачност модела), или логистички губитак.
За једнослојни перцептрон, функција f је дефинисана као линеарна функција f(x)=wx+b (овде је w матрица тежина, x је вектор улазних карактеристика, а b је вектор пристрасности). За различите архитектуре неуронских мрежа, ова функција може имати сложенији облик.
У случају класификације, често је пожељно добити вероватноће одговарајућих класа као излаз мреже. Да бисмо произвољне бројеве претворили у вероватноће (нпр. да нормализујемо излаз), често користимо функцију softmax σ, и функција f постаје f(x)=σ(wx+b).
У горњој дефиницији f, w и b се називају параметри θ=⟨w,b⟩. С обзиром на скуп података ⟨X,Y⟩, можемо израчунати укупну грешку на целом скупу података као функцију параметара θ.
✅ Циљ обуке неуронске мреже је минимизирање грешке променом параметара θ
Оптимизација методом градијентског спуштања
Постоји добро позната метода оптимизације функција која се зове градијентско спуштање. Идеја је да можемо израчунати извод (у вишедимензионалном случају назван градијент) функције губитка у односу на параметре и мењати параметре тако да се грешка смањи. Ово се може формализовати на следећи начин:
- Иницијализуј параметре неким случајним вредностима w(0), b(0)
- Понављај следећи корак више пута:
- w(i+1) = w(i)-η∂ℒ/∂w
- b(i+1) = b(i)-η∂ℒ/∂b
Током обуке, кораци оптимизације треба да се израчунавају узимајући у обзир цео скуп података (запамтите да се губитак израчунава као збир кроз све узорке за обуку). Међутим, у пракси узимамо мале делове скупа података који се називају мини-бачеви, и израчунавамо градијенте на основу подскупа података. Пошто се подскуп узима насумично сваки пут, ова метода се назива стохастичко градијентско спуштање (SGD).
Вишеслојни перцептрони и повратно ширење
Једнослојна мрежа, као што смо видели, способна је да класификује линеарно раздвојиве класе. Да бисмо изградили богатији модел, можемо комбиновати неколико слојева мреже. Математички, то би значило да функција f има сложенији облик и да се израчунава у неколико корака:
- z1=w1x+b1
- z2=w2α(z1)+b2
- f = σ(z2)
Овде је α нелинеарна активациона функција, σ је softmax функција, а параметри су θ=<w1,b1,w2,b2>.
Алгоритам градијентског спуштања остаје исти, али је израчунавање градијената сложеније. Узимајући у обзир правило ланчаног извођења, можемо израчунати изводе као:
- ∂ℒ/∂w2 = (∂ℒ/∂σ)(∂σ/∂z2)(∂z2/∂w2)
- ∂ℒ/∂w1 = (∂ℒ/∂σ)(∂σ/∂z2)(∂z2/∂α)(∂α/∂z1)(∂z1/∂w1)
✅ Правило ланчаног извођења користи се за израчунавање изводa функције губитка у односу на параметре.
Приметите да је леви део свих ових израза исти, и стога можемо ефикасно израчунати изводе почевши од функције губитка и идући "унатраг" кроз граф рачунања. Због тога се метода обуке вишеслојног перцептрона назива повратно ширење или 'backprop'.
TODO: цитирање слике
✅ Детаљније ћемо обрадити повратно ширење у нашем примерку у нотебуку.
Закључак
У овој лекцији смо изградили сопствену библиотеку за неуронске мреже и користили је за једноставан задатак класификације у две димензије.
🚀 Изазов
У пратећем нотебуку, имплементираћете сопствени оквир за изградњу и обуку вишеслојних перцептрона. Моћи ћете детаљно да видите како модерне неуронске мреже функционишу.
Прелазите на OwnFramework нотебук и радите кроз њега.
Квиз после предавања
Преглед и самостално учење
Повратно ширење је уобичајен алгоритам који се користи у вештачкој интелигенцији и машинском учењу, вредан је проучавања детаљније
Задатак
У овој лабораторији, од вас се тражи да користите оквир који сте конструисали у овој лекцији за решавање класификације руком писаних цифара из MNIST скупа података.
Одрицање од одговорности:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције Co-op Translator. Иако настојимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати меродавним извором. За критичне информације препоручује се професионални превод од стране људског преводиоца. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.