Нейрондық желілер. Мұның бәрі қайда кетіп жатыр?

Мақала екі бөлімнен тұрады:

  1. Мен үшін ресурстарға ең түсінікті сілтемелері бар кескіндердегі объектілерді анықтау және кескінді сегменттеу үшін кейбір желілік архитектуралардың қысқаша сипаттамасы. Мен бейне түсіндірмелерді таңдауға тырыстым және жақсырақ орыс тілінде.
  2. Екінші бөлім нейрондық желі архитектурасының даму бағытын түсіну әрекеті болып табылады. Және соларға негізделген технологиялар.

Нейрондық желілер. Мұның бәрі қайда кетіп жатыр?

1-сурет – Нейрондық желі архитектурасын түсіну оңай емес

Барлығы Android телефонында объектілерді жіктеу және анықтау үшін екі демонстрациялық қосымшаны жасаудан басталды:

  • Back-end демо, деректер серверде өңделіп, телефонға жіберілгенде. Аюдың үш түрінің кескін классификациясы: қоңыр, қара және ойыншық.
  • Front-end демодеректер телефонның өзінде өңделген кезде. Үш түрдегі объектілерді анықтау (объектілерді анықтау): фундук, інжір және құрма.

Кескінді классификациялау, кескіндегі объектіні анықтау және тапсырмаларының арасында айырмашылық бар кескінді сегменттеу. Сондықтан қандай нейрондық желінің архитектурасы кескіндердегі объектілерді анықтайтынын және қайсысы сегменттеуге болатындығын анықтау қажеттілігі туындады. Мен үшін ресурстарға ең түсінікті сілтемелері бар архитектураның келесі мысалдарын таптым:

  • R-CNN негізіндегі архитектуралар сериясы (Rбар аймақтар Cайналым Neural Networks мүмкіндіктері): R-CNN, Fast R-CNN, Жылдамырақ R-CNN, Маска R-CNN. Кескіндегі нысанды анықтау үшін аймақтық ұсыныс желісі (RPN) механизмі арқылы шектейтін жолақтар бөлінеді. Бастапқыда RPN орнына баяу Селективті іздеу механизмі қолданылды. Содан кейін таңдалған шектеулі аймақтар классификация үшін кәдімгі нейрондық желінің кірісіне беріледі. R-CNN архитектурасында AlexNet ішкі желісі арқылы жалпы саны 2000 жүгіріске дейін шектелген аймақтарда анық «үшін» циклдері бар. Ашық «үшін» циклдері кескінді өңдеу жылдамдығын баяулатады. Ішкі нейрондық желі арқылы өтетін айқын циклдердің саны архитектураның әрбір жаңа нұсқасымен азаяды және жылдамдықты арттыру және нысанды анықтау тапсырмасын Mask R-CNN-де объектіні сегменттеумен ауыстыру үшін ондаған басқа өзгерістер жасалады.
  • YOLO (You Only Look Once) мобильді құрылғыларда нақты уақытта объектілерді танитын алғашқы нейрондық желі. Айырықша ерекшелігі: бір жүгірістегі объектілерді ажырату (бір рет қарау). Яғни, YOLO архитектурасында айқын «үшін» циклдері жоқ, сондықтан желі жылдам жұмыс істейді. Мысалы, бұл ұқсастық: NumPy-де матрицалармен операцияларды орындау кезінде, сонымен қатар NumPy-де C бағдарламалау тілі арқылы архитектураның төменгі деңгейлерінде жүзеге асырылатын айқын «for» циклдері жоқ.YOLO алдын ала анықталған терезелер торын пайдаланады. Бір нысанның бірнеше рет анықталуын болдырмау үшін терезенің қабаттасу коэффициенті (IoU) пайдаланылады. Iқиылысы oVer Uнион). Бұл архитектура кең ауқымда жұмыс істейді және жоғары беріктік: Модельді фотосуреттерге үйретуге болады, бірақ қолмен салынған суреттерде жақсы жұмыс істейді.
  • SSD (Sқынап Sыстық MultiBox Detektor) – YOLO архитектурасының ең сәтті «бұзулары» пайдаланылады (мысалы, максималды емес басу) және нейрондық желінің жылдам және дәлірек жұмыс істеуі үшін жаңалары қосылады. Айырықша ерекшелігі: кескіндер пирамидасындағы терезелердің берілген торын (әдепкі жолақ) пайдалана отырып, бір орында объектілерді ажырату. Кескін пирамидасы дәйекті конволюция және біріктіру операциялары арқылы конволюция тензорларында кодталады (максималды біріктіру операциясы кезінде кеңістік өлшемі азаяды). Осылайша, бір желіде үлкен де, кішігірім нысандар да анықталады.
  • MobileSSD (жылжымалыNetV2+ SSD) екі нейрондық желі архитектурасының тіркесімі болып табылады. Бірінші желі MobileNetV2 жылдам жұмыс істейді және тану дәлдігін арттырады. MobileNetV2 бастапқыда қолданылған VGG-16 орнына пайдаланылады түпнұсқа мақала. Екінші SSD желісі кескіндегі нысандардың орнын анықтайды.
  • SqueezeNet – өте шағын, бірақ дәл нейрондық желі. Ол өздігінен объектіні анықтау мәселесін шешпейді. Дегенмен, оны әртүрлі архитектуралардың комбинациясында қолдануға болады. Және мобильді құрылғыларда қолданылады. Айырықша ерекшелігі, деректер алдымен төрт 1 × 1 конволюционды сүзгіге қысылып, содан кейін төрт 1 × 1 және төрт 3 × 3 конволюциялық сүзгіге кеңейтіледі. Деректерді қысу-кеңейтудің осындай итерациясының бірі «Өрт модулі» деп аталады.
  • DeepLab (Терең конволюционды желілермен семантикалық кескінді сегменттеу) – кескіндегі объектілерді сегменттеу. Архитектураның айрықша ерекшелігі - кеңістіктік рұқсатты сақтайтын кеңейтілген конволюция. Бұдан кейін сегменттеудегі шағын шуды жоюға және сегменттелген кескіннің сапасын жақсартуға мүмкіндік беретін графикалық ықтималдық моделін (шартты кездейсоқ өріс) пайдалана отырып, нәтижелерді кейінгі өңдеу кезеңі өтеді. «Графикалық ықтималдық моделі» деген қорқынышты атаудың артында бес нүктеге жуықталған кәдімгі Гаусс сүзгісі жасырылады.
  • Құрылғыны анықтауға тырысты RefineDet (Бір ату тазартуНысанға арналған нейрондық желі Детection), бірақ мен көп нәрсені түсінбедім.
  • Мен сондай-ақ «назар аудару» технологиясының қалай жұмыс істейтінін қарастырдым: бейне1, бейне2, бейне3. «Назар аудару» архитектурасының айрықша ерекшелігі кескіндегі зейіннің жоғарылау аймақтарын автоматты түрде таңдау болып табылады (RoI, Rегиондар of Interest) Attention Unit деп аталатын нейрондық желіні пайдалана отырып. Зейіннің жоғарылау аймақтары шектейтін қораптарға ұқсас, бірақ олардан айырмашылығы олар кескінде бекітілмеген және шекаралары анық емес болуы мүмкін. Содан кейін назар аударылатын аймақтардан архитектурасы бар қайталанатын нейрондық желілерге «берілетін» белгілер (мүмкіндіктер) оқшауланады. LSDM, GRU немесе Vanilla RNN. Қайталанатын нейрондық желілер мүмкіндіктердің өзара байланысын реттілікпен талдауға қабілетті. Қайталанатын нейрондық желілер бастапқыда мәтінді басқа тілдерге аудару үшін, ал қазір аударма үшін пайдаланылды суреттерді мәтінге айналдыру и мәтіннен суретке.

