Съдържание:

Анализ на основните компоненти: 4 стъпки
Анализ на основните компоненти: 4 стъпки

Видео: Анализ на основните компоненти: 4 стъпки

Видео: Анализ на основните компоненти: 4 стъпки
Видео: Видео 4 Маратон Стъпки към успеха 2024, Ноември
Anonim
Анализ на основните компоненти
Анализ на основните компоненти

Анализът на основните компоненти е статистически метод, който преобразува набор от евентуално корелирани променливи в набор от линейно некорелирани стойности чрез използване на ортогонални трансформации. С прости думи, даващи набор от данни с множество измерения, той помага да се намали броят на измеренията, като по този начин улеснява четенето на данните.

Стъпка 1: Оригинални планове

Влязох в този клас с идеята, че искам да разбера и надявам се да напиша алгоритъм, който да може да извършва разпознаване на лица, когато е снабден с изображения. Нямах предишен опит или познания за нещо общо с разпознаването на лица и нямах представа колко е трудно да се постигне нещо подобно. След разговор с професор Малок осъзнах, че трябва да науча много неща, преди да мога да разбера напълно задачата, която в крайна сметка планирах да постигна.

След малко проучване най -накрая реших, че повече от всичко, от което се нуждая, за да науча линейна алгебра и някои основи на машинното обучение, и се спрях на PCA (анализ на основните компоненти) да бъде моята цел за този клас.

Стъпка 2: Изследване

Изследвания
Изследвания

Първата стъпка беше да посетя библиотеката и да намеря всяка книга, която ме запозна с машинното обучение и по -конкретно обработката на изображения. Това се оказа много по -трудно, отколкото си мислех и в крайна сметка нямах нищо особено. Тогава реших да попитам приятел, работещ в Vision Lab, който ме помоли да разгледам линейната алгебра и по -конкретно собствените вектори и собствените стойности. Имах известен опит с линейна алгебра от клас, който бях взел на втората си година, но не разбрах как собствените вектори или собствените стойности могат да бъдат полезни при работа с изображения. Докато изследвах повече, разбрах, че изображенията не са нищо друго освен огромни масиви от данни и следователно могат да бъдат третирани като матрици и ми стана малко по -ясно защо собствените вектори са от значение за това, което правя. В този момент реших, че трябва да се науча да чета изображения с помощта на python, тъй като щях да използвам python за моя проект. Първоначално започнах с използване на CV2.imread за четене на изображенията, но това се оказа наистина бавно и затова реших да използвам glob и PIL.image.open, за да го направя, тъй като това е много по -бързо. Този процес на хартия изглежда сравнително отнемащ време, но всъщност отне доста време, тъй като трябваше да се науча как да инсталирам и импортирам различни библиотеки в PyCharm (IDE) и след това да прочета документацията онлайн за всяка библиотека. В процеса на това също научих как да използвам pip install изявления в командния ред.

След това следващата стъпка беше да разбера какво точно искам да направя и да науча при обработката на изображения и първоначално планирах да направя съвпадение на шаблони, но докато проучвах това, научих за PCA и намерих, че е по -интересно, затова реших да отидете с PCA вместо това. Първият термин, който продължаваше да се появява, беше алгоритъмът K-NN (K-най-близък съсед). Това беше първото ми излагане на алгоритъм за машинно обучение. Научих за данните за обучението и тестването и какво означава „обучението“на алгоритъм. Разбирането на алгоритъма K-NN също беше предизвикателство, но беше много удовлетворяващо най-накрая да се разбере как работи. В момента работя върху това кода за K-NN да работи и съм много близо до завършване.

Стъпка 3: Преодолени трудности и извлечени уроци

Първата голяма трудност беше обхватът на самия проект. Това беше по-скоро изследователско, отколкото физическо. С течение на седмиците понякога бих погледнал напредъка, който постигнаха моите връстници, и почувствах, че не правя достатъчно или че не постигам достатъчно бърз напредък и това понякога е много демотивиращо. Говорейки с професор Малок и просто се уверих, че наистина научавам неща, които са много нови за мен, ми помогна да продължа. Друг проблем беше, че познаването на теоретичните неща и прилагането им са две различни неща. Въпреки че знаех какво трябва, всъщност кодирането му в python беше различна история. Това е мястото, където само четенето на документации онлайн и питането на приятели, които знаят повече за това, помогна много за окончателното изготвяне на план за действие.

Аз лично смятам, че наличието на по -голяма библиотека с книги и документи в М5 би могло да помогне на хората, които работят по проекти. Също така е добра идея за M5 да има цифров запис в реално време на проектите, изпълнявани от студенти, така че други студенти и персонал да могат да го разгледат и да се включат, ако ги интересува.

С приключването на проекта научих толкова много за толкова кратък период от време. Придобих много работещи познания за машинното обучение и имам чувството, че съм направил първите стъпки, за да се включа повече в него. Осъзнах, че харесвам компютърното зрение и че може да искам да се занимавам с това дори в бъдеще. Най -важното е, че научих какво е PCA, защо е толкова важно и как да го използвам.

Стъпка 4: Следващи стъпки

За мен това беше просто надраскване на повърхността на нещо много по -обширно и нещо, което е много важно в днешния свят, т.е. машинно обучение. Планирам в близко бъдеще да посещавам курсове, свързани с машинно обучение. Аз също планирам да изградя своя път към разпознаването на лица, тъй като оттам започна целият този проект. Имам и идеи за система за сигурност, която използва комбинирани функции (една от тях е лицето на лицето), за да я направи наистина сигурна и това е нещо, върху което искам да работя в бъдеще, когато имам по -широко разбиране за нещата.

За всеки като мен, който се интересува от машинно обучение и обработка на изображения, но няма предишен опит, бих препоръчал първо да научите и разберете линейната алгебра заедно със статистиката (особено разпределенията). Второ, бих предложил да прочетете Разпознаване на образи и машинно обучение от Кристофър М. Бишоп. Тази книга ми помогна да разбера основите на това, в което се впускам и е структурирана много добре.

Препоръчано: