Згорткавыя нейронавыя сеткі (CNN): Уводзіны

Згорткавыя нейронавыя сеткі прапануюць больш маштабаваны спосаб распазнавання аб’ектаў і задач класіфікацыі малюнкаў.

У свеце тэхналогій адбываецца шмат дасягненняў. Штучны інтэлект і машыннае навучанне – некаторыя з распаўсюджаных з’яў, пра якія вы можаце часта чуць.

У цяперашні час гэтыя тэхналогіі выкарыстоўваюцца амаль ва ўсіх галінах: ад маркетынгу, электроннай камерцыі і распрацоўкі праграмнага забеспячэння да банкаўскай справы, фінансаў і медыцыны.

AI і ML – гэта велізарныя вобласці, і прыкладаюцца намаганні для пашырэння іх прымянення для вырашэння шматлікіх праблем рэальнага свету. Вось чаму вы можаце ўбачыць шмат галін ўнутры гэтых тэхналогій; ML з’яўляецца часткай самога штучнага інтэлекту.

Згорткавыя нейронныя сеткі – адна з галін ІІ, якая становіцца папулярнай у нашы дні.

У гэтым артыкуле я распавяду пра тое, што такое CNN, як яны працуюць і іх карысць у сучасным свеце.

Давайце пагрузімся!

Што такое згорткавая нейронавая сетка?

Сверточная нейронавая сетка (ConvNet або CNN) – гэта штучная нейронавая сетка (ANN), якая выкарыстоўвае алгарытмы глыбокага навучання для аналізу малюнкаў, класіфікацыі візуальных элементаў і выканання задач камп’ютэрнага зроку.

CNN выкарыстоўвае прынцыпы лінейнай алгебры, такія як множанне матрыц, для выяўлення шаблонаў у выяве. Паколькі гэтыя працэсы ўключаюць складаныя вылічэнні, яны патрабуюць графічных працэсараў (GPU) для навучання мадэляў.

Кажучы простымі словамі, CNN выкарыстоўвае алгарытмы Deep Learning для атрымання ўваходных даных, такіх як відарысы, і прысваення важнасці розным аспектам гэтага відарыса ў выглядзе зрушэнняў і вагавых паказчыкаў, якія можна даведацца. Такім чынам, CNN можа адрозніваць выявы або класіфікаваць іх.

CNN: Кароткая гісторыя

Паколькі згорткавая нейронавая сетка – гэта штучная нейронавая сетка, важна паўтарыць нейронныя сеткі.

У галіне вылічэнняў нейронавая сетка з’яўляецца часткай машыннага навучання (ML) з выкарыстаннем алгарытмаў глыбокага навучання. Гэта падобна на схемы злучэння нейронаў у чалавечым мозгу. Штучныя нейронныя сеткі таксама чэрпаюць натхненне з таго, як уладкована глядзельная кара.

Такім чынам, розныя тыпы нейронавых сетак або штучных нейронавых сетак (ШНН) выкарыстоўваюцца для розных мэт. Адным з іх з’яўляецца CNN, які выкарыстоўваецца для выяўлення і класіфікацыі малюнкаў і шмат іншага. Ён быў прадстаўлены дактарантам Янам Лекунам у 1980-х гадах.

Ранняя версія CNN – LeNet, названая ў гонар Лекуна, была здольная распазнаваць рукапісныя лічбы. Затым яго выкарыстоўвалі ў банкаўскіх і паштовых паслугах для чытання лічбаў на чэках і паштовых індэксаў, напісаных на канвертах.

Аднак гэтай ранняй версіі не хапала маштабавання; такім чынам, CNN не выкарыстоўваліся ў штучным інтэлекце і камп’ютэрным зроку. Акрамя таго, патрабаваліся значныя вылічальныя рэсурсы і дадзеныя для больш эфектыўнай працы з вялікімі выявамі.

Акрамя таго, у 2012 годзе AlexNet перагледзела глыбокае навучанне, якое выкарыстоўвае нейронавыя сеткі, якія складаюцца з некалькіх слаёў. Прыблізна ў гэты час тэхналогія ўдасканальвалася, з’яўляліся вялікія наборы даных і цяжкія вылічальныя рэсурсы, якія дазвалялі ствараць складаныя CNN, здольныя эфектыўна выконваць дзеянні камп’ютэрнага зроку.

