Makine öğrenimi nedir? Verilerden türetilen zeka

Makine öğrenimi tanımlandı

Makine öğrenimi, verilerden otomatik olarak model oluşturmak için yöntemler veya algoritmalar içeren bir yapay zeka dalıdır. Açık kuralları izleyerek bir görevi yerine getiren bir sistemin aksine, bir makine öğrenimi sistemi deneyimden öğrenir. Kural tabanlı bir sistem, bir görevi her seferinde aynı şekilde (daha iyi veya daha kötü) gerçekleştirirken, bir makine öğrenimi sisteminin performansı, algoritmayı daha fazla veriye maruz bırakarak eğitim yoluyla iyileştirilebilir.

Makine öğrenimi algoritmaları genellikle denetimli (eğitim verileri yanıtlarla etiketlenir) ve denetimsiz (var olabilecek herhangi bir etiket eğitim algoritmasına gösterilmez ) olarak ikiye ayrılır . Denetlenen makine öğrenimi problemleri ayrıca sınıflandırmaya (kaçırılmış bir ipotek ödemesi olasılığı gibi sayısal olmayan yanıtları tahmin etme) ve gerileme (Manhattan mağazanızda gelecek ay satılacak gereçlerin sayısı gibi sayısal yanıtları tahmin etme ) ayrılmıştır .

Denetimsiz öğrenme ayrıca kümeleme (koşu ayakkabısı, yürüyüş ayakkabısı ve elbise ayakkabısı gibi benzer nesnelerin gruplarını bulma), ilişkilendirme (kahve ve krema gibi nesnelerin ortak sıralarını bulma) ve boyut azaltma (projeksiyon, özellik seçimi ) olarak ikiye ayrılır. ve özellik çıkarma).

Makine öğreniminin uygulamaları

Hepsi katıksız başarılar olmasa da, makine öğrenimi uygulamalarını günlük olarak duyuyoruz. Kendi kendine giden otomobiller, görevlerin basit ve başarılı (park yardımı ve otoyol şerit takibi) ile karmaşık ve zorlu (kentsel ortamlarda birkaç ölüme yol açan tam araç kontrolü) arasında değişen iyi bir örnektir.

Oyun oynama makine öğrenimi, insan dünya şampiyonlarını yenen dama, satranç, shogi ve Go için son derece başarılıdır. Otomatik dil çevirisi büyük ölçüde başarılı olmuştur, ancak bazı dil çiftleri diğerlerinden daha iyi çalışmaktadır ve çoğu otomatik çeviri insan çevirmenler tarafından hala geliştirilebilmektedir.

Otomatik konuşma metni ana akım aksanlara sahip kişiler için oldukça iyi işliyor, ancak bazı güçlü bölgesel veya ulusal aksanlara sahip kişiler için o kadar iyi değil; performans, satıcılar tarafından kullanılan eğitim setlerine bağlıdır. Sosyal medyanın otomatik duyarlılık analizi, muhtemelen eğitim setlerinin (örneğin, bir yorumu sayısal bir puanla birleştiren Amazon ürün derecelendirmeleri) büyük ve erişimi kolay olduğu için oldukça iyi bir başarı oranına sahiptir.

Özgeçmişlerin otomatik taranması tartışmalı bir konudur. Amazon, kadınlardan gelen tüm iş başvurularını düşürmesine neden olan eğitim örneği önyargıları nedeniyle dahili sistemini geri çekmek zorunda kaldı.

Halihazırda kullanımda olan diğer özgeçmiş tarama sistemleri, mevcut çalışanlara "benzeyen" adayları yasal olarak önemli olmayacak şekilde yükseltmelerine neden olan eğitim önyargılarına sahip olabilir (örneğin, İngilizce konuşan lüks mahallelerden genç, beyaz, erkek adaylar oyun oynamış) takım sporlarının taramayı geçme olasılığı daha yüksektir). Microsoft ve diğerlerinin araştırma çabaları, makine öğrenimindeki örtük önyargıları ortadan kaldırmaya odaklanıyor.

