Deep learning

**Гүнзгий сургалт** (*гүний сургалт*; ) — Машин сургалтын (удирдлагатай, хагас удирдлагатай, удирдлагагүй, бэхэлгээт) аргуудын нэг бүлэг бөгөөд өгсөн датаны онцлог() дээр суурилсан сургалт хийдэг. Ямар нэг тодорхой проблемд зориулсан алгоритм ашигладаггүйгээрээ онцлог. Гүний сургалтын ихэнхи арга нь 1980-аад оны үед бий болсон ба тухайн үед гарсан үр дүн тийм ч хангалттай сайн байгаагүй юм. 2000-аад оны дундуур компьютерийн хүчин чадал тэр дундаа график картын чадал сайжирснаар их хэмжээний нейрон сүлжээг загварчлах боловсруулах боломжтой болсноор машин хөрвүүлэлт, зураг дүрс, дуу таних мөн автоматаар тоглоом тоглох технологид үсрэнгүй өөрчлөлт авчирсан.

## Түүх 
1986 онд шинжлэх ухааны сэтгүүлүүдэд Рина Дехтерийн ажил хэвлэгдэж гүний сургалт гэх нэр томъёо гарч ирсэн хэдий ч өмнө нь 1965 онд ЗХУын эрдэмтэд болох Алексей Григорьевич Ивахненко болон Валентин Григорьевич Лапа нарын бүтээл болох "Кибернетикийн таамагладаг төхөөрөмжүүд"(орос. Кибернетические предсказывающие устройства) нэртэй номонд уг арга дэлгэрэнгүйгээр мөн алгоримтайгаа хэвлэгдэж олны хүртээл болсон.
 
1989 онд Ян Лекун backpropagation аргаар гараар бичсэн ZIP-код таних програмд амжилттай ашигласан боловч уг аргын сургалтын хурд удаан, сургалтанд ашиглагдах параметрүүд болон градиенттэй холбоотой асуудлууд байгааг 1991 онд Иорген Шмидхубер болон Сепп Хохрейтер нар илрүүлсэн байна. Үүнээс үүдээд 1990ээд оны дараагаар байр сууриа SVM(туслах/дэмжлэг векторын арга) аргад алджээ.
 
2000 оны дунд үеээс график процессорууд ихэд дэлгэрч хурд чадал нь сайжирснаар дээрх проблемуудаас ангижрах зам нээгдсэн. Хинтон, Салахутдинов, Осиндеро, Тэ нарын хэвлүүлсэн материалд их хэмжээний датаг гүний сургалтанд амжилттай ашигласнаар нейрон сүлжээг ашиглан хиймэл оюун ухаан хийх арга нэг алхамаар урагшилсан гэж хэлж болно. 

2012 оны үед хэсэг орос болон канад эрдэмтдийн бүтээсэн гүний сургалтын архитектур(60 сая параметр, 500000 нейрон, 5 convolutional layer) нь ImageNet уралдаанд бусдаас хол илүү байж бусад судлаачдын анхаарал татсанаар сүүлийн жилүүдэд судлаачид ихээр гүний аргад судалгаа хийх болсон билээ.

## Тодорхойлолт 
Гүнзгий сургалт нь машин сургалтын нэг бүлэг аргууд бөгөөд:

* олон давхаргат/үет шугаман бус фильтрүүдийн системийн тусламжтай онцлогийг(англ. feature) гарган авдаг. Давхарга болгоны оролт нь өмнөх давхаргын гаралтуудтай холбогдсон байна. Тиймээс давхарга болгон дээр тухайн датаны параметр, онцлогийг гаргаж авахад чиглэдэг бөгөөд өмнөх онцлогуудаасаа уламжлагдсан мэт байдаг.
* машин сургалтын том сэдэв болох датаны feature learning хэсэгт мөн хамаардаг.
## Агуулга 
Дараах алгоритмуудыг ашиглагддаг:

* Удирдлагагүй сургалт (хязгаарлагдмал Больцманы машин ашиглаад урьдчилан сургах, autoencoder, deep belief network, Generative adversarial network хийхэд ашиглана)
* Удирдлагат сургалт (дүрс танихад зориулаад convolutional neural network ашиглах)
* Цаг хугацаанд суурилсан рекуррент нейроны сүлжээ

Эдгээр аргуудыг нийлүүлээд хиймэл оюун ухааны төрөл бүрийн проблемийг шийдэхэд ашигладаг.

Гүний сургалт бол зүгээр нейрон сүлжээний мода болгож эсвэл ANN-г ребрендинг хийж буй нэршил хэмээн зарим судлаачид үздэг.
## Хөгжүүлэлт болон амжилт 
Гүнзгий сургалтыг одоогийн байдлаар доорх ажиллагаанд амжилттай ашиглаад байна:

* Автоматаар хар цагаан зургийг өнгөтэй болгох. (Automatic Colorization of Black and White Images)
* Автоматаар дуугүй видеонд дуу оруулах. (Automatically Adding Sounds To Silent Movies)
* Автоматаар машин орчуулга хийх. (Automatic Machine Translation)
* Зурган дээрх дүрс ангилалт. (Object Classification and Detection in Photographs)
* Автоматаар гар бичвэр генерац хийх. (Automatic Handwriting Generation)
* Автомат текст генерац хийх. (Automatic Text Generation)
* Автоматаар өгсөн зурганд текст тайлбар хийх. (Automatic Image Caption Generation)
* Автоматаар тоглоом тоглох (AlphaGo, Dota, Super Mario, г.м) (Automatic Game Playing)

## Сангууд 
Програмчлалын хэлнүүд болох С++, Python, Java дээр нээлттэй эхийн бүлгэм болон байгууллагуудын гаргасан доорх үнэгүй сангууд бий:

* TensorFlow (C++, Python) (Google)
* Caffe  (Berkeley Vision and Learning Center)
* Torch (C, Lua) (Community мөн Facebook-Framework Torchnet)
* Microsoft Cognitive Toolkit (C++) 
* PaddlePaddle (Python) (Baidu)
* OpenNN (C++), ANN-д зориулсан.
* Theano (Python) (Université de Montréal, Канад улс)
* Keras (Python, v1.4.0 -c эхлээд TensorFlow API агуулдаг болсон)
* Deeplearning4j (Java) (Skymind)

## Холбоос 
* Глубокое обучение для новичков: распознаем рукописные цифры — Хабрахабр, 07/11/2016.
* Глубокое обучение для новичков: распознаем изображения с помощью сверточных сетей — Хабрахабр, 14/11/2016.
* Глубокое обучение для новичков: тонкая настройка нейронной сети — Хабрахабр, 22/11/2016.
### Критик 
* Деконструкция мифа о глубоком обучении. Лекция в Яндексе Сергея Бартунова — Хабрахабр, 20/11/2016.
* Ограничения глубинного обучения и будущее — Хабрахабр, 07/08/2017.
* Различия между искусственным интеллектом, машинным обучением и глубоким обучением

Ангилал:Машины сургалт