Пласты ў CNN

Давайце разбярэмся з рознымі слаямі ў CNN. Павелічэнне слаёў у CNN павялічыць яго складанасць і дазволіць выявіць больш аспектаў або абласцей выявы. Пачынаючы з простых функцый, ён становіцца здольным выяўляць такія складаныя асаблівасці, як форма аб’екта і больш буйныя элементы, пакуль, нарэшце, не можа выявіць выяву.

Праверце гэта:  7 лепшых праграм для кіравання друкам для бізнесу

Згорткавы пласт

Першы ўзровень CNN – гэта згорткавы ўзровень. Гэта асноўны будаўнічы блок CNN, дзе адбываецца большасць вылічэнняў. Яму патрабуецца менш кампанентаў, такіх як ўваходныя даныя, карта аб’ектаў і фільтр.

CNN таксама можа мець дадатковыя згорткавыя пласты. Гэта робіць структуру CNN іерархічнай, паколькі наступныя ўзроўні могуць візуалізаваць пікселі ў рэцэптыўных палях папярэдніх узроўняў. Затым згорткавыя пласты пераўтвараюць дадзены малюнак у лікавыя значэнні і дазваляюць сетцы разумець і здабываць каштоўныя шаблоны.

Аб’яднанне слаёў

Аб’яднанне слаёў выкарыстоўваецца для памяншэння памераў і называецца паніжэннем выбаркі. Гэта памяншае параметры, якія выкарыстоўваюцца пры ўводзе. Аперацыя аб’яднання можа перамяшчаць фільтр па ўсім уваходным дадзеных, як згорткавы пласт, але не мае вагаў. Тут фільтр прымяняе сумесную функцыю да лікавых значэнняў у рэцэптыўным полі для запаўнення масіва вынікаў.

Аб’яднанне мае два тыпу:

  • Сярэдняе аб’яднанне: сярэдняе значэнне вылічваецца ў прыёмным полі, якое файлер ахоплівае ўваходныя дадзеныя для перадачы ў выхадны масіў.
  • Максімальнае аб’яднанне: ён выбірае піксель з максімальным значэннем і адпраўляе яго ў выхадны масіў, калі фільтр ахоплівае ўваход. Максімальны пул выкарыстоўваецца больш, чым сярэдні пул.

Нягледзячы на ​​тое, што значныя даныя губляюцца пры аб’яднанні, гэта ўсё яшчэ дае шмат пераваг CNN. Гэта дапамагае знізіць рызыку пераабсталявання і складанасць пры адначасовым павышэнні эфектыўнасці. Гэта таксама павышае стабільнасць CNN.

Цалкам падключаны (FC) ўзровень

Як вынікае з назвы, усе вузлы ў выходным узроўні непасрэдна звязаны з вузлом папярэдняга ўзроўню ў цалкам звязаным слоі. Ён класіфікуе відарыс на аснове аб’ектаў, вынятых з папярэдніх слаёў разам з іх фільтрамі.

Акрамя таго, ўзроўні FC звычайна выкарыстоўваюць функцыю актывацыі softmax для правільнай класіфікацыі ўваходных дадзеных замест функцый ReLu (як у выпадку аб’яднання і згортчных узроўняў). Гэта дапамагае атрымаць верагоднасць 0 або 1.

Як працуюць CNN?

Сверточная нейронавая сетка складаецца з мноства слаёў, нават з сотняў. Гэтыя пласты вучацца ідэнтыфікаваць розныя асаблівасці дадзенага малюнка.

Хоць CNN з’яўляюцца нейронавымі сеткамі, іх архітэктура адрозніваецца ад звычайнай ANN.

Апошні змяшчае ўвод праз мноства схаваных слаёў для яго пераўтварэння, дзе кожны пласт ствараецца з наборам штучных нейронаў і цалкам звязаны з кожным нейронам у тым жа пласце. Нарэшце, ёсць цалкам звязаны пласт або выхадны пласт для адлюстравання выніку.