Patoloji ve radyoloji görüntülerinin otomatik sınıflandırması, belirli türdeki anormalliklerin tespiti için patologlara ve radyologlara yardımcı olabileceği (ancak onların yerini alamayacağı) noktaya kadar ilerlemiştir. Bu arada, yüz tanımlama sistemleri hem iyi çalıştıklarında tartışmalıdır (mahremiyet kaygıları nedeniyle) hem de kadınlar ve beyaz erkekler için olduğu kadar (eğitim popülasyonundaki önyargılar nedeniyle) beyaz olmayan insanlar için doğru olma eğiliminde değildir.

Makine öğrenimi algoritmaları

Makine öğrenimi, bir veri kümesini modele dönüştürmek için bir dizi algoritmaya bağlıdır. Hangi algoritmanın en iyi şekilde çalıştığı, çözdüğünüz sorunun türüne, mevcut bilgi işlem kaynaklarına ve verilerin doğasına bağlıdır. Hangi algoritmayı veya algoritmaları kullanırsanız kullanın, önce verileri temizlemeniz ve koşullandırmanız gerekir.

Her bir problem türü için en yaygın algoritmaları tartışalım.

Sınıflandırma algoritmaları

Bir sınıflandırma problemi, genellikle her sınıf için olasılıklar sağlayan, iki veya daha fazla sınıf arasında bir seçim yapılmasını isteyen denetimli bir öğrenme problemidir. Çok daha yüksek düzeyde bilgi işlem kaynağı gerektiren sinir ağlarını ve derin öğrenmeyi bırakarak, en yaygın algoritmalar Naive Bayes, Karar Ağacı, Lojistik Regresyon, K-En Yakın Komşular ve Destek Vektör Makinesi'dir (SVM). Ayrıca Random Forest gibi topluluk yöntemlerini (model kombinasyonları), diğer Torbalama yöntemlerini ve AdaBoost ve XGBoost gibi artırma yöntemlerini de kullanabilirsiniz.

Regresyon algoritmaları

Regresyon problemi, modelden bir sayıyı tahmin etmesini isteyen denetimli bir öğrenme problemidir. En basit ve en hızlı algoritma doğrusal (en küçük kareler) regresyondur, ancak burada durmamalısınız, çünkü genellikle vasat bir sonuç verir. Diğer yaygın makine öğrenimi regresyon algoritmaları (sinir ağlarının kısaltması) arasında Naive Bayes, Decision Tree, K-Nearest Neighbors, LVQ (Learning Vector Quantization), LARS Lasso, Elastic Net, Random Forest, AdaBoost ve XGBoost bulunur. Regresyon ve sınıflandırma için makine öğrenimi algoritmaları arasında bazı örtüşmeler olduğunu fark edeceksiniz.

Kümeleme algoritmaları

Kümeleme problemi, modelden benzer veri noktalarından oluşan grupları bulmasını isteyen denetimsiz bir öğrenme problemidir. En popüler algoritma K-Means Kümelemedir; diğerleri arasında Ortalama Kayma Kümeleme, DBSCAN (Gürültülü Uygulamaların Yoğunluğuna Dayalı Uzamsal Kümelenmesi), GMM (Gaussian Karışım Modelleri) ve HAC (Hiyerarşik Aglomeratif Kümeleme) bulunur.

Boyut azaltma algoritmaları

Boyut azaltma, modelden sonuç üzerinde çok az etkisi olan veya hiç etkisi olmayan değişkenleri bırakmasını veya birleştirmesini isteyen denetimsiz bir öğrenme problemidir. Bu genellikle sınıflandırma veya regresyon ile birlikte kullanılır. Boyut azaltma algoritmaları, birçok eksik değere sahip değişkenleri kaldırma, düşük varyanslı değişkenleri kaldırma, Karar Ağacı, Rastgele Orman, yüksek korelasyonlu değişkenleri kaldırma veya birleştirme, Geriye Dönük Özellik Kaldırma, İleri Özellik Seçimi, Faktör Analizi ve PCA (Ana Bileşen Analizi) içerir.

Optimizasyon yöntemleri

Eğitim ve değerlendirme, verilerinizin temel gerçeğine en iyi uyan değer kümesini bulmak için parametre ağırlıklarını optimize ederek denetimli öğrenme algoritmalarını modellere dönüştürür. Algoritmalar genellikle optimize ediciler için en dik iniş varyantlarına dayanır, örneğin rastgele başlangıç ​​noktalarından birçok kez gerçekleştirilen en dik iniş olan stokastik gradyan inişi (SGD).

