Mga neural network. Saan patungo ang lahat ng ito?

Ang artikulo ay binubuo ng dalawang bahagi:

  1. Isang maikling paglalarawan ng ilang mga arkitektura ng network para sa pagtuklas ng bagay sa mga larawan at pagse-segment ng larawan na may pinakamadaling maunawaan na mga link sa mga mapagkukunan para sa akin. Sinubukan kong pumili ng mga paliwanag sa video at mas mabuti sa Russian.
  2. Ang ikalawang bahagi ay isang pagtatangka upang maunawaan ang direksyon ng pag-unlad ng mga arkitektura ng neural network. At mga teknolohiyang nakabatay sa kanila.

Mga neural network. Saan patungo ang lahat ng ito?

Figure 1 – Ang pag-unawa sa mga arkitektura ng neural network ay hindi madali

Nagsimula ang lahat sa pamamagitan ng paggawa ng dalawang demo application para sa pag-uuri at pagtuklas ng bagay sa isang Android phone:

  • Back-end na demo, kapag ang data ay naproseso sa server at ipinadala sa telepono. Pag-uuri ng larawan ng tatlong uri ng mga oso: kayumanggi, itim at teddy.
  • Demo sa harapkapag ang data ay naproseso sa telepono mismo. Detection ng mga bagay (object detection) ng tatlong uri: hazelnuts, figs at date.

Mayroong pagkakaiba sa pagitan ng mga gawain ng pag-uuri ng imahe, pagtuklas ng bagay sa isang imahe at pagkakahati ng imahe. Samakatuwid, nagkaroon ng pangangailangan upang malaman kung aling mga arkitektura ng neural network ang nakakakita ng mga bagay sa mga imahe at kung alin ang maaaring i-segment. Natagpuan ko ang mga sumusunod na halimbawa ng mga arkitektura na may pinakamaliwanag na link sa mga mapagkukunan para sa akin:

  • Isang serye ng mga arkitektura batay sa R-CNN (Rmga rehiyon na may Convolution Neural Nmga feature ng etworks): R-CNN, Mabilis na R-CNN, Mas mabilis na R-CNN, Mask R-CNN. Upang makita ang isang bagay sa isang imahe, ang mga bounding box ay inilalaan gamit ang mekanismo ng Region Proposal Network (RPN). Sa una, ginamit ang mas mabagal na mekanismo ng Selective Search sa halip na RPN. Pagkatapos ang mga napiling limitadong rehiyon ay ipapakain sa input ng isang maginoo na neural network para sa pag-uuri. Ang arkitektura ng R-CNN ay may tahasang "para sa" na mga loop sa mga limitadong rehiyon, na may kabuuang hanggang 2000 na tumatakbo sa pamamagitan ng panloob na network ng AlexNet. Ang mga tahasang "para sa" na mga loop ay nagpapabagal sa bilis ng pagproseso ng imahe. Ang bilang ng mga tahasang loop na tumatakbo sa panloob na neural network ay bumababa sa bawat bagong bersyon ng arkitektura, at dose-dosenang iba pang mga pagbabago ang ginawa para mapabilis at palitan ang gawain ng object detection ng object segmentation sa Mask R-CNN.
  • YOLO (You Only Look Once) ay ang unang neural network na kumikilala ng mga bagay sa real time sa mga mobile device. Natatanging tampok: pagkilala sa mga bagay sa isang pagtakbo (isang beses lang tumingin). Iyon ay, sa arkitektura ng YOLO ay walang mga tahasang "para" na mga loop, kaya naman mabilis na gumagana ang network. Halimbawa, ang pagkakatulad na ito: sa NumPy, kapag nagsasagawa ng mga operasyon na may mga matrice, wala ring tahasang "para" na mga loop, na sa NumPy ay ipinapatupad sa mas mababang antas ng arkitektura sa pamamagitan ng C programming language. Gumagamit ang YOLO ng grid ng mga paunang natukoy na bintana. Upang maiwasang matukoy ang parehong bagay nang maraming beses, ginagamit ang window overlap coefficient (IoU). Iinterseksyon over Union). Ang arkitektura na ito ay nagpapatakbo sa isang malawak na hanay at may mataas katatagan: Ang isang modelo ay maaaring sanayin sa mga litrato ngunit mahusay pa rin ang pagganap sa mga iginuhit ng kamay na mga painting.
  • SSD (Single Smainit na MultiBox Detector) – ang pinakamatagumpay na "mga hack" ng arkitektura ng YOLO ay ginagamit (halimbawa, hindi maximum na pagsugpo) at ang mga bago ay idinagdag upang gawing mas mabilis at mas tumpak ang neural network. Natatanging tampok: pagkilala sa mga bagay sa isang pagtakbo gamit ang isang ibinigay na grid ng mga bintana (default na kahon) sa pyramid ng imahe. Ang image pyramid ay naka-encode sa convolution tensor sa pamamagitan ng sunud-sunod na convolution at pooling operations (sa max-pooling operation, bumababa ang spatial na dimensyon). Sa ganitong paraan, parehong malaki at maliit na mga bagay ay tinutukoy sa isang network run.
  • MobileSSD (mobileNetV2+ SSD) ay isang kumbinasyon ng dalawang neural network architecture. Unang network MobileNetV2 mabilis na gumagana at pinatataas ang katumpakan ng pagkilala. Ginagamit ang MobileNetV2 sa halip na VGG-16, na orihinal na ginamit sa orihinal na artikulo. Tinutukoy ng pangalawang SSD network ang lokasyon ng mga bagay sa larawan.
  • SqueezeNet – isang napakaliit ngunit tumpak na neural network. Sa sarili nito, hindi nito malulutas ang problema ng pagtuklas ng bagay. Gayunpaman, maaari itong magamit sa isang kumbinasyon ng iba't ibang mga arkitektura. At ginagamit sa mga mobile device. Ang natatanging tampok ay ang data ay unang na-compress sa apat na 1Γ—1 convolutional filter at pagkatapos ay pinalawak sa apat na 1Γ—1 at apat na 3Γ—3 convolutional filter. Ang isang naturang pag-ulit ng compression-expansion ng data ay tinatawag na "Fire Module".
  • DeepLab (Semantic Image Segmentation with Deep Convolutional Nets) – pagse-segment ng mga bagay sa larawan. Ang isang natatanging tampok ng arkitektura ay dilated convolution, na nagpapanatili ng spatial na resolusyon. Sinusundan ito ng post-processing stage ng mga resulta gamit ang graphical probabilistic model (conditional random field), na nagbibigay-daan sa iyong alisin ang maliit na ingay sa segmentation at pagbutihin ang kalidad ng naka-segment na imahe. Sa likod ng kakila-kilabot na pangalan na "graphical probabilistic model" ay nagtatago ng isang kumbensyonal na filter na Gaussian, na tinatantya ng limang puntos.
  • Sinubukan kong alamin ang device RefineDet (Single-Shot Linanginment Neural Network para sa Bagay Detection), ngunit hindi ko gaanong naintindihan.
  • Tiningnan ko rin kung paano gumagana ang teknolohiyang "pansin": video1, video2, video3. Ang isang natatanging tampok ng arkitektura ng "pansin" ay ang awtomatikong pagpili ng mga rehiyon ng pagtaas ng atensyon sa imahe (RoI, Regions of Iinteres) gamit ang isang neural network na tinatawag na Attention Unit. Ang mga rehiyon ng tumaas na atensyon ay katulad ng mga bounding box, ngunit hindi katulad ng mga ito, hindi sila naayos sa larawan at maaaring may malabong mga hangganan. Pagkatapos, mula sa mga rehiyon ng mas mataas na atensyon, ang mga palatandaan (mga tampok) ay nakahiwalay, na "pinakain" sa paulit-ulit na mga neural network na may mga arkitektura LSDM, GRU o Vanilla RNN. Ang mga paulit-ulit na neural network ay nasusuri ang kaugnayan ng mga tampok sa isang pagkakasunud-sunod. Ang mga paulit-ulit na neural network ay unang ginamit upang isalin ang teksto sa ibang mga wika, at ngayon ay para sa pagsasalin mga imahe sa teksto ΠΈ teksto sa larawan.

