İçindekiler:

Temel Bileşen Analizi: 4 Adım
Temel Bileşen Analizi: 4 Adım

Video: Temel Bileşen Analizi: 4 Adım

Video: Temel Bileşen Analizi: 4 Adım
Video: Principal Component Analysis (Temel Bileşenler Analizi, PCA) 2024, Kasım
Anonim
Temel bileşenler Analizi
Temel bileşenler Analizi

Temel Bileşen Analizi, ortogonal dönüşümler kullanarak bir dizi olası ilişkili değişkeni bir dizi doğrusal ilişkisiz değere dönüştüren istatistiksel bir yöntemdir. Basit bir ifadeyle, birden çok boyuta sahip bir veri kümesi verildiğinde, boyutların sayısını azaltmaya yardımcı olarak verilerin okunmasını kolaylaştırır.

Adım 1: Orijinal Planlar

Bu derse, anlamak istediğim fikirle geldim ve umarım görsellerle birlikte verildiğinde yüz tanıma işlemini gerçekleştirebilecek bir algoritma yazabilirim. Yüz tanıma ile ilgili daha önce hiçbir deneyimim veya bilgim yoktu ve böyle bir şeyi başarmanın ne kadar zor olduğu hakkında hiçbir fikrim yoktu. Profesör Malloch ile konuştuktan sonra, sonunda başarmayı planladığım görevi tam olarak anlayabilmek için birçok şey öğrenmem gerektiğini fark ettim.

Biraz araştırmadan sonra nihayet lineer cebir ve makine öğreniminin bazı temellerini öğrenmek için her şeyden çok ihtiyacım olduğuna karar verdim ve bu ders için hedefim PCA'ya (temel bileşen analizi) karar verdim.

2. Adım: Araştırma

Araştırma
Araştırma

İlk adım Kütüphaneyi ziyaret etmek ve beni makine öğrenimi ve daha özel olarak görüntü işleme ile tanıştıran herhangi bir kitabı bulmaktı. Bunun düşündüğümden çok daha zor olduğu ortaya çıktı ve bundan fazla bir şey alamadım. Daha sonra, Vision Lab'de çalışan ve benden lineer cebir ve daha spesifik olarak özvektörler ve özdeğerlere bakmamı isteyen bir arkadaşıma sormaya karar verdim. İkinci sınıfta aldığım bir derste lineer cebir konusunda biraz deneyimim vardı ama özvektörlerin veya özdeğerlerin görüntülerle uğraşırken nasıl faydalı olabileceğini anlamadım. Daha fazla araştırdıkça, görüntülerin devasa veri kümelerinden başka bir şey olmadığını ve dolayısıyla matris olarak ele alınabileceğini anladım ve özvektörlerin yaptığım şeyle neden alakalı olduğu konusunda biraz daha netleştim. Bu noktada projem için python kullanacağım için python kullanarak resim okumayı öğrenmem gerektiğine karar verdim. Başlangıçta, görüntüleri okumak için CV2.imread kullanarak başladım ama bu gerçekten yavaştı ve bu yüzden çok daha hızlı olduğu için bunu yapmak için glob ve PIL.image.open kullanmaya karar verdim. Kağıt üzerinde bu işlem nispeten zaman alıcı değil gibi görünüyor, ancak farklı kitaplıkları PyCharm'a (IDE) nasıl kuracağımı ve içe aktaracağımı öğrenmek ve ardından her kitaplık için belgeleri çevrimiçi olarak okumak zorunda kaldığım için aslında çok zaman aldı. Bunu yaparken, komut isteminde pip install deyimlerinin nasıl kullanılacağını da öğrendim.

