Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Deep Learning
Тооцоолон бодох машиныг яаж
зураг ойлгодог болгох вэ?
AI буюу Хиймэл оюун
Өнөөдрийн ярих хэсэг маань
Deep Learning ≈ Deep Neural Network
• Deep Learning гэж юу вэ?
• Биологийн мэдрэлийн сүлжээ буюу хүн болон амьтны
төв мэдр...
Supervised эсвэл Unsupervised
• Supervised Learning
– Ямар нэг датаг оруулан өөрийн хүссэн гаралтыг авах(ямар нэг
ангилалд...
Supervised эсвэл Unsupervised
• Unsupervised Learning
– Урьдчилсан боловсруулалт болон ангилан ялгаагүй дата(Түүхий
дата)-...
Зорилго
• Тооцоолон бодох машиныг яаж зураг ойлгодог
болгох вэ?
Үүний тулд Supervised Learning дээр төвлөрч ярих
болно.
• Хүн нэг зурагнаас юу дүрслэгдсэн
байгааг амархан ойлгож таних
чадвартай боловч үүнийг машинаар
хийлгэх боломжтой юу гэсэ...
Агуулга
• Тархи болон нейрон
– Тархины талаар
– Нейрон(мэдрэлийн эс)-н ажиллагаа
• Neural Network
– Neural Network болон м...
• Тархины талаар
– Тархины үйл ажиллагаа нь түүнийг бүрдүүлэгч олон тооны
мэдрэлийн эс нейроны үйл ажиллагаатай нягт холбо...
Нейрон
• Нейрон
– Бичил цахилгаан гүйдэлд цочрох чадвартай эс
– Мэдээллийг хүлээн авах, боловсруулах, дамжуулах үйл ажилла...
Синапс
Нейрон хооронд мэдээлэл дамжуулдаг бүтцийг синапс гэнэ.
Синапсын өмнөх мэдрэлийн эсэд байрлах синапсын товгор
нь си...
Хеббийн хууль
“Нейрон дээрх синапсд өмнөх нейроны давтамжит
‘идэвхжилт’-ээс үүдэн тухайн нейронд цочрол үүссэн
тохиолдолд ...
Нейрон хэзээ идэвхжихвэ?
• Нейрон нь бусад мэдрэлийн эсээс ирэх сэрэл(импульс)-ийг хүлээн авч
идэвхжсэнээр тэрхүү импульсэ...
Нейрон хэзээ идэвхжих вэ?
• Нейроны ажиллагаа нь идэвхжих үү үгүй юу гэсэн 1 юм уу
0 гэсэн дижитал хэлбэрээр илэрхийлэгдэх...
• Нейроны идэвхжих нөхцөлийг математик хэлбэрт
оруулбал:
– Өдөөгдсөн синапсаас ирэх импульсын утга P
– Саатуулах синапсаас...
P : 3+3+0 = 6
M: 2+0+2 = 4
P – M = 2>1
B=1 гэвэл
Нейрон хэзээ идэвхжих вэ?
Жишээлбэл
Нэг нейроны ажиллагааг математик
хэлб...
Нейроны сүлжээг математик
загварчлал руу
Муур
Тархи шиг олон тооны хиймэл нейроноос бүрдэх сүлжээг математик загварчлалд
о...
Нейроны сүлжээг математик
загварчлал руу
Үүнээс хойш тэгшитгэлийг хялбарчлахын тулд параметрүүд
P болон М-г нэгтгэн
Weight...
Олон нейрон байх тохиолдолд
X1
X2
X3
нейрон1
W1・XT + b1 > 0
нейрон2
W2・XT + b2 > 0
нейрон3
W3・XT + b3 > 0
Оролт X=[X1,X2,X...
Олон нейроныг ашиглавал
X1
X2
Class A (y=1)
Class B (y=0)
• Олон нейроныг ашиглан доорх цэнхэр улаан
элементүүдийг ялгаж ү...
Activation function(хөрвүүлэгч функц)
Өмнөх тэгшитгэлүүдээс бид бүхэн дандаа шугаман функц ашиглаж ирсэн
бол шугаман бус х...
Activation function(хөрвүүлэгч функц)
1 1 1
1 1 1
-1 -1 -1
Good for classification Simple computation Continuous & Differe...
Олон давхаргат бүтэцтэй нейроны
сүлжээ (Deep Neural Network:DNN)
X1
X2
X3
X4
H1
H2
H3
M1
M2
M3
M4
Y1
Y2
Одоо л нэг сүлжээ ...
Deep Neural Network
X1
X2
X3
X4
H1
H2
H3
M1
M2
M3
M4
Y1
Y2
Оролтын давхарга
Гаралтын дав
Далд давхарга
Оролт болон гаралта...
Энэ хүртэл
• Бид тархийг математик загварчлалд оруулж
чадлаа. Одоо яах вэ?
Бодит амьдрал дээрх ойлгомжтой бөгөөд
хэцүү асу...
Бичмэл тоог таньдаг болгохын тулд
эхлээд машиныг сургах хэрэгтэй!
Оролт 28x28 пиксел(=784 нейрон) хэмжээтэй маш олон тооны...
Deep Neural Network –н тохиромжит
параметрүүдийг олох аргачлал
• Backpropagation
– NN-н гаралтын утгаас хамааран тохиромжт...
Gradient Descent
Алдагдлын функцийг J(w) гэсэн тохиолдолд w –н хувьд бага байх чиглэл рүү
бага багаар w-г шинэчлэн явна. Д...
Gradient Descent
Бодит амьдрал дээр алдагдлын функц маань олон параметруудаас хамаарах тул
алдагдлыг хамгийн бага байлгах ...
Бичмэл тоог таних
Оролт 28x28 пиксел
(=784 нейрон) зураг
28
28
Гаралтын давхарга
Y=[0,1,2, … 9]
15 нейрон бүхий далд
давха...
Гаралтын функц softmax
Softmax гаралтын функцын гаралтуудын нийлбэр 1 бөгөөд
classification буюу тухайн оролтыг ангилах ас...
Улам нарийвчлалыг сайжруулж
чадах уу?
• Хэдийгээр бидний хийсэн загварчлал маань маш хүчирхэг
боловч бүр илүү нарийвчлалыг...
Улам нарийвчлалыг сайжруулж
чадах уу?
• Хүн биет юмсыг харахдаа зөвхөн нэг цэгийг бус хэсэг
бүхлээр юмыг хардаг.
Үүнийг өө...
Улам нарийвчлалыг сайжруулж
чадах уу?
• Бодит зурган дээр филтер ашиглаж буй жишээ
Улам нарийвчлалыг сайжруулж
чадах уу?
• Convolution filter ашигласан ч хэт их мэдээлэл агуулах тул
Pooling(Оролт болсон да...
Улам нарийвчлалыг сайжруулж
чадах уу?
• Эцэст нь Convolution filter давхаргаа
оруулсан манай ерөнхий загварчлал маань
Алдартай Convolution Neural
Network
• LeNet
– Гараар бичигдсэн тоог 99%-с дээш нарийвцлалтайгаар таних
чадвартай
Neural Network-ийг туршиж үзмээр байвал доорх сайтуудаар зочилж үзнэ
үү.
• http://playground.tensorflow.org/
• https://tra...
Upcoming SlideShare
Loading in …5
×

Deep learning: Тооцоолон бодох машиныг яаж зураг ойлгодог болгох вэ?

4,085 views

Published on

Deep learning-н талаар сүүлийн хагас жил өөрийн судалж мэдсэнээ та бүхэнтэй хуваалцмаар санагдан slide-aa oрууллаа. Буруу орчуулсан болон алдаатай зүйл оруулсан байвал хэлж өгч туслаарай. Улам сайн сайн slide болгохын та бүхний санал онол хэрэг болно шүү. Анхаарал тавьсанд баярлалаа.

Published in: Engineering

Deep learning: Тооцоолон бодох машиныг яаж зураг ойлгодог болгох вэ?

  1. 1. Deep Learning Тооцоолон бодох машиныг яаж зураг ойлгодог болгох вэ?
  2. 2. AI буюу Хиймэл оюун Өнөөдрийн ярих хэсэг маань
  3. 3. Deep Learning ≈ Deep Neural Network • Deep Learning гэж юу вэ? • Биологийн мэдрэлийн сүлжээ буюу хүн болон амьтны төв мэдрэлийн системийг дуурайлган хийсэн математик загварчлал. • Эхэн үед Neural Network нэрээр судалгааны ажлууд хийгдэж байсан ч биологийн судалгааны ажлуудтай андуурах тохиолдлууд байсан тул Deep Learning нэрийн дор нэгтгэх болсон. • Supervised болон Unsupervised Learning гэсэн 2 төрөл бий.
  4. 4. Supervised эсвэл Unsupervised • Supervised Learning – Ямар нэг датаг оруулан өөрийн хүссэн гаралтыг авах(ямар нэг ангилалд оруулах)-ын тулд урьдчилан ангилан бэлдсэн сургалтын дата(Оролт болон гаралтыг хос болгон бэлдсэн дата)-г сургалтын дата гэж өгөн машинаар онцлог шинжийг суралцуулах. Урьдчилан ангилан бэлдсэн дата Сургалтын процессыг олон дахин давтах Алгоритм Сургалтын үр дүнг бусад датанд ашиглах
  5. 5. Supervised эсвэл Unsupervised • Unsupervised Learning – Урьдчилсан боловсруулалт болон ангилан ялгаагүй дата(Түүхий дата)-гаас ямар нэгэн түгээмэл онцлог шинжүүдийг машинаар өөрөөр нь олуулах . Түүхий дата Алгоритм Машины олсон онцлог шинж чанарууд
  6. 6. Зорилго • Тооцоолон бодох машиныг яаж зураг ойлгодог болгох вэ? Үүний тулд Supervised Learning дээр төвлөрч ярих болно.
  7. 7. • Хүн нэг зурагнаас юу дүрслэгдсэн байгааг амархан ойлгож таних чадвартай боловч үүнийг машинаар хийлгэх боломжтой юу гэсэн асуулт өнөөг хүртэл тавигдсаар ирсэн билээ. • Энэхүү асуултанд хариу өгөх Deep Learning-н талаар сурж мэдэцгээе. Тооцоолон бодох машиныг яаж зураг ойлгодог болгох вэ?
  8. 8. Агуулга • Тархи болон нейрон – Тархины талаар – Нейрон(мэдрэлийн эс)-н ажиллагаа • Neural Network – Neural Network болон математик загварчлал – Convolutional Neural Network Deep Learning нь тархины бүтэц болон үйл ажиллагаан дээр үндэслэгдсэн тул эхлээд тархины талаар жаахан судалъя. Тархины талаар мэдлээ тэгвэл хиймэл тархины талаар
  9. 9. • Тархины талаар – Тархины үйл ажиллагаа нь түүнийг бүрдүүлэгч олон тооны мэдрэлийн эс нейроны үйл ажиллагаатай нягт холбоотой. – Нейрон бүр нь бусад нейронтой холбоосууд үүсгэж, үүсгэн цахилгаан болон химийн мэдээлэл илгээдэг. Мөн нэг бүр нь маш нарийн төвөгтэй бүтэцтэй. – Хулганы тархи 5 сая эсээс, сармагчны тархи 10 тэрбум эсээс, дөнгөж төрсөн хүүхдийн тархи 100 тэрбум эсээс бүрддэг байна. Тархи болон нейрон
  10. 10. Нейрон • Нейрон – Бичил цахилгаан гүйдэлд цочрох чадвартай эс – Мэдээллийг хүлээн авах, боловсруулах, дамжуулах үйл ажиллагаа гүйцэтгэнэ • Бүтцийн хувьд: – Их бие (сома) – Мэдээллийг хүлээн авах, нэгтгэн дүгнэх – Аксон – мэдээллийг бусад эс рүү дамжуулах – Дендрит хэсгүүдтэй – Мэдээллийг хүлээн авах гол үүрэгтэй.
  11. 11. Синапс Нейрон хооронд мэдээлэл дамжуулдаг бүтцийг синапс гэнэ. Синапсын өмнөх мэдрэлийн эсэд байрлах синапсын товгор нь синапсын арын мэдрэлийн эсийн дендрит эсвэл эсийн биед байх жижиг хонхорт залгагдснаар синапс бий болно.
  12. 12. Хеббийн хууль “Нейрон дээрх синапсд өмнөх нейроны давтамжит ‘идэвхжилт’-ээс үүдэн тухайн нейронд цочрол үүссэн тохиолдолд тухайн синапсын мэдээлэл дамжуулах чадамж улам нэмэгдэнэ. Эсрэгээр удаан хугацаанд цочрол үүсэхгүй байвал синапсын мэдээлэл дамжуулах чадамж буурна.” Үүнийг хүний суралцах процесс хэлж болно :) Доналд. О. Хебб:The Organization of Behavior (1949)
  13. 13. Нейрон хэзээ идэвхжихвэ? • Нейрон нь бусад мэдрэлийн эсээс ирэх сэрэл(импульс)-ийг хүлээн авч идэвхжсэнээр тэрхүү импульсээ дараагийн нейронд дамжуулна. • Мөн дандаа дамжуулах бус нейронд тохиромжгүй импульсыг дамжуулахаас сэргийлэх механизм бас бий.
  14. 14. Нейрон хэзээ идэвхжих вэ? • Нейроны ажиллагаа нь идэвхжих үү үгүй юу гэсэн 1 юм уу 0 гэсэн дижитал хэлбэрээр илэрхийлэгдэх боломжтой. Идэвхжсэн синапсаас ирэх импульсын хүчээс саатуулах үүрэгтэй синапсаас ирэх импульсын хүчийг хассан утга нь тодорхой утгаас их байвал нейрон идэвхжинэ. Адил импульс дамжуулагдсан ч нейрон доторх импульсын хүч нь синапсаас шалтгаалан харилцан адилгүй!
  15. 15. • Нейроны идэвхжих нөхцөлийг математик хэлбэрт оруулбал: – Өдөөгдсөн синапсаас ирэх импульсын утга P – Саатуулах синапсаас ирэх импульсын утга M – Эцэст идэвхжих үгүйг шийдэх хязгаарын утга B P – M > B идэвхжинэ. P – M < B идэвхжихгүй. Нейрон хэзээ идэвхжих вэ?
  16. 16. P : 3+3+0 = 6 M: 2+0+2 = 4 P – M = 2>1 B=1 гэвэл Нейрон хэзээ идэвхжих вэ? Жишээлбэл Нэг нейроны ажиллагааг математик хэлбэрээр илэрхийлж чадаж байгаа юм чинь олон тооны нейроны сүлжээг математик загварчлалд оруулж чадах юм биш үү?
  17. 17. Нейроны сүлжээг математик загварчлал руу Муур Тархи шиг олон тооны хиймэл нейроноос бүрдэх сүлжээг математик загварчлалд оруулж чадвал тооцоолон бодох машиныг(үүнээс хойш машин)ухаалаг болгож доорх зургийг оруулахад “муур ” гэж таньдаг болгох боломжтой болно.
  18. 18. Нейроны сүлжээг математик загварчлал руу Үүнээс хойш тэгшитгэлийг хялбарчлахын тулд параметрүүд P болон М-г нэгтгэн Weight гээд Wi=[-2,3,-1,3,2,-2] B-н хасах утгыг bias гээд b=-1 Импульсыг оролт болгон Xi=[1,0,1,0,1,1] гэж тэмдэглэх болно.
  19. 19. Олон нейрон байх тохиолдолд X1 X2 X3 нейрон1 W1・XT + b1 > 0 нейрон2 W2・XT + b2 > 0 нейрон3 W3・XT + b3 > 0 Оролт X=[X1,X2,X3] Weight W1=[W11,W12,W13] bias b1 Weight W2=[W21,W22,W23] bias b2 Weight W3=[W31,W32,W33] bias b3 W11X1+W12X2+W13X3+b1 W21X1+W22X2+W23X3+b2 W31X1+W32X2+W33X3+b3 Матриц хэлбэрт бичвэл W11,W12,W13 X1 b1 W21,W22,W23 X2 + b2 = W31,W32,W33 X3 b3 Үүнийг ч гэсэн W・XT + b хэлбэрээр илэрхийлж болно!
  20. 20. Олон нейроныг ашиглавал X1 X2 Class A (y=1) Class B (y=0) • Олон нейроныг ашиглан доорх цэнхэр улаан элементүүдийг ялгаж үзье. • Улаан шугаман зураас татах хэлбэрээр амархан ялгах боловч бодит амьдрал дээр ихэнх зүйлс шугаман бус • Шугаман зураас татах хэлбэрээр ангилах боломжгүй үед бидэнд шугаман бус функц хэрэг болно.
  21. 21. Activation function(хөрвүүлэгч функц) Өмнөх тэгшитгэлүүдээс бид бүхэн дандаа шугаман функц ашиглаж ирсэн бол шугаман бус хэлбэр дүрсийг ялгахын тулд бидэнд шугаман бус үр дүн гаргах функц хэрэгтэй. y= f(b+Σwnxn) x1 x2 xm . . . y w1 w2 wm b  f Facebook-н лого? Function – ийн “f” шүү 
  22. 22. Activation function(хөрвүүлэгч функц) 1 1 1 1 1 1 -1 -1 -1 Good for classification Simple computation Continuous & Differentiable Threshold Function/ Hard Limiter Linear Function sigmoid Function Түгээмэл ашиглагдаж буй хөрвүүлэгч функц
  23. 23. Олон давхаргат бүтэцтэй нейроны сүлжээ (Deep Neural Network:DNN) X1 X2 X3 X4 H1 H2 H3 M1 M2 M3 M4 Y1 Y2 Одоо л нэг сүлжээ шиг харагдаж эхэллээ шүү! Оролтын давхарга X=[X1,X2,X3...] Гаралтын давхарга Y=[Y1,Y2,...] W=[WXH, WHM, WHY] b=[bH, bM, bY] WXH Улам нарийвчлалыг сайжруулахын тулд улам олон үе давхаргатай загварчлал хэрэгтэй
  24. 24. Deep Neural Network X1 X2 X3 X4 H1 H2 H3 M1 M2 M3 M4 Y1 Y2 Оролтын давхарга Гаралтын дав Далд давхарга Оролт болон гаралтаас бусад давхаргыг далд давхарга гэе.
  25. 25. Энэ хүртэл • Бид тархийг математик загварчлалд оруулж чадлаа. Одоо яах вэ? Бодит амьдрал дээрх ойлгомжтой бөгөөд хэцүү асуудлыг хиймэл оюунаар шийдүүлж үзэцгээе. Жишээлбэл: Хүний бичсэн тоог доорх хэлбэрээр өгөгдсөн үед хиймэл оюун маань “1” гэж таниж чадах уу?
  26. 26. Бичмэл тоог таньдаг болгохын тулд эхлээд машиныг сургах хэрэгтэй! Оролт 28x28 пиксел(=784 нейрон) хэмжээтэй маш олон тооны зургийг сургалтын дата болгон өгж тохиромжтой параметрүүдийг олно 28 28 Машиныг сургана гэдэг маань тохиромжит Weight, bias параметрүүдийг тооцоолж олох гэсэн үг. Үүний тулд эхлээд бидэнд маш их хэмжээний дата хэрэгтэй
  27. 27. Deep Neural Network –н тохиромжит параметрүүдийг олох аргачлал • Backpropagation – NN-н гаралтын утгаас хамааран тохиромжтой weight, bias параметрүүдийг олох • Loss Function – Гаралт оролтын ялгаа буюу алдагдлыг илэрхийлэх ямар нэгэн функцан илэрхийлэл. Хамгийн амархан жишээ: Дундаж квадрат алдаа • Gradient Descent – Гаралт оролтын ялгааг хамгийн бага байлгахын тулд алдааны функцыг ашиглан параметрүүдийг бага багаар өөрчлөн(суралцах) алдааны хамгийн бага утга руу дөхөх арга Бүгдийнх талаар тайлбарлах гэвэл улам төвөгтэй болох тул энэ удаад маань хамгийн чухал Gradient Descent –н талаар Тайлбарлая. Улам мэдмээр байгаа бол google pls :)
  28. 28. Gradient Descent Алдагдлын функцийг J(w) гэсэн тохиолдолд w –н хувьд бага байх чиглэл рүү бага багаар w-г шинэчлэн явна. Доорх тохиолдолд α нь суралцах нэгж(Learning Rate) болно. Энд Backpropagation ашиглан -г амархан олох боломжтой
  29. 29. Gradient Descent Бодит амьдрал дээр алдагдлын функц маань олон параметруудаас хамаарах тул алдагдлыг хамгийн бага байлгах параметруудыг олохгүй байх магадлал бий. Хамгийн бага утга Тодорхой муж дахь хамгийн бага утга
  30. 30. Бичмэл тоог таних Оролт 28x28 пиксел (=784 нейрон) зураг 28 28 Гаралтын давхарга Y=[0,1,2, … 9] 15 нейрон бүхий далд давхарга Энэ сүлжээний нарийвчлал 95%! Тохиромжтой параметрүүдийг олж чадсан тохиолдолд
  31. 31. Гаралтын функц softmax Softmax гаралтын функцын гаралтуудын нийлбэр 1 бөгөөд classification буюу тухайн оролтыг ангилах асуудлыг шийдэхэд түгээмэл ашиглагддаг. Softmax-с өөр функцууд мөн бий. 0.50.3 0.15 0.05 0 1 2 3 4 5 6 7 8 9 Нейроны үр дүнгээс 5 дах нейроны утга хамгийн их ба цифр маань 5 байх магадлалыг(50%) илэрхийлж байна гэж ойлгож болно. Түүнчлэн бусад үр дүнгээс харахад оролт маань 3 болон 6, 8 ялимгүй төстэй гэж хэлж болохоор байна.
  32. 32. Улам нарийвчлалыг сайжруулж чадах уу? • Хэдийгээр бидний хийсэн загварчлал маань маш хүчирхэг боловч бүр илүү нарийвчлалыг дээшлүүлэх боломж бий. Жишээлбэл доорх зургийг ажиглавал хүн бол баруун дээд өнцгөөс зүүн доод хэсэг рүү чиглэсэн онцлогийг төвөггүй анзаарна. Эсрэгээр машин маань зөвхөн 1 пикселийг харж байгаа тул энэ онцлогийг анзааралгүй эцэстээ дүрсийг буруу таних магадлалтай!
  33. 33. Улам нарийвчлалыг сайжруулж чадах уу? • Хүн биет юмсыг харахдаа зөвхөн нэг цэгийг бус хэсэг бүхлээр юмыг хардаг. Үүнийг өөрсдийн загварчлалдаа оруулахын тулд Convolution filter(матриц филтер)-ийг зургийн тодорхой хэсэгт ашиглавал янз бүрийн ерөнхий онцлогуудыг мэдэх боломжтой болно Convolution filter
  34. 34. Улам нарийвчлалыг сайжруулж чадах уу? • Бодит зурган дээр филтер ашиглаж буй жишээ
  35. 35. Улам нарийвчлалыг сайжруулж чадах уу? • Convolution filter ашигласан ч хэт их мэдээлэл агуулах тул Pooling(Оролт болсон датагийн хэмжээг багасгах) ашиглан улам ерөнхий онцлог болсон мэдээллийг ашиглах боломжтой Жишээ : Max Pooling(2х2 хэмжээтэй матрицын хамгийн их утгыг хадгалж үлдэх) Max Pooling Тооцоолж олох параметрүүдийн тоог багасгах сайн талтай.
  36. 36. Улам нарийвчлалыг сайжруулж чадах уу? • Эцэст нь Convolution filter давхаргаа оруулсан манай ерөнхий загварчлал маань
  37. 37. Алдартай Convolution Neural Network • LeNet – Гараар бичигдсэн тоог 99%-с дээш нарийвцлалтайгаар таних чадвартай
  38. 38. Neural Network-ийг туршиж үзмээр байвал доорх сайтуудаар зочилж үзнэ үү. • http://playground.tensorflow.org/ • https://transcranial.github.io/keras-js/ Artificial Neural Network

×