Makine Öğrenimi Sorunlarına Nasıl Yaklaşılır?
Yayınlanan: 2022-03-11Bilgisayarların temel görevlerinden biri, insan görevlerini otomatikleştirmektir. Bu görevlerden bazıları, "X'i A'dan B'ye taşıma" gibi basit ve tekrarlayıcıdır. Bilgisayarın resmileştirilmesi çok daha zor olan sorunlar hakkında kararlar alması gerektiğinde çok daha ilginç hale gelir. Temel makine öğrenimi problemleriyle karşılaşmaya başladığımız yer burasıdır.
Tarihsel olarak, bu tür algoritmalar, kendi alanları hakkında derin bilgiye sahip olan ve büyük ölçüde kurallara dayanan bilim adamları veya uzmanlar tarafından inşa edildi. Bilgi işlem gücünün patlaması ve büyük ve çeşitli veri kümelerinin mevcudiyeti ile odak, daha hesaplamalı bir yaklaşıma doğru kaymıştır.
Bugünlerde en popüler makine öğrenimi kavramlarının sinir ağları ile ilgisi var ve deneyimlerime göre bu, birçok insanda sinir ağlarının tüm çıkarım problemleri için bir tür mucize silah olduğu izlenimini yarattı. Aslında, bu gerçeklerden oldukça uzak. İstatistikçilerin gözünde, ilgili güçlü ve zayıf yönleriyle bir sınıf çıkarım yaklaşımları oluştururlar ve bu tamamen sinir ağlarının en iyi çözüm olup olmayacağı soruna bağlıdır.
Oldukça sık, daha iyi yaklaşımlar vardır.
Bu yazıda, makine öğrenimi sorunlarına saldırmak için bir yapı ana hatlarıyla anlatacağız. Belirli makine öğrenimi modelleri hakkında çok fazla ayrıntıya girmenin bir kapsamı yoktur, ancak bu makale ilgi uyandırırsa, sonraki makaleler bazı ilginç makine öğrenimi sorunları için ayrıntılı çözümler sunabilir.
Ancak önce, bir makine öğrenimi sorunuyla karşılaştığınızda neden otomatik olarak "sinir ağı" düşünmekten daha ihtiyatlı olmanız gerektiğini göstermek için biraz çaba harcayalım.
Sinir Ağlarının Artıları ve Eksileri
Sinir ağları ile çıkarım, ağırlıklı bir “ağ” üzerinden yapılır. Ağırlıklar, sözde "öğrenme" süreci sırasında kalibre edilir ve ardından sonuçları girdilere atamak için uygulanır.
Kulağa ne kadar basit gelse de, tüm ağırlıklar kalibre edilmiş ağın parametreleridir ve genellikle bu, bir insanın anlamlandıramayacağı kadar çok parametre anlamına gelir.
Bu yüzden, sinir ağlarını, aralarında belirli bir model olmadan, girdiyi çıktıya bağlayan bir tür çıkarım kara kutusu olarak da düşünebiliriz.
Bu yaklaşımın artılarını ve eksilerini daha yakından inceleyelim.
Sinir Ağlarının Avantajları
- Girdi, verinin kendisidir. Çok az veya hiç özellik mühendisliği olmadan bile kullanılabilir sonuçlar.
- Eğitilebilir beceri. Özellik mühendisliği olmadan, sezgi veya alan uzmanlığı gibi geliştirilmesi zor becerilere gerek yoktur. Genel çıkarımlar için standart araçlar mevcuttur.
- Doğruluk, veri miktarı ile artar. Ne kadar çok girdi görürse, bir sinir ağı o kadar iyi performans gösterir.
- Model hakkında tam bilgi olmadığında klasik modellerden daha iyi performans gösterebilir . Birincisi, halkın duyarlılığını düşünün.
- Açık uçlu çıkarım, bilinmeyen kalıpları keşfedebilir. Bir model kullanır ve bunun dışında bir değerlendirme bırakırsanız, ilgili fenomeni algılamayacaktır. Sinir ağları olabilir.
Başarılı sinir ağı örneği: Google'ın yapay zekası, birikmiş teleskop verilerini analiz ederek, NASA'nın yapmadığı uzak bir yıldızın yörüngesinde dönen bir gezegen buldu.
Sinir Ağlarının Dezavantajları
- Çok fazla (açıklamalı!) veri gerektirirler. İlk olarak, bu miktarda veri her zaman mevcut değildir. Yakınsama yavaştır. Katı bir model (örneğin fizikte) birkaç gözlemden sonra kalibre edilebilir - sinir ağları ile bu söz konusu olamaz. Ek açıklama çok iştir, kendi içinde kusursuz olmadığını söylemeye gerek bile yok.
- Verilerin iç yapısı hakkında bilgi yok. Çıkarımın neye dayandığıyla ilgileniyor musunuz? Burada şans yok. Verileri manuel olarak ayarlamanın bir sıçrama ile çıkarımı iyileştirdiği durumlar vardır, ancak bir sinir ağı bu konuda yardımcı olamaz.
- Aşırı uyum sorunları. Ağın verilerin doğruladığından daha fazla parametreye sahip olması sıklıkla olur ve bu da yetersiz çıkarsamaya yol açar.
- Performans bilgiye bağlıdır. Bir problem hakkında tam bilgi varsa, katı bir model bir sinir ağından daha iyi performans gösterme eğilimindedir.
- Örnekleme sorunları var. Örnekleme her zaman hassas bir konudur, ancak bir modelle hızlı bir şekilde sorunlu örnekleme kavramı geliştirilebilir. Sinir ağları yalnızca verilerden öğrenir, bu nedenle taraflı veriler alırlarsa taraflı sonuçlara sahip olurlar.
Bir başarısızlık örneği: Kişisel bir ilişki, hava fotoğraflarında askeri araçları tespit etmeye çalışan büyük bir şirketten (adını veremediğim) bahsetti. Bu tür araçların olduğu ve olmayan diğerlerinin olduğu görüntüler vardı. Birinci sınıfın çoğu fotoğrafı yağmurlu bir günde, ikincisi ise güneşli bir havada çekildi. Sonuç olarak, sistem ışığı gölgeden ayırmayı öğrendi.
Özetlemek gerekirse, sinir ağları, artıları ve eksileri olan bir çıkarım yöntemleri sınıfını oluşturur.
Halkın gözünde popülerliklerinin diğer tüm istatistiksel yöntemleri geride bırakması, muhtemelen her şeyden çok kurumsal yönetimle ilgilidir.
İnsanları standart araçları ve standartlaştırılmış sinir ağı yöntemlerini kullanmaları için eğitmek, çeşitli alanlardan alan uzmanları ve sanatçılar aramaktan çok daha öngörülebilir bir süreçtir. Ancak bu, basit, iyi tanımlanmış bir problem için bir sinir ağı kullanmanın gerçekten sadece bir topla bir serçeyi vurmak olduğu gerçeğini değiştirmez: Çok fazla veriye ihtiyaç duyar, çok fazla açıklama çalışması gerektirir ve karşılığında katı bir modelle karşılaştırıldığında sadece düşük performans gösterir. En iyi paket değil.
Yine de, istatistiksel bilgiyi “demokratikleştirmelerinde” büyük bir güç var. Sinir ağı tabanlı bir çıkarım çözümü yalnızca bir programlama aracı olarak görüldüğünde, karmaşık algoritmalarla rahat hissetmeyenlere bile yardımcı olabilir. Dolayısıyla, kaçınılmaz olarak, yalnızca sofistike modellerle çalışabilseydik, aksi takdirde var olmayacak birçok şey inşa edildi.

