Əsas Komponent Analizi: 4 Addım
Əsas Komponent Analizi: 4 Addım
Anonim
Əsas komponentlərin təhlili
Əsas komponentlərin təhlili

Əsas Komponent Analizi, ortogonal transformasiyalardan istifadə etməklə bir -biri ilə əlaqəli ola biləcək bir çox dəyişənləri xətti əlaqəsiz dəyərlər toplusuna çevirən statistik bir üsuldur. Çox ölçülü bir verilənlər bazası verilən sadə sözlərlə, ölçü sayını azaltmağa kömək edir və bu səbəbdən məlumatların oxunmasını asanlaşdırır.

Addım 1: Orijinal Planlar

Bu sinifə, şəkillərlə təchiz edildikdə üz tanıma qabiliyyətinə malik bir alqoritmi başa düşmək və yazmaq istədiyim fikri ilə gəldim. Üz tanıma ilə əlaqəli heç bir təcrübə və ya məlumatım yox idi və buna bənzər bir şeyə nail olmağın nə qədər çətin olduğunu təsəvvür etmirdim. Professor Mallochla danışdıqdan sonra başa düşdüm ki, nəhayət əldə etməyi planlaşdırdığım vəzifəni tam başa düşmədən əvvəl çox şey öyrənməliyəm.

Bir az araşdırmadan sonra nəhayət qərara gəldim ki, xətti cəbri və maşın öyrənmənin bəzi əsaslarını öyrənməyim lazım olan hər şeydən çox və bu sinif üçün məqsədim olmaq üçün PCA -ya (əsas komponent təhlili) qərar verdim.

Addım 2: Araşdırma

Araşdırma
Araşdırma

İlk addım Kitabxananı ziyarət etmək və maşın öyrənmə və daha dəqiq desək, şəkil emalı ilə tanış olan hər hansı bir kitabı tapmaq idi. Düşündüyümdən daha çətin olduğu ortaya çıxdı və nəticədə heç bir şey əldə etmədim. Daha sonra Vizyon Laboratoriyasında işləyən bir dostumdan xətti cəbrə və daha konkret olaraq özvektorlara və öz dəyərlərinə baxmağımı xahiş etmək qərarına gəldim. İkinci kursda oxuduğum, ancaq öz vektorlarının və ya öz dəyərlərinin şəkillərlə işləyərkən necə faydalı ola biləcəyini anlamadığım bir sinifdən xətti cəbrlə bağlı bir az təcrübəm var idi. Daha çox araşdırdıqca anladım ki, şəkillər böyük məlumat dəstlərindən başqa bir şey deyil və buna görə də matris kimi qəbul edilə bilər və öz vektorlarının nə etdiyimlə əlaqəli olması mənim üçün bir az daha aydın oldu. Bu nöqtədə, layihəm üçün python istifadə edəcəyim üçün python istifadə edərək şəkilləri oxumağı öyrənməliyəm. Başlanğıcda, şəkilləri oxumaq üçün CV2.imread istifadə edərək başladım, amma bunun çox yavaş olduğu ortaya çıxdı və buna görə də bunu etmək üçün glob və PIL.image.open istifadə etmək qərarına gəldim. Kağızdakı bu proses nisbətən vaxt aparan görünmür, amma fərqli kitabxanaları PyCharm (IDE) üzərinə necə yükləməyi və idxal etməyi öyrənmək və sonra hər kitabxana üçün onlayn sənədləri oxumaq məcburiyyətində qaldığım üçün əslində yaxşı vaxt sərf etdi. Bunu edərkən, komanda satırında pip install ifadələrini necə istifadə edəcəyimi də öyrəndim.