Habang ginalugad natin ang mga arkitektura na ito Napagtanto ko na wala akong naiintindihan. At hindi na ang aking neural network ay may mga problema sa mekanismo ng atensyon. Ang paglikha ng lahat ng mga arkitektura na ito ay parang isang uri ng malaking hackathon, kung saan nakikipagkumpitensya ang mga may-akda sa mga hack. Ang hack ay isang mabilis na solusyon sa isang mahirap na problema sa software. Iyon ay, walang nakikita at naiintindihan na lohikal na koneksyon sa pagitan ng lahat ng mga arkitektura na ito. Ang lahat ng nagbubuklod sa kanila ay isang hanay ng mga pinakamatagumpay na hack na hiniram nila sa isa't isa, kasama ang isang karaniwan para sa lahat. closed-loop convolution na operasyon (error backpropagation, backpropagation). Hindi sistema ng pag-iisip! Hindi malinaw kung ano ang babaguhin at kung paano i-optimize ang mga kasalukuyang tagumpay.

Bilang resulta ng kakulangan ng lohikal na koneksyon sa pagitan ng mga hack, ang mga ito ay lubhang mahirap na matandaan at ilapat sa pagsasanay. Ito ay pira-pirasong kaalaman. Sa pinakamainam, ang ilang mga kawili-wili at hindi inaasahang mga sandali ay naaalala, ngunit karamihan sa kung ano ang naiintindihan at hindi maintindihan ay nawawala sa memorya sa loob ng ilang araw. Magiging mabuti kung sa isang linggo ay naaalala mo ang hindi bababa sa pangalan ng arkitektura. Ngunit ilang oras at kahit na mga araw ng oras ng pagtatrabaho ang ginugol sa pagbabasa ng mga artikulo at panonood ng mga review ng video!

Mga neural network. Saan patungo ang lahat ng ito?

Figure 2 - Zoo ng Neural Networks