Біз осы архитектураларды зерттей отырып Мен ештеңе түсінбейтінімді түсіндім. Бұл менің нейрондық желімде назар аудару механизмінде проблемалар бар дегенді білдірмейді. Осы архитектуралардың барлығын жасау авторлар хакерлермен бәсекелесетін үлкен хакатонға ұқсайды. Hack – қиын бағдарламалық қамтамасыз ету мәселесін жылдам шешу. Яғни, барлық осы архитектуралар арасында көрінетін және түсінікті логикалық байланыс жоқ. Оларды біріктіретіннің бәрі - олар бір-бірінен алған ең сәтті хактердің жиынтығы, сонымен қатар барлығына ортақ. тұйық конволюция операциясы (қатенің кері таралуы, кері таралуы). Жоқ жүйелік ойлау! Нені өзгерту керек және бар жетістіктерді қалай оңтайландыру керек екені белгісіз.

Бұзушылықтар арасындағы логикалық байланыстың болмауының нәтижесінде оларды есте сақтау және іс жүзінде қолдану өте қиын. Бұл бөлшектелген білім. Жақсы жағдайда бірнеше қызықты және күтпеген сәттер есте қалады, бірақ түсінікті және түсініксіз нәрселердің көпшілігі бірнеше күн ішінде жадтан жоғалады. Бір аптадан кейін кем дегенде архитектураның атын есте сақтасаңыз жақсы болады. Бірақ бірнеше сағат, тіпті күндер жұмыс уақыты мақалаларды оқуға және шолу бейнелерін көруге жұмсалды!

Нейрондық желілер. Мұның бәрі қайда кетіп жатыр?

2-сурет – Нейрондық желілер хайуанаттар бағы

Ғылыми мақалалардың авторларының көпшілігі, менің жеке пікірімше, тіпті бұл үзік-үзік білімнің оқырманға түсініксіз болуы үшін қолдан келгеннің бәрін жасайды. Бірақ он жолды сөйлемдегі «жіңішке ауадан» алынған формулалары бар мүшелік тіркестер жеке мақаланың тақырыбы (мәселе жариялау немесе құрып кету).

