Skip to content

Latest commit

 

History

History
60 lines (32 loc) · 5.45 KB

File metadata and controls

60 lines (32 loc) · 5.45 KB

Convolutional Neural Networks

Nakita na natin dati na ang neural networks ay mahusay sa pagproseso ng mga imahe, at kahit ang isang layer na perceptron ay kayang kilalanin ang mga handwritten digits mula sa MNIST dataset na may makatwirang katumpakan. Gayunpaman, ang MNIST dataset ay espesyal, dahil lahat ng digits ay nakasentro sa loob ng imahe, na nagpapadali sa gawain.

Sa totoong buhay, gusto nating makilala ang mga bagay sa isang larawan kahit saan man ang eksaktong lokasyon nito sa imahe. Ang computer vision ay naiiba sa pangkalahatang classification, dahil kapag sinusubukan nating hanapin ang isang partikular na bagay sa larawan, ini-scan natin ang imahe upang hanapin ang mga tiyak na pattern at ang kanilang mga kombinasyon. Halimbawa, kapag naghahanap ng pusa, maaaring una nating hanapin ang mga horizontal lines na maaaring bumuo ng mga bigote, at pagkatapos ay ang tiyak na kombinasyon ng mga bigote ang magsasabi sa atin na ito ay larawan ng isang pusa. Ang relatibong posisyon at presensya ng mga tiyak na pattern ay mahalaga, hindi ang eksaktong posisyon nito sa imahe.

Upang makuha ang mga pattern, gagamit tayo ng konsepto ng convolutional filters. Tulad ng alam mo, ang isang imahe ay kinakatawan ng isang 2D-matrix, o isang 3D-tensor na may color depth. Ang pag-aapply ng filter ay nangangahulugan na kukuha tayo ng medyo maliit na filter kernel matrix, at para sa bawat pixel sa orihinal na imahe, kinakalkula natin ang weighted average kasama ang mga kalapit na puntos. Maaari nating tingnan ito bilang isang maliit na bintana na gumagalaw sa buong imahe, at ina-average ang lahat ng pixels ayon sa mga weights sa filter kernel matrix.

Vertical Edge Filter Horizontal Edge Filter

Larawan ni Dmitry Soshnikov

Halimbawa, kung mag-aapply tayo ng 3x3 vertical edge at horizontal edge filters sa MNIST digits, makakakuha tayo ng mga highlight (hal. mataas na values) kung saan may mga vertical at horizontal edges sa orihinal na imahe. Kaya ang dalawang filters na ito ay maaaring gamitin upang "hanapin" ang mga edges. Katulad nito, maaari tayong magdisenyo ng iba't ibang filters upang hanapin ang iba pang low-level patterns:

Larawan ng Leung-Malik Filter Bank

Gayunpaman, habang maaari nating i-disensyo ang mga filters upang manu-manong makuha ang ilang mga pattern, maaari rin nating i-disensyo ang network sa paraang matututo ito ng mga pattern nang awtomatiko. Ito ang isa sa mga pangunahing ideya sa likod ng CNN.

Pangunahing ideya sa likod ng CNN

Ang paraan ng paggana ng CNN ay batay sa mga sumusunod na mahalagang ideya:

  • Ang convolutional filters ay maaaring kumuha ng mga pattern
  • Maaari nating i-disensyo ang network sa paraang ang filters ay matututo nang awtomatiko
  • Maaari nating gamitin ang parehong paraan upang hanapin ang mga pattern sa high-level features, hindi lamang sa orihinal na imahe. Kaya ang feature extraction ng CNN ay gumagana sa isang hierarchy ng features, simula sa low-level pixel combinations, hanggang sa mas mataas na level na kombinasyon ng mga bahagi ng larawan.

Hierarchical Feature Extraction

Larawan mula sa isang papel ni Hislop-Lynch, batay sa kanilang pananaliksik

✍️ Mga Gawain: Convolutional Neural Networks

Ipagpatuloy natin ang pag-aaral kung paano gumagana ang convolutional neural networks, at kung paano natin makakamit ang trainable filters, sa pamamagitan ng pagtrabaho sa mga kaukulang notebooks:

Pyramid Architecture

Karamihan sa mga CNN na ginagamit para sa pagproseso ng imahe ay sumusunod sa tinatawag na pyramid architecture. Ang unang convolutional layer na ina-apply sa orihinal na mga imahe ay karaniwang may medyo mababang bilang ng filters (8-16), na tumutugma sa iba't ibang pixel combinations, tulad ng horizontal/vertical lines ng strokes. Sa susunod na level, binabawasan natin ang spatial dimension ng network, at pinapataas ang bilang ng filters, na tumutugma sa mas maraming posibleng kombinasyon ng simpleng features. Sa bawat layer, habang papalapit tayo sa final classifier, bumababa ang spatial dimensions ng imahe, at tumataas ang bilang ng filters.

Halimbawa, tingnan natin ang arkitektura ng VGG-16, isang network na nakamit ang 92.7% accuracy sa ImageNet's top-5 classification noong 2014:

ImageNet Layers

ImageNet Pyramid

Larawan mula sa Researchgate

Pinakamahusay na Kilalang CNN Architectures

Ipagpatuloy ang pag-aaral tungkol sa pinakamahusay na kilalang CNN architectures