Karamihan sa mga may-akda ng mga artikulong pang-agham, sa aking personal na opinyon, ay ginagawa ang lahat na posible upang matiyak na kahit na ang pira-pirasong kaalaman na ito ay hindi naiintindihan ng mambabasa. Ngunit ang mga participial na parirala sa sampung linyang pangungusap na may mga pormula na kinuha "out of thin air" ay isang paksa para sa isang hiwalay na artikulo (problema isapubliko o mawala).

Para sa kadahilanang ito, may pangangailangan na i-systematize ang impormasyon gamit ang mga neural network at, sa gayon, dagdagan ang kalidad ng pag-unawa at pagsasaulo. Samakatuwid, ang pangunahing paksa ng pagsusuri ng mga indibidwal na teknolohiya at arkitektura ng mga artipisyal na neural network ay ang sumusunod na gawain: alamin kung saan patungo ang lahat, at hindi ang device ng anumang partikular na neural network nang hiwalay.

Saan patungo ang lahat ng ito? Pangunahing resulta:

  • Bilang ng mga startup ng machine learning sa nakalipas na dalawang taon nahulog agad. Posibleng dahilan: "hindi na bago ang mga neural network."
  • Kahit sino ay maaaring lumikha ng isang gumaganang neural network upang malutas ang isang simpleng problema. Upang gawin ito, kumuha ng isang handa na modelo mula sa "modelo zoo" at sanayin ang huling layer ng neural network (paglipat ng pag-aaral) sa handa na data mula sa Google Dataset Search o mula sa 25 libong Kaggle dataset sa libre ulap Jupyter Notebook.
  • Nagsimulang lumikha ang malalaking tagagawa ng mga neural network "modelong zoo" (modelong zoo). Gamit ang mga ito, mabilis kang makakagawa ng isang komersyal na application: TF Hub para sa TensorFlow, MMDetection para sa PyTorch, Detectron para sa Caffe2, chainer-modelzoo para sa Chainer at mga iba.
  • Mga neural network na gumagana totoong oras (real-time) sa mga mobile device. Mula 10 hanggang 50 frame bawat segundo.
  • Ang paggamit ng mga neural network sa mga telepono (TF Lite), sa mga browser (TF.js) at sa gamit sa bahay (IoT, Iinternet of Things). Lalo na sa mga teleponong sumusuporta na sa mga neural network sa antas ng hardware (neural accelerators).
  • "Ang bawat kagamitan, item ng damit, at marahil kahit na pagkain ay magkakaroon IP-v6 address at makipag-usap sa isa't isa" - Sebastian Thrun.
  • Nagsimula nang dumami ang bilang ng mga publikasyon sa machine learning lumampas sa batas ni Moore (nagdodoble bawat dalawang taon) mula noong 2015. Malinaw, kailangan namin ng mga neural network para sa pagsusuri ng mga artikulo.
  • Ang mga sumusunod na teknolohiya ay nakakakuha ng katanyagan:
    • PyTorch – mabilis na lumalago ang kasikatan at tila naaabutan ang TensorFlow.
    • Awtomatikong pagpili ng mga hyperparameter AutoML – ang kasikatan ay lumalaki nang maayos.
    • Unti-unting pagbaba sa katumpakan at pagtaas sa bilis ng pagkalkula: malabo na lohika, mga algorithm pagpapalakas, hindi eksaktong (tinatayang) kalkulasyon, quantization (kapag ang mga timbang ng neural network ay na-convert sa mga integer at quantized), neural accelerators.
    • Pagsasalin mga imahe sa teksto ΠΈ teksto sa larawan.
    • paglikha Mga XNUMXD na bagay mula sa video, ngayon sa totoong oras.
    • Ang pangunahing bagay tungkol sa DL ay mayroong maraming data, ngunit ang pagkolekta at pag-label nito ay hindi madali. Samakatuwid, umuunlad ang markup automation (awtomatikong anotasyon) para sa mga neural network na gumagamit ng mga neural network.
  • Sa mga neural network, biglang naging Computer Science pang-eksperimentong agham at bumangon krisis sa muling paggawa.
  • Ang pera ng IT at ang katanyagan ng mga neural network ay lumitaw nang sabay-sabay nang ang pag-compute ay naging isang halaga sa merkado. Ang ekonomiya ay nagbabago mula sa ginto at currency na ekonomiya sa gold-currency-computing. Tingnan ang aking artikulo sa ekonomiko at ang dahilan ng paglitaw ng pera sa IT.

Unti-unting lumilitaw ang isang bago Pamamaraan ng programming ng ML/DL (Machine Learning & Deep Learning), na nakabatay sa pagkatawan sa programa bilang isang hanay ng mga sinanay na modelo ng neural network.

Mga neural network. Saan patungo ang lahat ng ito?

Figure 3 – ML/DL bilang isang bagong pamamaraan ng programming

Gayunpaman, hindi ito lumitaw "teorya ng neural network", kung saan maaari kang mag-isip at magtrabaho nang sistematiko. Ang tinatawag na ngayong "teorya" ay talagang eksperimental, heuristic algorithm.

Mga link sa aking at iba pang mapagkukunan:

Salamat sa iyo!

Pinagmulan: www.habr.com

Magdagdag ng komento