Deep Learning UB 2021 — summer school : Day#5

2B | +1% better 2day | ai.009

--

За Day#5 буюу лекц #3 дээр Гүнзгий сургалтын үндэс гэх хамгийн чухал зүйлрүүгээ орлоо. DeepLearningUB шүү дээ. Энэ удаагийн лекцийг Гүүгл-н Цэндсүрэн, АндГлобалын Отгонбаяр хамтран явуулсан.

Хичээл маань эхлэхдээ жоохон барцадтай эхэлсэн ч их сонирхолтой хичээл байсан. Ярих сэдвийн хувьд дараах үндсэн 4 сэдвийн хүрээнд.

1. Ньюрон сүлжээ

Анх тархи, түүний бүтцээс санаа авч Ньюроны сүлжээ (Neural Network)-г үүсгэсэн байдаг. Доор харуулсан зурган байдлаарх Ньюроны сүлжээг матриц байдлаар дүрслэх юм бол компьютерлүү оруулах боломжтой болно.

Ньюроны хоорондын холбоос болгон оноотой (weight). Дээрх 4 оролт (input), 3 гаралттай (output) зураг маань 3x4 матриц болно. Гаралтыг бодохдоо input*weight + бусад гэж тооцоолдог.

Neuron Network → Matrix Y1=w11*x1+w21*x2+w31*x3+w41*x4

2. Ложистик регресс

Хамгийн энгийн Ньюрон сүлжээ бөгөөд ихэвчлэн ангилсан таамаглал (classification) гаргахад ашигладаг. Өмнөх зураг дээр харагдаж байсан 3-н гаралт маань нийтдээ =1 болно. 1=y1+y2+y3

Гаралтаа магадлал руу хөрвүүлэхдээ SoftMax функц ашигладаг.
SoftMax-г (exponential функцийг) ашиглаж байгаа гол шалтгаан нь оролтын багахан өөрчлөлт гаралтад ихээр нөлөөлдөг. Мөн градиент тооцоход хялбар.

За тэгээд Ложистик регрессээ ашиглаад загвараа яаж сургах вэ? Мэдээж өгөгдөл хэрэгтэй. Өгөгдөл бүр өөрийн шинж чанартай (X) + өөрийн магадлалтай (Y) тэгээд нийт мөр болгоны магадлалын үржвэр нь нийт магадлал болно.

Y нь X-ээс хамааралтай. Зарим тохиолдолд Y-нь Y-аас хамааралтай байж болно. Тэгвэл Нөхцөлт магадлал болно.

Өгөгдөл → Магадлал → Likelihood (тооцож гаргах)

— Likelihood : Загварын тооцож гаргасан магадлал. y=wx+b
Log-likelihood : Мөн магадлал нь маш бага тоо (0.000001 гэх мэт) байдаг нь тооцоолол хийхэд хэцүү болдог. Тийм учраас логарифм хувиргалт хийдэг.
— Maximum Likelihood Estimation : W-н ямар утганд Likelihood нь хамгийн их байгааг олох хэрэгтэй. Үүнийг олохыг оновчлол гэнэ.
— Negative log-likelihood : Функцийн хамгийн их утгыг олохоос илүүтэйгээр бага утгыг олох нь амар байдаг тул NLL loss ашиглаж олдог.

Likelihood → Log-Likelihood → Maximum Likelihood Estimation (NLL loss)

One-hot encoding : Векторын зөвхөн нэг элемэнт нь л 1 гэсэн утга авна

Ньюрон сүлжээ → Магадлал → Likelihood (тооцож гаргах) → Loss(w) = -Log(likelihood)

Дээд талын зураг дээр Loss(w)=-Log(0.2) = 1.6 гэж гарч байгаа нь нилээн муу буюу буруу таамаглал гаргаж байна гэсэн үг. Энэ алдааны функц (Loss) нь Pw=1 үед 0 байна. (Логарифм функц учир)

W=Random → Gradient descent ашигалан Loss=0 олох → LR дагуу алхам хийх

Gradient descent : Бага багаар доошилж минимум цэгээ олно.
Learning Rate : Алхам хэр том байхыг шийддэг. (hyperparameter)

3. Multi-Layer perceptron

Ложистик регресс дээр + шинэ давхарга өгснөөр шинэ feature-г сурах боломжтой болдог.

Non-linear үед underfitting болох

Гэхдээ зарим үед зөвхөн давхарга нэмснээр хангалттай байдаггүй. Эхний давхаргын гаралт дараагийн давхаргын оролт болдог. Энийг шугаман бус хувиргалт болгохын тулд activation функц ашигладаг. (Sigmoid, Logistic…)

2 layer MLP example

Үүн шиг олон давхарга нэмснээр Deep Neural Network болдог. Мөн 2 янзаар ажиллах чадвартай.
—Forward computation : Оролтдоо өгөгдөл авч таамаглал бодох
— Backward computation : Градиентыг тооцож байгаа. Сургах үед хийгддэг.

MLP градиент тооцохдоо гаралтаас буцаагаад оролт хүртэл явна. Давхар функцийн уламжлалын дүрмийн дагуу (chain rule).

Stochastic Gradient Descent (SGD) : loop start[1,2,3]
— 1.
M ширхэг түүвэр авах (batchsize : hyperparameter)
— 2. Alpha буюу сургалтын хурд (learning rate : hyperparameter)
— 3. T буюу алхмын тоо (epoch=T/M : hyperparameter)

SGD удаан ажиллах, Gradient Oscillation асуудал, Learning Rate сонгох зэрэг асуудлууд байдаг болон яаж шийддэг, ямар шинэ хувилбарууд байдаг талаар бас ярьсан. Тэрийг одоохондоо алгаслаа. (SGD with momentum, RMSProp…)

4. Regularizing DNN : Dropout

Сургах явцдаа зарим нэг ньюроныг санамсаргүй байдлаар drop хийдэг. Drop хийгдэх магадлалыг бас зоож өгнө. Ингэснээр тухайн алхмын тооцоололд оролцож чадахгүй бөгөөд хэт давамгай болохоос сэргийлдэг. Сургалт дууссаны дараа бол бүх ньюроныг ашиглана.

Дээрхтэй төстэйгээр ньюроны хувьд drop хийж байсан бол энэ удаад weight-н хувьд хэт их нөлөөлөхөөс сэргийлж Weight Decay ашигладаг. Loss(w)=L+w2

За нэг иймэрхүү. Төгсгөлд нь дүгнэлт 1 хуудсанд их аятайхан бичсэн байсны шууд зурган байдлаар оруулав.

2 цагийн хичээлийг давтан2 сонсож байж л сайн ухаж ойлгож байх шиг. 3-н өдөр завсарлачихсан чинь хичээл овоорчихлоо шүү. Өнөөдрийнхөө хичээлийг маргааш л нөхөж үзэхээс.

--

--

Билигүн.Б (Програмч аав)
2B +1% better 2day

I am who I am... || өөрийнхөөрөө байхаас ичихгүй