Осы себепті нейрондық желілерді пайдаланып ақпаратты жүйелеу және осылайша түсіну мен есте сақтау сапасын арттыру қажет. Сондықтан жасанды нейрондық желілердің жеке технологиялары мен архитектурасын талдаудың негізгі тақырыбы келесі міндет болды: бәрі қайда бара жатқанын біліңіз, және кез келген нақты нейрондық желінің құрылғысы емес.

Мұның бәрі қайда кетіп жатыр? Негізгі нәтижелер:

  • Соңғы екі жылдағы машиналық оқыту стартаптарының саны күрт құлады. Ықтимал себеп: «нейрондық желілер енді жаңа нәрсе емес».
  • Кез келген адам қарапайым мәселені шешу үшін жұмыс істейтін нейрондық желіні құра алады. Ол үшін «модель хайуанаттар бағынан» дайын үлгіні алып, нейрондық желінің соңғы қабатын жаттықтырыңыз (трансферттік оқыту) дайын деректер бойынша Google деректер жиынын іздеу немесе 25 мың Kaggle деректер жинағы тегін бұлтты Jupyter жазу кітапшасы.
  • Нейрондық желілердің ірі өндірушілері құрыла бастады «үлгі хайуанаттар бағы» (модельді хайуанаттар бағы). Оларды пайдалану арқылы сіз коммерциялық қосымшаны жылдам жасай аласыз: TF хабы TensorFlow үшін, MMDанықтау PyTorch үшін, Детектор Caffe2 үшін, тізбекші-модель зоопарк Chainer үшін және басқа.
  • Нейрондық желілер жұмыс істейді нақты уақыт (нақты уақытта) мобильді құрылғыларда. Секундына 10 кадрдан 50 кадрға дейін.
  • Нейрондық желілерді телефондарда (TF Lite), браузерлерде (TF.js) және in тұрмыстық заттар (IoT, Iғаламтор of Tтопсалар). Әсіресе аппараттық деңгейде нейрондық желілерді қолдайтын телефондарда (нейрондық үдеткіштер).
  • «Әрбір құрылғы, киім-кешек, тіпті азық-түлік те болады IP-v6 мекенжайы және бір-бірімен қарым-қатынас жасау» - Себастьян Тран.
  • Машиналық оқыту бойынша жарияланымдар саны өсе бастады Мур заңынан асып түседі 2015 жылдан бастап (екі жыл сайын екі есе өседі). Мақалаларды талдау үшін бізге нейрондық желілер керек екені анық.
  • Келесі технологиялар танымал бола бастады:
    • PyTorch – танымалдылық тез өсуде және TensorFlow-ты басып озатын сияқты.
    • Гиперпараметрлерді автоматты түрде таңдау AutoML – танымалдығы бірқалыпты өсуде.
    • Дәлдіктің біртіндеп төмендеуі және есептеу жылдамдығының артуы: анық емес логика, алгоритмдер арттыру, дәл емес (шамамен) есептеулер, кванттау (нейрондық желінің салмақтары бүтін сандарға түрленіп, квантталған кезде), нейрондық үдеткіштер.
    • Аударма суреттерді мәтінге айналдыру и мәтіннен суретке.
    • жаратылыс Бейнедегі XNUMXD нысандары, қазір нақты уақытта.
    • DL туралы ең бастысы - деректер өте көп, бірақ оны жинау және таңбалау оңай емес. Сондықтан белгілеуді автоматтандыру дамып келеді (автоматтандырылған аннотация) нейрондық желілерді пайдаланатын нейрондық желілер үшін.
  • Нейрондық желілермен информатика кенеттен пайда болды эксперименттік ғылым және тұрды қайталану дағдарысы.
  • IT ақша мен нейрондық желілердің танымалдылығы есептеулер нарықтық құндылыққа айналған кезде бір уақытта пайда болды. Экономика алтын-валюта экономикасынан өзгеруде алтын-валюта-есептеу. Менің мақаламды қараңыз экономофизика және IT ақшаның пайда болу себебі.

Біртіндеп жаңасы пайда болады ML/DL бағдарламалау әдістемесі (Machine Learning & Deep Learning), ол бағдарламаны үйретілген нейрондық желі үлгілерінің жиынтығы ретінде көрсетуге негізделген.

Нейрондық желілер. Мұның бәрі қайда кетіп жатыр?

3-сурет – ML/DL жаңа бағдарламалау әдістемесі ретінде

Алайда ол ешқашан пайда болмады Нейрондық желі теориясы, оның аясында жүйелі түрде ойлауға және жұмыс істеуге болады. Қазір «теория» деп аталатын нәрсе іс жүзінде эксперименттік, эвристикалық алгоритмдер.

Менің және басқа ресурстарға сілтемелер:

Назарларыңызға рахмет!

Ақпарат көзі: www.habr.com

пікір қалдыру