Avtonom avtomobil uchun miyani rivojlantirish

Qatarda haydovchilik guvohnomasini olishni istagan har bir kishi birinchi qadam sifatida ko'z tekshiruvidan o'tishi kerak. Nega? Oddiy. Chunki agar ko'zlaringiz yaxshi bo'lmasa, siz to'g'ri ko'ra olmaysiz, agar to'g'ri ko'rmasangiz, mashinani haydashda qiyinchiliklarga duch kelasiz.

Ko'rish - bu avtomobil haydashning birinchi majburiy talabidir, shuning uchun Udacity-dan o'z-o'zini boshqarish nanodegrad dasturining birinchi "go'shti" kompyuterni ko'rish bilan bog'liq. Men Udacity tomonidan taqdim etilgan kompyuterni ko'rish bilan bog'liq bo'lgan birinchi loyiha ustida ishlash haqida "hikoya aytib berdim". Vizyon yo'lda chiziqli chiziqlarni topish uchun ishlatilgan.

Kompyuter dunyoni suratga oladigan kamera orqali ko'radi. Rasmlar ketma-ketligi videolarni yaratadi. Va birinchi loyiha kompyuterning chiziqli chiziqlarni tushunishi mumkinligini isbotlaydi. Keyinchalik bo'lak chiziqlari avtonom avtomobillarning yo'lda qolishini ta'minlash uchun ishlatiladi.

Qatarda haydovchilik guvohnomasini olishga qaytsak, keyingi qadam treningdan o'tishdir. Ammo yo'lda mashg'ulotlarga borishdan oldin yo'l belgilarini tushunish kerak. Yo'lda haydovchiga rioya qilish qoidalarini ko'rsatadigan yo'l belgilari. Bundan tashqari, haydovchi uchun ma'lumot manbai sifatida foydalanish mumkin. Haydovchi yo'l belgilarini tushunishi kerak. Qatarda qo'llaniladigan barcha yo'l belgilarini eslab qolishim kerakligini esladim, chunki u keyinchalik politsiya tomonidan haydovchilik guvohnomasini olish uchun zaruriy shart sifatida sinovdan o'tkaziladi.

Juda o'xshash kontseptsiya o'zini o'zi boshqaradigan / avtonom avtomobil uchun qo'llaniladi. Avtomobil yo'lda yo'l belgilarini tushunishi kerak. Mashina shuni o'rganishi kerakki, u "20 km/soat" degan yo'l belgisini ko'rganda, u 20 km / soat tezlikdan oshmasligi kerakligini anglatadi. Mashina "bolalar kesib o'tayotgani" haqida tirbandlikni ko'rsa, bolalarni urmaslik uchun ehtiyot choralarini ko'rishi kerak. Demak, savol tug'iladi: avtomobilni yo'l belgilarini o'rganishga qanday o'rgatish kerak?

Mashina o'rganish

Bu Udacity tomonidan taqdim etilgan materialning ikkinchi "go'shti". Yuqorida tavsiflangan maqsad bilan talabalar yo'l belgilarini aniqlash uchun model yaratish loyihasini bajarishlari kerak. Buning uchun "tensorflow" bilan birga chuqur o'rganish kontseptsiyasi kiritildi.

Lekin nima uchun mashinani o'rganishdan foydalanish kerak? Har bir yo'l belgisi tasvirini aniq belgilab, uni mashinaga bera olmadikmi? Quyidagi rasm bu savolga javob beradi.

Ko'rib turganingizdek, 3 xil uslubga ega "to'xtash belgisi" ning 3 xil tasviri mavjud. Aytaylik, biz to'xtash belgisining bitta tasvirini aniqlash uchun "kodlash" ni qo'shamiz va uni mashina ichidagi kompyuterga beramiz, u faqat bitta tasvirni tushunadi. Avtomobildagi kamera yo'lda "to'xtash belgisi" ni suratga oladi, uni minglab imkoniyatlar bilan turli burchaklardan olish mumkin. Bunday holda, kompyuter oldindan belgilangan tasvirni noto'g'ri tasniflaydi, chunki oldindan belgilangan tasvir faqat ma'lum bir burchakdan olingan.

Shuning uchun mashinani "miya" sifatida ishlatish uchun "model" yaratish uchun mashinani o'rganish kerak. Model / miyaning o'zi "to'xtash belgisi" ko'plab namunali tasvirlardan xususiyatlarni, ya'ni 1000 ta turli xil tasvirlarni ajratib oladigan o'quv jarayoni orqali tuzilgan. "To'xtash belgisi" tasvirini tushunish uchun model/miya ishlab chiqilgandan so'ng, avtomobil har xil turdagi "to'xtash belgisi" ni tasniflashi va keyin yo'lda bu belgini ko'rsa nima qilish kerakligini hal qilishi mumkin bo'ladi.

Chuqur o'rganish

Aytishimiz mumkinki, chuqur o'rganish bu sun'iy intellekt doirasidagi bilimdir.

Chuqur o'rganish sun'iy intellekt bilan bog'liq muammolarni hal qilishning yagona metodologiyasi emas, ammo bu alohida holat uchun (tasvirni aniqlash) chuqur o'rganish "o'q o'tkazmaydigan" metodologiya sifatida qaralishi mumkin. U erda chuqur o'rganish bilan bog'liq tonna resurslar mavjud, ko'p odamlar bu masalani boshidan chuqur texnik masalaga qadar muhokama qilishadi. Siz ularni googling orqali topishingiz mumkin.