Bundan sonra, növbəti addım şəkil emalında nə etmək və öyrənmək istədiyimi anlamaq idi və əvvəlcə şablon uyğunluğu etməyi planlaşdırırdım, amma bunu araşdırarkən PCA haqqında öyrəndim və daha maraqlı olduğunu gördüm, buna görə qərar verdim Bunun əvəzinə PCA ilə gedin. Yaranmağa davam edən ilk termin K-NN (K- ən yaxın qonşu) alqoritmi idi. Bu, maşın öyrənmə alqoritmi ilə ilk tanışlığım idi. Təlim və test məlumatlarını və bir alqoritmin "təliminin" nə demək olduğunu öyrəndim. K-NN alqoritmini başa düşmək də çətin idi, amma nəhayət necə işlədiyini başa düşmək çox məmnun idi. Hal-hazırda K-NN kodunun işləməsi üzərində işləyirəm və tamamlanmağa çox yaxınam.

Addım 3: Qarşılaşılan Çətinliklər və Öyrənilən Dərslər

İlk böyük çətinlik layihənin əhatə dairəsi idi. Bu, fiziki yox, daha çox tədqiqat yönümlü idi. Həftələr bir neçə dəfə keçdikcə həmyaşıdlarımın əldə etdiyi irəliləyişlərə baxırdım və kifayət qədər işlər görmədiyimi və ya kifayət qədər sürətli irəliləyiş əldə etmədiyimi və bəzən çox ruhdan düşdüyümü hiss edərdim. Professor Mallochla danışmaq və həqiqətən də mənim üçün çox yeni olan şeyləri öyrəndiyimə əmin olmaq mənə davam etməyimə kömək etdi. Başqa bir problem, nəzəri şeyləri bilmək və tətbiq etməyin iki fərqli şey olması idi. Nə etməli olduğumu bilsəm də, əslində pythonda kodlaşdırmaq fərqli bir hekayə idi. Burada yalnız sənədləri onlayn oxumaq və bu barədə daha çox bilən dostlarından soruşmaq, nəhayət bir hərəkət planını anlamağa çox kömək etdi.

Şəxsən düşünürəm ki, M5 -də daha böyük kitab və sənədlər kitabxanasının olması layihələr üzərində işləyən insanlara kömək edə bilər. Digər şagirdlərin və işçilərin maraqlandığı təqdirdə baxıb iştirak edə bilmələri üçün şagirdlər tərəfindən həyata keçirilən layihələrin real vaxt rəqəmsal qeydinə sahib olmaq M5 üçün yaxşı bir fikirdir.

Layihə başa çatdıqca qısa müddət ərzində çox şey öyrəndim. Maşın öyrənmə haqqında çox işlək bir məlumat əldə etdim və bu işdə daha çox iştirak etmək üçün ilk addımları atmış kimi hiss edirəm. Kompüter görmə qabiliyyətini sevdiyimi və gələcəkdə də bu işi davam etdirmək istəyə biləcəyimi başa düşdüm. Ən əsası, PCA -nın nə olduğunu, niyə bu qədər vacib olduğunu və ondan necə istifadə edəcəyimi öyrəndim.

Addım 4: Növbəti addımlar

Mənim üçün bu, daha geniş və bugünkü dünyada çox vacib olan bir şeyin, yəni maşın öyrənmənin səthini cızmaq idi. Yaxın gələcəkdə maşın öyrənmə ilə əlaqədar kurslar almağı planlaşdırıram. Bütün layihənin başladığı yer olduğu üçün üz tanıma yolunu qurmağı da düşünürəm. Həqiqətən etibarlı etmək üçün birləşmə xüsusiyyətlərindən istifadə edən bir təhlükəsizlik sistemi üçün fikirlərim də var (onlardan biri insanın üzüdür) və bu, gələcəkdə hər şeyi daha geniş anlayanda işləmək istədiyim bir şeydir..

Mənim kimi maşın öyrənmə və görüntü emalı ilə maraqlanan, lakin əvvəllər heç bir təcrübəsi olmayan hər kəs üçün ilk növbədə xətti cəbrlə yanaşı statistikanı (xüsusən paylamaları) öyrənməyi və başa düşməyi təklif edərdim. İkincisi, Christopher M. Bishop tərəfindən Nümunə Tanıma və Maşın Öyrənməsini oxumağı təklif edərdim. Bu kitab, daxil olduğum şeylərin əsaslarını başa düşməyimə kömək etdi və çox yaxşı qurulmuşdur.