Bundan sonraki adım, görüntü işlemede tam olarak ne yapmak ve öğrenmek istediğimi bulmaktı ve başlangıçta şablon eşleştirme yapmayı planlıyordum ama bunun için araştırırken PCA'yı öğrendim ve daha ilginç buldum ve bu yüzden karar verdim. bunun yerine PCA ile gidin. Sürekli ortaya çıkan ilk terim K-NN (K- en yakın komşu) algoritmasıydı. Bu benim bir makine öğrenimi algoritmasına ilk kez maruz kalmamdı. Eğitim ve test verilerini ve bir algoritmanın 'eğitiminin' ne anlama geldiğini öğrendim. K-NN algoritmasını anlamak da zordu ama sonunda nasıl çalıştığını anlamak çok tatmin ediciydi. Şu anda K-NN kodunun çalışması için çalışıyorum ve tamamlamaya çok yakınım.

3. Adım: Karşılaşılan Zorluklar ve Alınan Dersler

İlk büyük zorluk, projenin kapsamıydı. Bu, fiziksel olmaktan çok araştırma odaklıydı. Haftalar geçtikçe akranlarımın kaydettiği ilerlemeye bakar ve yeterince yapmadığımı veya yeterince hızlı ilerleme kaydetmediğimi hissederdim ve bu bazen çok moral bozucuydu. Profesör Malloch ile konuşmak ve benim için çok yeni şeyler öğrendiğime dair kendime güvence vermek, devam etmeme yardımcı oldu. Bir diğer sorun da teorik bilgileri bilmekle uygulamak farklı şeylerdir. Ne yapmam gerektiğini bilsem de aslında onu python ile kodlamak farklı bir hikayeydi. Bu, sadece çevrimiçi belgeleri okumak ve bunu bilen arkadaşlara sormak, sonunda bir eylem planı bulmada çok yardımcı oldu.

Şahsen, M5'te daha geniş bir kitap ve belge kütüphanesine sahip olmanın projeler üzerinde çalışan insanlara yardımcı olabileceğini düşünüyorum. Ayrıca, diğer öğrencilerin ve personelin projeye bakabilmesi ve ilgilerini çekiyorsa dahil olabilmesi için öğrenciler tarafından yapılan projelerin gerçek zamanlı dijital kaydına sahip olmak M5 için iyi bir fikirdir.

Proje sona ererken, bu kadar kısa sürede çok şey öğrendim. Çok işe yarayan bir makine öğrenimi bilgisi kazandım ve daha fazla dahil olmak için ilk adımları attığımı hissediyorum. Bilgisayar vizyonunu sevdiğimi ve gelecekte bile bunu sürdürmek isteyebileceğimi fark ettim. En önemlisi PCA'nın ne olduğunu, neden bu kadar önemli olduğunu ve nasıl kullanılacağını öğrendim.

4. Adım: Sonraki Adımlar

Benim için bu, çok daha geniş ve günümüz dünyasında çok önemli olan bir şeyin, yani makine öğreniminin yüzeyini kazımaktı. Yakın gelecekte makine öğrenimi ile ilgili kurslar almayı planlıyorum. Ayrıca tüm bu projenin başladığı yer olduğu için yüz tanımaya geçmeyi planlıyorum. Ayrıca, gerçekten güvenli hale getirmek için bir kombinasyon özellikleri (bunlardan biri kişinin yüzüdür) kullanan bir güvenlik sistemi için fikirlerim var ve bu, gelecekte daha geniş bir anlayışa sahip olduğumda üzerinde çalışmak istediğim bir şey..

Benim gibi makine öğrenimi ve görüntü işleme ile ilgilenen ancak önceden deneyimi olmayan herkes için, önce doğrusal cebiri ve istatistikleri (özellikle dağılımları) öğrenmesini ve anlamasını şiddetle tavsiye ederim. İkincisi, Christopher M. Bishop tarafından Örüntü Tanıma ve Makine Öğrenimi okumanızı öneririm. Bu kitap, içine girdiğim şeyin temellerini anlamama yardımcı oldu ve çok iyi bir şekilde yapılandırıldı.

Önerilen: