Deep Learning UB 2021 — summer school : Day#8 — part2

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

--

Өмнөх нийтлэл дээр семинар #4-н эхний хэсгийн дуусгасан бол одоо үлдсэн RNN хэсгийг хийнэ ээ.

Recurrent Neural Network (RNN)

RNN нь цаг хугацаа болон бусад хамааралыг ГОЛЛОН анхаарсан загвар.
Re-occur буюу 1 гаралтын датаг дараагийн оролтод давтан ашигладаг.

Хамгийн түгээмэд 1 жишээ нь ОРЧУУЛГА байдаг. Гаралтаас хамаарч 1to1, 1toN, Nto1, NtoN, NtoN (version#2) гэсэн оролт, гаралтын хэлбэрүүдтэй.

Уламжлал авах нь өөрөө RNN дээр хэцүү байдаг. Тийм учир Truncated BPTT буюу хэсэг хэсгээр нь тооцоолол хийдэг.

Өнөөдрийн код маань хүний нэрийг (үсэг) хараад аль улсын нэр вэ гэдгийн ангилах байгаа. Эхлээд өгөгдлөө татаж аваад, бэлдээд, Unicode → AsciiCode болгож хувиргана. Энэ удаад Англи цагаан толгойд туршилт хийх гээд ингэж хувиргалт хийсэн. (Word Embedding хэрэглэхгүйгээр)

Дараа нь One-Hot encoding хийгээд, тенсор болгож матриц руу хадгалах, мөн датаг 90/10 харьцаатайгаар хувааж бэлдэнэ.

Хэдэн нууц давхаргатай байх, хэдэн RNN давхаргатэй байх болон оролтын хэмжээг тохируулаад л PyTorch дээр implement хийчихнэ.

Үүнийг өмнөх шигээ өөрсдөө хийх юм бол доорх код болно.

За тэгээд загвараа сургаад, оновчлолоо шалгана. Мөн жишээ болгож 4-н нэрийг зөв тааж байгаа эсэхийг шалгая. 18k өгөгдөл дээрээ 2 epoch сургаад, 71% оновчлолтой болсон. Мөн Smith, Lenin, Qun, Yamada гэсэн 4-н нэрийг зөв таажээ. 10 epoch сургавал 81% болж байна лээ.

Гэрийн даалгавар болгоод RNN дээрх зарим асуудлыг шийдэхээр гарч ирсэн Gated RNN — LSTM загварын яг адил өгөгдөл дээр туршаарай гэсэн.

Би яг “Х”-дахад хийж үзнэ ээ :)

--

--

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

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