Yaklaşan Makine Öğrenimi Sorunları
Makine öğrenimi sorunlarına yaklaşırken izlemeniz gereken adımlar şunlardır:
- Kabul kriterlerini belirleme
- Verilerinizi temizleme ve bilgi içeriğini en üst düzeye çıkarma
- En uygun çıkarım yaklaşımını seçme
- Eğit, test et, tekrar et
Bu maddeleri ayrıntılı olarak görelim.
Kabul Kriterlerini Belirleme
Mümkün olan en kısa sürede, hedef doğruluğunuz hakkında bir fikriniz olmalıdır. Bu, üzerinde çalıştığınız hedef olacak.
Verilerinizi Temizleme ve Bilgi İçeriğini En Üst Düzeye Çıkarma
Bu en kritik adımdır. Her şeyden önce, verilerinizin hiç (veya birkaç) hatası olmamalıdır. Bunları temizlemek önemli bir ilk adımdır. Eksik değerleri değiştirin, açıkça sahte olan kalıpları belirlemeye çalışın, yinelenenleri ve fark edebileceğiniz diğer anormallikleri ortadan kaldırın.
Bilgiye gelince, verileriniz çok bilgilendiriciyse (doğrusal anlamda), o zaman pratik olarak herhangi bir çıkarım yöntemi size iyi sonuçlar verecektir. Gerekli bilgi orada değilse, sonuç gürültü olacaktır. Bilgiyi en üst düzeye çıkarmak, öncelikle verilerde herhangi bir yararlı doğrusal olmayan ilişkiyi bulmak ve bunları doğrusallaştırmak anlamına gelir. Bu, girdileri önemli ölçüde geliştirirse, harika. Değilse, daha fazla değişken eklenmesi gerekebilir. Bütün bunlar meyve vermezse, hedef doğruluğu zarar görebilir.
Biraz şansla, yararlı olan tek değişkenler olacaktır. Örneğin, bunları öğrenme hedefi değişken(ler)ine göre çizerseniz ve grafiğin fonksiyona benzer olduğunu bulursanız (yani, girdideki dar aralık, çıktıdaki dar aralığa karşılık gelir) faydalı değişkenleri tanımlayabilirsiniz. Bu değişken daha sonra doğrusallaştırılabilir - örneğin, bir parabol olarak çizilirse, bazı değerleri çıkarın ve karekökünü alın.
Gürültülü değişkenler için - girdideki dar aralık çıktıdaki geniş bir aralığa karşılık gelir - bunları diğer değişkenlerle birleştirmeyi deneyebiliriz.
Doğruluk hakkında bir fikir sahibi olmak için, değişkenlerinizin her biri için (sınıflandırma problemleri için) koşullu sınıf olasılıklarını ölçmek veya lineer regresyon (tahmin problemleri için) gibi çok basit bir regresyon biçimi uygulamak isteyebilirsiniz. Girdinin bilgi içeriği iyileşirse, çıkarımınız da iyileşir ve bu aşamada veriler henüz hazır olmadığında bir modeli kalibre etmek için çok fazla zaman kaybetmek istemezsiniz. Bu nedenle, testi mümkün olduğunca basit tutun.
En Optimal Çıkarım Yaklaşımını Seçme
Verileriniz iyi durumda olduğunda, çıkarım yöntemine gidebilirsiniz (gerekirse veriler daha sonra cilalanabilir).
Bir model kullanmalı mısınız? Görev için iyi bir model oluşturabileceğinize inanmak için iyi bir nedeniniz varsa, muhtemelen yapmalısınız. Öyle düşünmüyorsanız, ancak iyi açıklamalara sahip bol miktarda veri varsa, bir sinir ağı ile eller serbest olarak gidebilirsiniz. Ancak pratik makine öğrenimi uygulamalarında genellikle bunun için yeterli veri yoktur.
Doğruluk ve siper oynamak çoğu zaman muazzam bir sonuç verir. Hibrit yaklaşımlar genellikle tamamen iyidir. Verilerin, basit bir modelle %80'inde %100'e yakın doğruluk elde edebileceğiniz şekilde olduğunu varsayalım. Bu, sonuçları hızlı bir şekilde kanıtlayabileceğiniz anlamına gelir ve sisteminiz, %80 dost bölgesinde çalıştığını belirleyebiliyorsa, sorunun çoğunu çözmüşsünüz demektir. Müşteriniz henüz tam olarak mutlu olmayabilir, ancak bu size güvenlerini çabucak kazandıracaktır. Ve kalan veriler üzerinde benzer bir şey yapmanızı engelleyecek hiçbir şey yok: makul bir çabayla artık verilerin %92'sini %97 doğrulukla kapsıyorsunuz. Doğru, verilerin geri kalanında bu bir yazı tura, ancak zaten faydalı bir şey ürettiniz.
Çoğu pratik uygulama için bu çok kullanışlıdır. Diyelim ki borç verme işindesiniz ve kime borç vereceğinize karar vermek istiyorsunuz ve tek bildiğiniz müşterilerin %70'inde algoritmanızın çok doğru olduğu. Harika—doğru, başvuranlarınızın diğer %30'u daha fazla işleme ihtiyaç duyacaktır, ancak %70'i tamamen otomatikleştirilebilir. Veya: çağrı merkezleri için operatör çalışmasını otomatikleştirmeye çalıştığınızı varsayalım, yalnızca en basit görevlerde iyi (hızlı ve kirli) bir iş yapabilirsiniz, ancak bu görevler aramaların %50'sini kapsıyor mu? Harika, çağrı merkezi, aramalarının %50'sini güvenilir bir şekilde otomatikleştirebilirse paradan tasarruf eder.
Özetlemek gerekirse: Veriler yeterince bilgilendirici değilse veya sorun bütünüyle ele alınamayacak kadar karmaşıksa, kutunun dışında düşünün. Daha iyi bir fikriniz olana kadar faydalı ve çözülmesi kolay alt problemleri belirleyin.
Sisteminizi hazır hale getirdikten sonra, sonuçlardan memnun kalana kadar öğrenin, test edin ve döngüye alın.
Eğit, Test Et, Tekrar Et
Önceki adımlardan sonra, çok az ilgi kaldı. Verileriniz var, makine öğrenme yönteminiz var, bu yüzden öğrenme yoluyla parametreleri çıkarma ve ardından çıkarımı test setinde test etme zamanı. Literatür, kayıtların %70'inin eğitim için ve %30'unun test için kullanılması gerektiğini önermektedir.
Sonuçlardan memnunsanız görev tamamlanmıştır. Ancak, büyük olasılıkla, prosedür sırasında bazı yeni fikirler geliştirdiniz ve bunlar, doğruluk konusunda ilerlemenize yardımcı olabilir. Belki daha fazla veriye ihtiyacınız var? Yoksa sadece daha fazla veri temizliği mi? Yoksa başka bir model mi? Her iki durumda da, bir süre meşgul olma ihtimaliniz var.
Öyleyse, iyi şanslar ve önünüzdeki işin tadını çıkarın!
- Makineler ve Güven: Yapay Zeka Önyargısını Azaltma
- Yıldızlar Yeniden Düzenlendi: IMDb Derecelendirme Sisteminin İyileştirilmesi