З іншага боку, CNN арганізуе пласты ў трох вымярэннях – шырыні, глыбіні і вышыні. Тут пласт нейрона злучаецца толькі з нейронамі ў невялікай вобласці, а не звязаны з кожным з іх на наступным узроўні. Нарэшце, канчатковы вынік прадстаўлены адным вектарам з адзнакай верагоднасці і мае толькі вымярэнне глыбіні.

Цяпер вы можаце спытаць, што такое “згортка” ў CNN.

Што ж, згортка адносіцца да матэматычнай аперацыі па зліцці двух набораў даных. У CNN канцэпцыя згорткі прымяняецца да ўваходных даных для вываду карты функцый шляхам фільтрацыі інфармацыі.

Гэта падводзіць нас да некаторых важных паняццяў і тэрміналогій, якія выкарыстоўваюцца ў CNN.

  • Фільтр: таксама вядомы як дэтэктар функцый або ядро, фільтр можа мець пэўны памер, напрыклад 3×3. Ён перабірае ўваходны малюнак, каб выканаць множанне матрыцы для кожнага элемента, каб прымяніць згортку. Прымяненне фільтраў да кожнай вучэбнай выявы з рознай раздзяляльнасцю плюс выхад скручанай выявы будзе працаваць як уваход для наступнага пласта.
  • Запаўненне: выкарыстоўваецца для пашырэння ўваходнай матрыцы да межаў матрыцы шляхам устаўкі фальшывых пікселяў. Гэта зроблена, каб супрацьстаяць таму факту, што згортка памяншае памер матрыцы. Напрыклад, матрыца 9 × 9 можа ператварыцца ў матрыцу 3 × 3 пасля фільтрацыі.
  • Крокі: Калі вы хочаце, каб вынік быў меншы за ўваход, вы можаце выканаць крокі. Гэта дазваляе прапускаць пэўныя вобласці, пакуль фільтр слізгае па малюнку. Прапусціўшы два ці тры пікселі, вы можаце стварыць больш эфектыўную сетку за кошт памяншэння прасторавага раздзялення.
  • Вагі і прадузятасці: CNN маюць вагі і прадузятасці ў сваіх нейронах. Мадэль можа вывучаць гэтыя значэнні падчас трэніроўкі, і значэнні застаюцца аднолькавымі на працягу дадзенага ўзроўню для ўсіх нейронаў. Гэта азначае, што кожны схаваны нейрон выяўляе адны і тыя ж асаблівасці ў розных галінах выявы. У выніку сетка становіцца больш талерантнай пры перакладзе аб’ектаў у зададзены малюнак.
  • ReLU: расшыфроўваецца як Rectified Linear Unit (ReLu) і выкарыстоўваецца для больш эфектыўнага і хуткага навучання. Ён адлюстроўвае адмоўныя значэнні ў 0 і падтрымлівае станоўчыя значэнні. Гэта таксама называецца актывацыяй, бо сетка перадае толькі актываваныя функцыі выявы на наступны ўзровень.
  • Успрымальнае поле: у нейронавай сетцы кожны нейрон атрымлівае ўваходныя дадзеныя з розных месцаў папярэдняга ўзроўню. А ў згортковых пластах кожны нейрон атрымлівае ўваходныя дадзеныя з абмежаванай вобласці толькі папярэдняга пласта, якая называецца рэцэптыўным полем нейрона. У выпадку ўзроўню FC увесь папярэдні пласт з’яўляецца рэцэптыўным полем.
Праверце гэта:  Як назаўсёды выдаліць уліковы запіс Netflix

У рэальных вылічальных задачах звычайна згортка выконваецца ў 3D-малюнку, які патрабуе 3D-фільтра.

Вяртаючыся да CNN, ён складаецца з розных частак або слаёў вузлоў. Кожны ўзровень вузла мае парог і вагу і злучаны з іншым. Пры перавышэнні парогавага ліміту даныя адпраўляюцца на наступны ўзровень гэтай сеткі.

Гэтыя ўзроўні могуць выконваць аперацыі для змены даных, каб даведацца адпаведныя функцыі. Акрамя таго, гэтыя аперацыі паўтараюць сотні розных слаёў, якія працягваюць вучыцца выяўляць іншыя асаблівасці выявы.