Udacity materialni etkazib berish usuli bir necha qismlarga bo'linadi:

  • Neyron tarmoqlarga kirish
  • MiniFlowni ishlab chiqish: tensorflow qanday ishlashini ko'proq tushunish uchun kichik kutubxona
  • Tensorflowga kirish
  • Chuqur neyron tarmoqlari
  • Konvolyutsion neyron tarmoqlari

Rostini aytsam, boshida kontseptsiyani o'rganishda qiynalganman. Konvolyutsion neyron tarmoqlariga erishish uchun kontseptsiyalarni to'liq tushunish uchun menga taxminan bir oy vaqt kerak bo'ldi (bo'sh vaqtimni faqat hafta oxirlarida ishlatardim). Udacity tomonidan taqdim etilgan materialni darhol tushunish men uchun boshida oson emas edi, shuning uchun men boshqa ma'lumotnoma izlashga qiynadim. Oxir-oqibat, men buni tushunganimdan so'ng, Udacity tomonidan taqdim etilgan har bir material yanada mantiqiy bo'ladi. Bu erda chuqur neyron tarmoqlari bilan bog'liq sanab o'tilgan materiallarning namunasi.

Men boshqa talabalar tomonidan ishlab chiqilgan loyiha kodini o'qishga harakat qildim va ular buni qanday qilib bu qadar yaxshi qilishlari mumkinligi haqida hayron bo'lishni boshladim, men tushunmaydigan narsalarning ko'pchiligini, masalan, tasvirda ma'lumotlarni ko'paytirishni talab qilishning sababi, qanday qilib to'g'ri kulrang qo'ng'iroq qilish kerakligi kabi. , va hokazo. Ammo keyinroq tushunib yetdimki, bu kontseptsiya ayniqsa kollejda chuqur o'rganishni o'rgangan talabalar yoki chuqur o'rganish yoki umuman AI bilan shug'ullanadigan odamlar uchun juda keng tarqalgan.

Agar shu kunlarda kimdir mendan so'rasa, birinchi navbatda kontseptsiyani tushunish uchun quyidagi qo'llanmalarga amal qilishni taklif qilaman: "cs231n qish 2016 Stanford tomonidan berilgan ma'ruza", "Jeremmy tomonidan amaliy chuqur o'rganish kursi" va "tensorflow bilan boshlash".

CS231n mashinani o'rganish, chuqur o'rganish va konv tarmog'i haqida tushunchaga ega bo'lish uchun bir qator akademik ma'ruzalarni o'z ichiga oladi. Ta'riflangan material juda batafsil va aniq. Tugatgandan so'ng, Jeremmy tomonidan amaliy chuqur o'rganish kursi muammoni hal qilish uchun nazariy tushunchani haqiqiy kodlash tajribasida qanday ishlatishni ko'rsatadi. Va nihoyat, lekin menimcha, tensorflow qanday ishlashini batafsilroq tushunish muhim. Tajribamga asoslanib, ushbu 3 ta manbadan o'rganganimdan so'ng, men Udacity-ga qaytganimda, narsalarni tushunish oson emas, balki yo'l belgilari muammosi uchun yaxshi modelni qanday yaratish haqida kuchliroq tushunchani qo'shadigan taqdim etilgan material.

Loyihani ko'rib chiqish

Yo'q, mening taqdimotim juda qoniqarli bo'ldi, deb aytmagan bo'lardim. Darhaqiqat, vaqt cheklanganligi sababli (2-loyiha allaqachon bir oy o'tgan edi), men imkon qadar tezroq topshirishim kerak edi. Muddati o'tgan boshqa loyiha taqdimoti bilan birga o'rganishni kutayotgan boshqa materiallar ham bor. Mening 2-loyihaga taqdim etishim faqat rubrikada berilgan standart talabni 93% tasdiqlash aniqligi bilan bajardi. Namuna yo'l belgilaridan model 5 ta tasvirdan 4 tasini to'g'ri tasniflashi mumkin, shuning uchun u 80% ga teng.

Loyihani taqdim etish va uni ko'rib chiqish, shuningdek, Udacity-da nanodegree dasturini olish uchun ajoyib asosdir. Ular bizning loyihamizni batafsil ko'rib chiqdilar. Shuningdek, biz loyihani taqdim etishning bir qismi sifatida nima qilishini tushuntiruvchi yozuvni taqdim etishimiz kerak. Sharhni o'qish bilimning yana bir manbaidir, chunki sharhlovchi loyihani qanday yaxshilash bo'yicha ko'plab takliflarni beradi. Mana men ishlayotgan loyiha-2 bo'yicha berilgan sharh namunasi.

Men ishlagan loyiha "github" da mavjud edi va yozuvga "bu yerdan" kirish mumkin.

Mashinani o'rganish - bu qiziqarli narsa. Nega ba'zi odamlar bunga juda ishtiyoq bilan qarashlarini hozir tushunaman. Bilimning o'zi bugungi kunda eng dolzarb mavzulardan biri bo'lib, u turli sohalarda, masalan, sog'liqni saqlashda yoki hatto kiberxavfsizlikda qo'llanilishi mumkin.

Men, albatta, bu narsalarni chuqurroq qazib olardim. Ammo hozircha, o'z-o'zidan boshqariladigan avtomobil dasturining qolgan qismini tugatishga ijozat bering-1. Keyinchalik boshqa hikoyalar kutmoqda;).