SGD üzerindeki yaygın iyileştirmeler, eğimin yönünü momentuma dayalı olarak düzelten veya öğrenme oranını verilerden ( dönem veya toplu olarak adlandırılır) bir geçişten diğerine ilerlemeye dayalı olarak ayarlayan faktörler ekler .

Sinir ağları ve derin öğrenme

Sinir ağları, biyolojik görsel korteksin mimarisinden ilham aldı. Derin öğrenme, özellikleri tanımlamak için çok sayıda "gizli" katman içeren sinir ağlarında öğrenmeye yönelik bir dizi tekniktir. Gizli katmanlar, girdi ve çıktı katmanları arasına gelir. Her katman, genellikle sigmoid veya ReLU (Rectified Linear Unit) aktivasyon fonksiyonlarına sahip yapay nöronlardan oluşur.

İleri beslemeli bir ağda, nöronlar farklı katmanlar halinde düzenlenir: bir giriş katmanı, herhangi bir sayıda gizli işlem katmanı ve bir çıktı katmanı ve her katmandan gelen çıktılar yalnızca bir sonraki katmana gider.

Kısayol bağlantıları olan ileri beslemeli bir ağda, bazı bağlantılar bir veya daha fazla ara katman üzerinden atlayabilir. Tekrarlayan sinir ağlarında, nöronlar kendilerini doğrudan veya dolaylı olarak bir sonraki katman üzerinden etkileyebilirler.

Bir sinir ağının denetimli öğrenimi, diğer makine öğrenimi gibi yapılır: Ağı eğitim verisi gruplarıyla sunar, ağ çıktısını istenen çıktıyla karşılaştırır, bir hata vektörü oluşturur ve hata vektörüne dayalı olarak ağa düzeltmeler uygularsınız. , genellikle bir geri yayılım algoritması kullanır. Düzeltmeler uygulanmadan önce birlikte çalıştırılan eğitim verisi yığınlarına dönem adı verilir.

Tüm makine öğreniminde olduğu gibi, sinir ağının tahminlerini ayrı bir test veri kümesine göre kontrol etmeniz gerekir. Bunu yapmadan, genelleştirilmiş yordayıcı olmayı öğrenmek yerine yalnızca girdilerini ezberleyen sinir ağları oluşturma riskini alırsınız.

Görme için sinir ağı alanındaki atılım, Yann LeCun'un 32x32 piksel görüntülerde sayısallaştırılmış el yazısı rakamların tanınması için yedi seviyeli bir evrişimli sinir ağı (CNN) olan 1998 LeNet-5'iydi . Daha yüksek çözünürlüklü görüntüleri analiz etmek için ağın daha fazla nörona ve daha fazla katmana ihtiyacı olacaktır.

Evrişimli sinir ağları, görsel bir korteksi simüle etmek için tipik olarak evrişimli, havuzlama, ReLU, tamamen bağlı ve kayıp katmanları kullanır. Evrişim katmanı temelde üst üste binen birçok küçük bölgenin integrallerini alır. Havuzlama katmanı, doğrusal olmayan aşağı örnekleme biçimini gerçekleştirir. Daha önce bahsettiğim ReLU katmanları, doyurucu olmayan aktivasyon işlevini uygular f(x) = max(0,x).

Tamamen bağlantılı bir katmanda, nöronların önceki katmandaki tüm aktivasyonlarla tam bağlantıları vardır. Bir kayıp katmanı, sınıflandırma için bir Softmax veya çapraz entropi kaybı veya regresyon için bir Öklid kaybı kullanarak, ağ eğitiminin tahmin edilen ve gerçek etiketler arasındaki sapmayı nasıl cezalandırdığını hesaplar.

Doğal dil işleme (NLP), derin öğrenme için bir başka önemli uygulama alanıdır. Google Translate tarafından ele alınan makine çevirisi sorununa ek olarak, başlıca NLP görevleri arasında otomatik özetleme, ortak referans çözümleme, söylem analizi, morfolojik bölümleme, adlandırılmış varlık tanıma, doğal dil oluşturma, doğal dil anlama, konuşma parçası etiketleme, duyarlılık bulunur. analiz ve konuşma tanıma.