Часткі CNN:

  • Уваходны пласт: гэта месца, дзе прымаюцца ўваходныя дадзеныя, напрыклад выява. Гэта будзе трохмерны аб’ект з вызначанай вышынёй, шырынёй і глыбінёй.
  • Адзін/некалькі схаваных слаёў або фаза вылучэння аб’ектаў: ​​гэтыя слаі могуць быць згортчным узроўнем, узроўнем аб’яднання і цалкам звязаным узроўнем.
  • Вывадны пласт: тут будзе паказаны вынік.

Праходжанне выявы праз пласт згорткі ператвараецца ў карту аб’ектаў або карту актывацыі. Пасля згортвання ўводу пласты згортваюць малюнак і перадаюць вынік наступнаму слою.

CNN будзе выконваць мноства метадаў згортвання і аб’яднання для выяўлення функцый на этапе вылучэння функцый. Напрыклад, калі вы ўводзіце выяву кошкі, CNN распазнае яе чатыры лапы, колер, два вочы і г.д.

Далей, цалкам звязаныя пласты ў CNN будуць дзейнічаць як класіфікатар для вынятых функцый. На падставе таго, што алгарытм глыбокага навучання прадказаў аб малюнку, пласты дадуць вынік.

Перавагі CNN

Больш высокая дакладнасць

CNN прапануе больш высокую дакладнасць, чым звычайныя нейронавыя сеткі, якія не выкарыстоўваюць згортку. CNN карысныя, асабліва калі задача ўключае ў сябе шмат дадзеных, відэа і выявы распазнавання і г.д. Яны даюць вельмі дакладныя вынікі і прагнозы; такім чынам, іх выкарыстанне расце ў розных сектарах.

Вылічальная эфектыўнасць

CNN прапануюць больш высокі ўзровень вылічальнай эфектыўнасці, чым іншыя звычайныя нейронавыя сеткі. Гэта з-за выкарыстання працэсу згортвання. Яны таксама выкарыстоўваюць памяншэнне памернасці і сумеснае выкарыстанне параметраў, каб зрабіць мадэлі больш хуткімі і простымі ў разгортванні. Гэтыя метады таксама можна аптымізаваць для працы на розных прыладах, няхай гэта будзе ваш смартфон або ноўтбук.

Выманне функцый

CNN можа лёгка даведацца аб асаблівасцях выявы, не патрабуючы ручной распрацоўкі. Вы можаце выкарыстоўваць папярэдне падрыхтаваныя CNN і кіраваць вагамі, перадаючы ім даныя падчас працы над новай задачай, і CNN лёгка адаптуецца да яе.

Прыкладанні CNN

Сі-Эн-Эн выкарыстоўваюцца ў розных галінах для многіх выпадкаў выкарыстання. Некаторыя з рэальных прыкладанняў CNN ўключаюць:

Праверце гэта:  Як атрымаць праграму Apple TV за межамі рэгіёну ЗША

Класіфікацыя малюнкаў

CNN шырока выкарыстоўваюцца ў класіфікацыі малюнкаў. Яны могуць распазнаваць каштоўныя асаблівасці і ідэнтыфікаваць аб’екты на дадзеным малюнку. Такім чынам, ён выкарыстоўваецца ў такіх сектарах, як ахова здароўя, асабліва ў МРТ. Акрамя таго, гэтая тэхналогія выкарыстоўваецца для распазнання рукапісных лічбаў, што з’яўляецца адным з самых ранніх выпадкаў выкарыстання CNN у камп’ютэрным зроку.

Выяўленне аб’екта

CNN можа выяўляць аб’екты на выявах у рэжыме рэальнага часу, а таксама маркіраваць іх і класіфікаваць. Такім чынам, гэтая тэхніка шырока выкарыстоўваецца ў аўтаматызаваных транспартных сродках. Гэта таксама дазваляе разумным дамам і пешаходам распазнаваць твар уладальніка аўтамабіля. Ён таксама выкарыстоўваецца ў сістэмах назірання на базе штучнага інтэлекту для выяўлення і пазначэння аб’ектаў.

Аўдыёвізуальнае адпаведнасць

Дапамога CNN у супастаўленні аўдыявізуальных матэрыялаў дапамагае палепшыць платформы струменевага відэа, такія як Netflix, YouTube і г.д. Гэта таксама дапамагае задаволіць запыты карыстальнікаў, такія як «песні пра каханне Элтана Джона».