CNN'lere ek olarak, NLP görevleri genellikle Uzun-Kısa Süreli Bellek (LSTM) modelini içeren tekrarlayan sinir ağları (RNN'ler) ile ele alınır.

Derin bir sinir ağında ne kadar çok katman varsa, modeli bir CPU üzerinde eğitmek için o kadar fazla hesaplama gerekir. Sinir ağları için donanım hızlandırıcılar arasında GPU'lar, TPU'lar ve FPGA'ler bulunur.

Takviye öğrenme

Pekiştirmeli öğrenme, bir aktörü veya ajanı bir ortama , genellikle deneme yanılma yoluyla bir değeri en üst düzeye çıkaracak şekilde yanıt vermesi için eğitir . Bu, denetimli ve denetimsiz öğrenmeden farklıdır, ancak genellikle onlarla birleştirilir.

Örneğin, DeepMind'in AlphaGo'su, Go oyununu (çevre) oynamayı (aksiyonu) öğrenmek için, önce insan Go oyuncularını büyük bir veri setinden (çırak öğrenimi) taklit etmeyi öğrendi. Daha sonra kendi bağımsız örneklerine karşı çok sayıda Go oyunu oynayarak deneme yanılma yoluyla (pekiştirmeli öğrenme) oyununu geliştirdi.

Robotik kontrol, derin pekiştirmeli öğrenme yöntemleriyle saldırıya uğrayan başka bir sorundur, yani pekiştirmeli öğrenme artı derin sinir ağları, derin sinir ağları genellikle video karelerinden özellikler çıkarmak için eğitilmiş CNN'lerdir.

Makine öğrenimi nasıl kullanılır?

Makine öğrenimi modeli oluşturmaya nasıl gidilir? Verileri temizleyerek ve koşullandırarak başlayın, özellik mühendisliğine devam edin ve ardından mantıklı olan her makine öğrenimi algoritmasını deneyin. Görme ve doğal dil işleme gibi belirli problem sınıfları için, işe yaraması muhtemel algoritmalar derin öğrenmeyi içerir.

Makine öğrenimi için veri temizleme

Doğada temiz veri diye bir şey yoktur. Makine öğrenimi için yararlı olması için, verilerin agresif bir şekilde filtrelenmesi gerekir. Örneğin, şunları yapmak isteyeceksiniz:

  1. Verilere bakın ve çok fazla eksik veriye sahip sütunları hariç tutun.
  2. Verilere tekrar bakın ve tahmininiz için kullanmak istediğiniz sütunları ( özellik seçimi ) seçin. Bu, yinelediğinizde değiştirmek isteyebileceğiniz bir şeydir.
  3. Kalan sütunlarda hala eksik veri bulunan satırları hariç tutun.
  4. Bariz yazım hatalarını düzeltin ve eşdeğer yanıtları birleştirin. Örneğin ABD, ABD, ABD ve Amerika tek bir kategori altında birleştirilmelidir.
  5. Aralık dışında verilere sahip satırları hariç tutun. Örneğin, New York City içindeki taksi yolculuklarını analiz ediyorsanız, metropol alanının sınırlayıcı kutusunun dışında kalan alma veya bırakma enlemleri ve boylamları içeren satırları filtrelemek isteyeceksiniz.

Yapabileceğiniz daha çok şey var, ancak toplanan verilere bağlı olacaktır. Bu sıkıcı olabilir, ancak makine öğrenimi ardışık düzeninizde bir veri temizleme adımı ayarlarsanız, bunu istediğiniz zaman değiştirebilir ve tekrarlayabilirsiniz.

Makine öğrenimi için veri kodlama ve normalleştirme

Makine sınıflandırmasında kategorik verileri kullanmak için metin etiketlerini başka bir forma kodlamanız gerekir. İki ortak kodlama vardır.

Biri etiket kodlamadır , yani her metin etiketi değerinin bir sayıyla değiştirildiği anlamına gelir. Diğeri ise tekli kodlamadır , yani her metin etiketi değeri ikili değer (1 veya 0) olan bir sütuna dönüştürülür. Çoğu makine öğrenimi çerçevesi, dönüşümü sizin için yapan işlevlere sahiptir. Etiket kodlaması bazen makine öğrenimi algoritmasını kodlanmış sütunun sıralı olduğunu düşünerek karıştırabildiğinden, genel olarak tek sıcak kodlama tercih edilir.