Распазнаванне маўлення

Акрамя малюнкаў, CNN дапамагаюць у апрацоўцы натуральнай мовы (NLP) і распазнаванні маўлення. Рэальным прыкладам гэтага можа быць выкарыстанне Google CNN у сваёй сістэме распазнання гаворкі.

Рэканструкцыя аб’екта

CNN можна выкарыстоўваць у 3D-мадэляванні рэальнага аб’екта ў лічбавым асяроддзі. Мадэлі CNN таксама могуць ствараць 3D-мадэль твару з дапамогай выявы. Акрамя таго, CNN карысны пры стварэнні лічбавых двайнікоў у біятэхналогіях, вытворчасці, біятэхналогіях і архітэктуры.

Выкарыстанне CNN у розных сектарах уключае:

  • Ахова здароўя: камп’ютэрны зрок можна выкарыстоўваць у радыялогіі, каб дапамагчы лекарам з большай эфектыўнасцю выяўляць ракавыя пухліны ў чалавека.
  • Сельская гаспадарка: сеткі могуць выкарыстоўваць выявы са штучных спадарожнікаў, такіх як LSAT, і выкарыстоўваць гэтыя дадзеныя для класіфікацыі ўрадлівых зямель. Гэта таксама дапамагае прагназаваць узровень урадлівасці зямлі і распрацаваць эфектыўную стратэгію максімізацыі ўраджаю.
  • Маркетынг: Праграмы ў сацыяльных сетках могуць прапанаваць чалавека на фатаграфіі, размешчанай у чыім-небудзь профілі. Гэта дапаможа вам пазначаць людзей у вашых фотаальбомах.
  • Рознічны гандаль: платформы электроннай камерцыі могуць выкарыстоўваць візуальны пошук, каб дапамагчы брэндам рэкамендаваць адпаведныя тавары, якія хочуць набыць мэтавыя кліенты.
  • Аўтамабільны: CNN знаходзіць прымяненне ў аўтамабілях для павышэння бяспекі пасажыраў і кіроўцы. Гэта робіцца з дапамогай такіх функцый, як выяўленне паласы руху, выяўленне аб’ектаў, класіфікацыя відарысаў і г. д. Гэта таксама дапамагае свету беспілотных аўтамабіляў развівацца далей.

Рэсурсы для вывучэння CNN

Coursera:

У Coursera ёсць гэты курс на CNN, які вы можаце прайсці. Гэты курс навучыць вас, як развіваўся камп’ютэрны зрок на працягу многіх гадоў і некаторым прымяненням CNN у сучасным свеце.

Amazon:

Вы можаце прачытаць гэтыя кнігі і лекцыі, каб даведацца больш пра CNN:

  • Нейронныя сеткі і глыбокае навучанне: разглядаюцца мадэлі, алгарытмы і тэорыя глыбокага навучання і нейронавых сетак.
  • Кіраўніцтва па згортачных нейронавых сетках для камп’ютэрнага зроку: гэтая кніга навучыць вас прымяненню CNN і іх канцэпцыям.
  • Практычныя згорткавыя нейронавыя сеткі з Tensorflow: з дапамогай гэтай кнігі вы можаце вырашаць розныя праблемы камп’ютэрнага зроку з дапамогай Python і TensorFlow.
  • Advanced Applied Deep Learning: гэтая кніга дапаможа вам зразумець CNN, глыбокае навучанне і іх пашыраныя прыкладанні, уключаючы выяўленне аб’ектаў.
  • Згорткавыя нейронавыя сеткі і рэкурэнтныя нейронавыя сеткі: гэтая кніга навучыць вас аб CNN і RNN і як будаваць гэтыя сеткі.

Заключэнне

Згорткавыя нейронавыя сеткі – адна з новых абласцей штучнага інтэлекту, машыннага і глыбокага навучання. Ён мае розныя прымянення ў сучасным свеце практычна ў кожным сектары. Гледзячы на ​​яго ўсё большае выкарыстанне, чакаецца, што ён будзе пашырацца і будзе больш карысным для вырашэння праблем рэальнага свету.