Makine Öğrenimi ve Sinir Ağları - sayfa 60

 

Ders 16.2 — Hiyerarşik Koordinat Çerçeveleri



Ders 16.2 — Hiyerarşik Koordinat Çerçeveleri [Makine Öğrenimi için Sinir Ağları]

Bu videoda konuşmacı, bilgisayarla görmede nesne tanıma yaklaşımlarını birleştirmenin potansiyelini tartışıyor. Üç ana yaklaşımdan bahsedilmektedir: derin evrişimli sinir ağları (CNN'ler), parça tabanlı yaklaşımlar ve kapsamlı manuel mühendislik ile elle tasarlanmış özellikler.

CNN'lerin nesne tanımada etkili olduğu kanıtlanmış olsa da, konuşmacı kesin özellik dedektör konumlarını kaybetme ve yeni bakış açıları ve ölçeklere tahminde bulunma zorluğu gibi sınırlamalara dikkat çekiyor. Bu zorlukların üstesinden gelmek için konuşmacı, bir koordinat çerçeveleri hiyerarşisi kullanmayı ve bir özelliğin şeklinin birleşimini ve nöron gruplarını kullanarak retinaya göre pozu temsil etmeyi önerir.

Retinaya göre nesnelerin parçalarının pozlarını temsil ederek, parça pozlarının tutarlılığından yararlanarak daha büyük nesneleri tanımak daha kolay hale gelir. Konuşmacı, poz vektörlerini temsil etmek için sinirsel etkinlikleri kullanma yöntemini ve uzamsal ilişkilerin doğrusal işlemler olarak nasıl modellenebileceğini açıklar. Bu, görsel varlıkların hiyerarşilerini öğrenmeyi ve bakış açıları arasında genelleme yapmayı kolaylaştırır.

Konuşmacı, şekilleri etkili bir şekilde temsil etmek için koordinat çerçevelerini birleştirmenin önemini vurgular. Görsel sistemimizin şekilleri doğru bir şekilde tanımak için koordinat çerçevelerini nasıl empoze ettiğini gösteren örnekler sağlarlar. Bir şeklin algılanması, dayatılan koordinat çerçevesine bağlı olarak değişebilir ve koordinat çerçevelerinin şekil sunumundaki rolünü vurgular.

Video, koordinat çerçeveleri ve hiyerarşik gösterimlerden yararlanarak farklı nesne tanıma yaklaşımlarını birleştirme fikrini araştırıyor. Bu yaklaşım, CNN'lerin sınırlamalarını ele almayı ve uzamsal ilişkileri ve poz tutarlılığını dahil ederek nesne tanımayı geliştirmeyi amaçlamaktadır. Şekil algısında koordinat çerçevelerinin önemi de vurgulanmıştır.

Lecture 16.2 — Hierarchical Coordinate Frames [Neural Networks for Machine Learning]
Lecture 16.2 — Hierarchical Coordinate Frames [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
 

Ders 16.3 — Hiper parametrelerin Bayes optimizasyonu



Ders 16.3 — Hiper parametrelerin Bayes optimizasyonu [Makine Öğrenimi için Sinir Ağları]

Bu videoda, sinir ağlarında hiperparametrelerin nasıl belirlendiği sorusunu ele alan bazı yeni çalışmaları tartışacağım. Bu çalışmada sunulan yaklaşım, hiperparametreler için uygun değerlerin seçilmesine yardımcı olmak için farklı türde bir makine öğrenimi kullanır. Bu yöntem, hiperparametre ayarlarını manuel olarak ayarlamak yerine, süreci otomatikleştirmek için makine öğrenimini kullanır. Teknik, düzgün fonksiyonların modellenmesinde etkili olan Gauss süreçlerine dayanır. Gauss süreçleri geleneksel olarak konuşma ve görme gibi görevler için yetersiz kabul edilse de, benzer girdilerin benzer çıktılar verme eğiliminde olduğu sınırlı ön bilgiye sahip alanlar için çok uygundur.

Gizli birimlerin, katmanların sayısı, ağırlık cezası ve bırakma kullanımı gibi hiperparametreler, sinir ağı performansında çok önemli bir rol oynar. Doğru hiperparametre kombinasyonlarını bulmak, özellikle alanı manuel olarak keşfederken zor olabilir. Gauss süreçleri, verilerdeki eğilimleri belirlemede mükemmeldir ve iyi hiperparametre kümelerini etkili bir şekilde tanımlayabilir. Bir hiperparametre için yanlış bir değer ağı etkisiz hale getirebileceğinden, birçok araştırmacı hiperparametreleri doğru şekilde ayarlamanın zorluğu nedeniyle sinir ağlarını kullanmaktan çekinmektedir. Yaygın bir yaklaşım olan ızgara arama, çok sayıda hiperparametre ile uygulanamaz hale gelen tüm olası kombinasyonları kapsamlı bir şekilde denemeyi içerir.

Bununla birlikte, daha verimli bir yöntem, hiperparametre kombinasyonlarının rastgele örneklenmesini içerir. Bunu yaparak gereksiz deneylerden kaçınılır ve önemli bir etkiye sahip olan hiperparametrelere daha fazla dikkat edilir. Bununla birlikte, rastgele kombinasyonların sınırlamaları vardır ve makine öğreniminin devreye girdiği yer burasıdır. Makine öğrenimini kullanarak, bir lisansüstü öğrencinin hiperparametre değerlerini seçme sürecini simüle edebiliriz. Rastgele kombinasyonlara güvenmek yerine, şu ana kadar elde edilen sonuçları inceliyoruz ve hangi kombinasyonların iyi sonuçlar verebileceğini tahmin ediyoruz. Bu tahmin, hiperparametre uzayının olumlu sonuçlar sağlaması beklenen bölgelerinin belirlenmesini gerektirir.

Tahmine dayalı bir model oluşturmak için, tek bir hiperparametre ayarını değerlendirmenin, büyük bir sinir ağını büyük bir veri kümesi üzerinde günler sürebilen eğitmek gibi önemli hesaplama kaynakları gerektirdiğini varsayıyoruz. Öte yandan, önceki deneylere dayanan hiperparametre ayarlarının performansını tahmin etmek için bir model oluşturmak hesaplama açısından daha az yoğundur. Benzer girdilerin benzer çıktılara yol açtığını varsayan Gauss süreç modelleri bu tür tahminler için uygundur. Bu modeller, her girdi boyutunda benzerliği ölçmek için uygun ölçeği öğrenerek benzer ve benzemeyen hiperparametre değerlerini belirlememizi sağlar.

Dahası, Gauss süreç modelleri yalnızca bir deneyin beklenen sonucunu tahmin etmekle kalmaz, aynı zamanda bir varyans da dahil olmak üzere bir tahmin dağılımı sağlar. Önceki ayarlara benzer yeni hiperparametre ayarlarının performansını tahmin ederken, modellerin tahminleri kesindir ve düşük varyansa sahiptir. Tersine, önceki deneylerden önemli ölçüde farklı olan hiperparametre ayarları için tahminler yüksek varyansa sahiptir.

Bir sonraki hiperparametre ayarını belirlemek için Gauss süreçlerini kullanma stratejisi, şimdiye kadar gözlemlenen en iyi ayar üzerinde önemli bir gelişme sağlaması beklenen bir ayarın seçilmesini içerir. Elde edilen en iyi ayarın yerini almayacağı için kötü bir sonuçla karşılaşma riski kabul edilebilir. Bu strateji, önemli bir olumsuzluk olmadığı için risk almak için önemli teşviklere sahip olan hedge fon yöneticileri tarafından kullanılan yaklaşıma benzer. Bu stratejiyi izleyerek, bir sonraki adımda hangi hiperparametre ayarlarını keşfedeceğimiz konusunda bilinçli kararlar verebiliriz.

Bu politika, birden fazla deneyi paralel olarak çalıştıracak şekilde uyarlanabilir ve bu da süreci daha verimli hale getirir. İnsanlar olarak, çok sayıda deneyin sonuçlarını takip etmek ve sonuçlarını doğru bir şekilde tahmin etmek zordur. Bununla birlikte, Gauss süreç modelleri, verilerdeki eğilimleri ve kalıpları tespit edebildikleri için bu görevi etkin bir şekilde yerine getirebilir. Son olarak, Gauss süreci modelleri, insanlara kıyasla önyargıya daha az eğilimlidir. Araştırma yürütürken, araştırmacılar genellikle yeni yöntemleri için iyi hiperparametre ayarları bulmak için yerleşik yöntemlerden daha fazla çaba sarf etme eğilimindedir. Değerlendirilen tüm modeller için eşit derecede iyi hiperparametre kümeleri aradıkları için Gauss süreç modellerini kullanmak bu yanlılığı ortadan kaldırır. Sonuç olarak, Gauss süreç modelleri, sinir ağlarındaki hiperparametreleri belirlemek için güçlü ve verimli bir yaklaşım sağlar. Gauss süreçlerinin öngörü yeteneklerinden yararlanarak, hiperparametre değerleri seçme sürecini otomatik hale getirebilir, manuel keşif ve tahminde bulunma ihtiyacını azaltabiliriz.

Izgara arama gibi geleneksel yöntemler, çok sayıda hiperparametreyle uğraşırken pratik olmayabilir. Hiperparametrelerin rasgele örnekleme kombinasyonları daha verimli bir yaklaşımdır, ancak yine de sınırlamaları vardır. Makine öğrenimini dahil ederek, bir insan araştırmacının karar verme sürecini simüle edebilir ve hangi hiperparametre kombinasyonlarının iyi sonuçlar vermesi muhtemel olduğu konusunda daha bilinçli tahminler yapabiliriz. Gauss süreç modelleri bu görev için özellikle uygundur. Verilerdeki eğilimleri belirlemede mükemmeldirler ve hiperparametre ayarları ile performans sonuçları arasındaki ilişkiyi etkili bir şekilde modelleyebilirler. Bu modeller, yalnızca yeni hiperparametre ayarlarının beklenen performansını tahmin etmekle kalmaz, aynı zamanda bir belirsizlik ölçüsü de dahil olmak üzere bir tahmin dağılımı sağlar. Bu, tahminlerin güvenilirliğini değerlendirmemize ve daha bilinçli kararlar almamıza olanak tanır.

Gauss süreçlerini kullanma stratejisi, şimdiye kadar gözlemlenen en iyi ayarlar üzerinde önemli iyileştirmeler sağlaması beklenen hiperparametre ayarlarının seçilmesini içerir. Hesaplanmış riskler alarak ve önceki deneylerden önemli ölçüde farklı olan ayarları keşfederek potansiyel olarak daha da iyi yapılandırmalar keşfedebiliriz. Ayrıca Gauss süreç modelleri, birden çok deneyi paralel olarak işleyerek süreci daha verimli hale getirebilir. Verilerdeki eğilimleri ve kalıpları tespit ederek farklı hiperparametre ayarlarının eş zamanlı olarak keşfedilmesine olanak tanırlar. Gauss süreçlerini kullanmanın bir başka avantajı da yanlılığı en aza indirebilmeleridir. Araştırmacılar genellikle yeni yöntemleri için iyi hiperparametre ayarları bulmak için yerleşik yöntemlere kıyasla daha fazla çaba harcarlar. Gauss süreç modelleri, değerlendirilen tüm modellerde optimum hiperparametre kümelerini eşit şekilde arayarak bu önyargıyı ortadan kaldırır.

Gauss süreç modelleri, sinir ağlarındaki hiperparametreleri belirlemek için güçlü ve verimli bir yaklaşım sunar. Öngörü yeteneklerinden yararlanarak, süreci otomatikleştirebilir ve hangi hiperparametre ayarlarının keşfedileceği konusunda daha bilinçli kararlar verebiliriz. Bu yaklaşım, manuel araştırmaya olan güveni azaltır ve sinir ağı araştırmasında hiperparametre ayarının verimliliğini ve etkinliğini artırır.

Lecture 16.3 — Bayesian optimization of hyper-parameters [Neural Networks for Machine Learning]
Lecture 16.3 — Bayesian optimization of hyper-parameters [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
 

Ders 16.4 — İlerleme sisi



Ders 16.4 — İlerleme sisi [Makine Öğrenimi için Sinir Ağları]

Bu son videoda, sinir ağları üzerine yapılan araştırmaların geleceği hakkında tahminler yapmak istedim. Ancak, uzun vadeli tahminlerde bulunmaya çalışmanın neden son derece aptalca olacağını açıklamak istiyorum. Bu noktayı açıklamak için bir benzetme kullanacağım.

Gece araba kullandığınızı ve önünüzdeki arabanın arka lambalarına odaklandığınızı hayal edin. Bu arka lambalardan aldığınız foton sayısı, temiz hava varsayılarak mesafenin (1/d^2) ters karesi olarak azalır. Ancak sis varsa davranış değişir. Kısa mesafelerde, foton sayısı yine de 1/d^2 olarak düşer çünkü sis bu aralıkta fazla ışık emmez. Ancak daha büyük mesafelerde, sisin üstel bir etkisi olduğundan, azalma üstel bir işlevi (e^(-d)) izler. Birim mesafe başına fotonların bir kısmını emer ve mesafe arttıkça onu daha opak hale getirir. Bu, önünüzdeki arabanın, kısa menzilli modelinizin görülebileceğini tahmin ettiği bir mesafede tamamen görünmez olabileceği anlamına gelir. Bu fenomen, siste arabaların arkasına giren insanların neden olduğu kazalardan sorumludur.

Benzer şekilde, makine öğrenimi ve sinir ağları da dahil olmak üzere teknolojinin gelişimi tipik olarak üsteldir. Kısa vadede, ilerleme nispeten yavaş ve tahmin edilebilir görünmektedir. Bir sonraki iPhone modelinin özellikleri gibi yakın geleceğe dair makul tahminlerde bulunabiliriz. Bununla birlikte, uzun vadeli geleceğe daha yakından baktığımızda, tıpkı siste olduğu gibi, tahmin etme yeteneğimiz duvara çarpıyor. 30 yıl içinde ne olacağını bilmiyoruz çünkü üstel ilerleme beklenmedik ve dönüştürücü değişikliklere yol açabilir.

Bu nedenle, makine öğreniminin ve sinir ağlarının uzun vadeli geleceği tam bir gizem olmaya devam ediyor. Mevcut bilgilerimize dayanarak bunu tahmin edemeyiz. Ancak kısa vadede, diyelim ki 3 ila 10 yıl içinde oldukça doğru tahminler yapabiliriz. Bana öyle geliyor ki önümüzdeki beş yıl içinde büyük derin sinir ağları dikkate değer şeyler başarmaya devam edecek.

Bu fırsatı sonuna kadar kursa bağlı kaldığınız için hepinizi tebrik etmek istiyorum. Umarım beğenmişsinizdir ve son testte size iyi şanslar dilerim.

Lecture 16.4 — The fog of progress [Neural Networks for Machine Learning]
Lecture 16.4 — The fog of progress [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
 

Derin Öğrenme ve Sinir Ağlarına samimi bir giriş



Derin Öğrenme ve Sinir Ağlarına samimi bir giriş

Derin öğrenmeye girişe hoş geldiniz! Ben Luis Serrano ve Udacity'de çalışıyorum. Şu soruyu yanıtlayarak başlayalım: Makine öğrenimi nedir?

Bunu açıklamak için basit bir örnek ele alalım. Bir insan ve bir pastamız olduğunu hayal edin ve amacımız insana pastayı almasını söylemek. Bunu tek bir talimat vererek kolayca yapabiliriz: "Git pastayı al." İnsan pastayı anlar ve alır. Şimdi aynı problemi bir robotla çözmeye çalışalım. O kadar basit değil çünkü robota bir dizi talimat vermemiz gerekiyor. Örneğin, "Sağa dön, on adım git, sola dön, dört adım git ve sonra pastayı al." Bu çözüm, bu özel senaryoya özeldir ve genellenemez. Robot farklı bir konumdaysa, tamamen farklı bir dizi talimata ihtiyacımız olacaktır.

Bu sorunu daha genel bir şekilde çözmek için makine öğrenimini kullanabiliriz. Açık talimatlar vermek yerine, bilgisayara pastayı bulmanın en iyi yolunu bulmasını öğretebiliriz. Bunu, bilgisayardan pastaya olan mesafeyi hesaplamasını ve ardından mesafeyi en aza indiren yönde hareket etmesini isteyerek yapıyoruz. Bilgisayar, pastayı bulana kadar yinelemeye devam eder. Bir hatayı veya mesafeyi en aza indirme kavramı, çoğu makine öğrenimi sorununun merkezinde yer alır. Pastaya olan mesafe veya bir dağın yüksekliği gibi bir hata metriği tanımlarız ve ardından eğimli iniş kullanarak bu hatayı en aza indiririz. Gradyanı tekrar tekrar hesaplayarak ve hatayı en çok azaltan yönde hareket ederek çeşitli problemlere çözüm bulabiliriz.

Makine öğreniminin, bir bilgisayara Go veya Jeopardy gibi oyunları oynamayı öğretmek, sürücüsüz arabaları etkinleştirmek, spam e-postaları algılamak, yüzleri tanımak ve daha fazlası gibi birçok uygulaması vardır. Bu uygulamaların temelinde derin öğrenmenin temelini oluşturan sinir ağları kavramı yer almaktadır. Sinir ağlarını düşündüğümüzde, düğümleri, kenarları ve katmanları olan karmaşık yapılar hayal edebiliriz. Ancak, onlar hakkında düşünmenin daha basit bir yolu, verileri bölmek için bir araç olarak düşünmektir. Tıpkı kumda oynayan ve kırmızı ve mavi kabukları ayırmak için bir çizgi çizen bir çocuk gibi, sinir ağları farklı veri noktalarını ayırmayı öğrenebilir.

Bir sinir ağını eğitmek için sürekli olan bir hata fonksiyonuna ihtiyacımız var. Ayrık bir fonksiyon olduğu için hata sayısını en aza indirmek uygun değildir. Bunun yerine, yanlış sınıflandırılan noktalara ceza atayan bir hata fonksiyonu kullanıyoruz. Örneğimizdeki hattın konumu gibi sinir ağının parametrelerini ayarlayarak hatayı en aza indirebilir ve en iyi çözümü bulabiliriz. Lojistik regresyon olarak bilinen bu yaklaşım, olasılıkları farklı veri noktalarına atayan bir olasılık fonksiyonu oluşturmamızı sağlar. 50/50 çizgisine yakın noktaların kırmızı veya mavi olarak sınıflandırılma şansı daha yüksekken, daha uzaktaki noktalar daha güvenli bir şekilde sınıflandırılır.

Makine öğrenimi, çeşitli sorunlara en iyi çözümleri bulmak için hataları veya mesafeleri en aza indirmekle ilgilidir. Sinir ağları, verileri bölmek ve sınıflandırmalar yapmak için bir yol sağlar. Sürekli hata fonksiyonlarını ve gradyan inişini kullanarak sinir ağlarını eğitebilir ve bunları çok çeşitli uygulamalara uygulayabiliriz.

A friendly introduction to Deep Learning and Neural Networks
A friendly introduction to Deep Learning and Neural Networks
  • 2016.12.26
  • www.youtube.com
Announcement: New Book by Luis Serrano! Grokking Machine Learning. bit.ly/grokkingML40% discount code: serranoytA friendly introduction to neural networks an...
 

Tekrarlayan Sinir Ağlarına samimi bir giriş



Tekrarlayan Sinir Ağlarına samimi bir giriş

Yinelenen sinir ağlarına dostça bir girişe hoş geldiniz! Ben Udacity'de makine öğrenimi eğitmeni olan Luis Serrano. Önceki videolarıma yaptığınız tüm geri bildirimler için teşekkür ederim. Pek çok öneri aldım ve bunlardan biri tekrarlayan sinir ağlarıyla ilgiliydi, bu yüzden bu videoyu yapmaya karar verdim.

Basit bir örnekle başlayalım. Üç çeşit yemek pişiren mükemmel bir oda arkadaşınız olduğunu hayal edin: elmalı turta, hamburger ve tavuk. Yemek pişirme kararı hava durumuna bağlıdır. Hava güneşliyse elmalı turta, yağmurluysa hamburger pişiriyor. Bu senaryoyu, girdinin hava durumu (güneşli veya yağmurlu) ve çıktının karşılık gelen yiyecek (elmalı turta veya burger) olduğu basit bir sinir ağı kullanarak modelleyebiliriz.

Yiyecekleri ve hava durumunu temsil etmek için vektörler kullanıyoruz. Yiyecek vektörleri, elmalı turta için [1 0 0], hamburger için [0 1 0] ve tavuk için [0 0 1]'dir. Hava vektörleri güneşli için [1 0] ve yağmurlu için [0 1]'dir. Bu vektörleri, çıkış vektörünü elde etmek için girdi vektörünün bir matrisle çarpıldığı bir matris çarpımı kullanarak haritalayabiliriz.

Şimdi daha karmaşık bir problemi ele alalım. Mükemmel oda arkadaşımız hala sırayla yemek yapıyor (elmalı turta, hamburger, tavuk), ama şimdi kararı bir önceki gün ne pişirdiğine bağlı. Buna tekrarlayan sinir ağı denir. Her günün çıktısı bir sonraki günün girdisi olur. Bu ağı matrisler ve vektör işlemleri kullanarak temsil edebiliriz.

Örneğin, önceki günün yemeği elmalı turtaysa ve bugün hava yağmurluysa, çıktıyı hesaplamak için yiyecek matrisini ve hava durumu matrisini kullanırız. Besin matrisi, önceki yiyecek vektörünü alır ve birleştirilmiş mevcut ve sonraki yiyecek vektörlerini döndürür. Hava durumu matrisi, hava durumu vektörünü alır ve o anki yemeği mi yoksa bir sonraki günün yemeğini mi pişirmemiz gerektiğini gösterir. Bu iki matrisin sonuçlarını toplayarak oda arkadaşının ertesi gün ne pişireceğini belirleyebiliriz.

Bu yaklaşım, oda arkadaşının yemek pişirme kararının hem hava durumuna hem de bir önceki günün yemeğine dayandığı önceki iki örneği birleştirir. Matrisler ve vektör işlemleri, tekrarlayan sinir ağının çıktısını hesaplamamıza yardımcı olur.

Tekrarlayan sinir ağları, önceki girdileri dikkate alarak sıralı verileri işleyebilen güçlü modellerdir. Doğal dil işleme ve zaman serisi analizi gibi çeşitli uygulamalarda faydalıdırlar. Umarım bu giriş size yinelenen sinir ağları hakkında iyi bir anlayış vermiştir.

A friendly introduction to Recurrent Neural Networks
A friendly introduction to Recurrent Neural Networks
  • 2017.08.18
  • www.youtube.com
Announcement: New Book by Luis Serrano! Grokking Machine Learning. bit.ly/grokkingML40% discount code: serranoytA friendly explanation of how computers predi...
 

Üretici Düşman Ağlarına (GAN'lar) Dostane Bir Giriş



Üretici Düşman Ağlarına (GAN'lar) Dostane Bir Giriş

Merhaba, ben Luis Serrano ve bu video Üretici Düşman Ağları (GAN'lar) hakkındadır. Ian Goodfellow tarafından geliştirilen GAN'lar, çok sayıda uygulama ile makine öğreniminde önemli bir gelişmedir. GAN'ların en büyüleyici uygulamalarından biri yüz oluşturmadır. Bunu, insanların tüm görüntülerinin bir sinir ağı tarafından oluşturulduğu "thispersondoesnotexist.com" web sitesinde çalışırken görebilirsiniz.

Bu videoda GAN'ları kullanarak basit bir şekilde yüz oluşturmayı öğreneceğiz. Kod yazmamayı tercih etseniz bile, bu video size önsezi ve denklemler sağlayacaktır. Basit görüntüler üreten bir çift tek katmanlı sinir ağını kodlayacağız ve kodu GitHub'da bulabilirsiniz.

GAN'ların ne olduğunu açıklayayım. GAN'lar, birbiriyle rekabet eden bir üreteç ve bir ayırıcı olmak üzere iki sinir ağından oluşur. Ayrımcı gerçek ve sahte görüntüleri birbirinden ayırmaya çalışırken, jeneratör sahte görüntüler oluşturmaya çalışır. Ayrımcı üreticiyi yakaladıkça, üretici de ayrımcıyı kandıran mükemmel bir görüntü oluşturana kadar görüntülerini geliştirir. GAN'ları eğitmek için, üreteç tarafından oluşturulan bir dizi gerçek görüntü ve bir dizi sahte görüntü kullanıyoruz. Ayrımcı, sahte olanlardan gerçek görüntüleri ayırt etmeyi öğrenirken, oluşturucu, ayrımcıyı, görüntülerini gerçek olarak sınıflandırması için kandırmayı öğrenir.

Bu videoda Python kullanarak herhangi bir derin öğrenme paketi olmadan basit bir GAN çifti oluşturacağız. Görevimiz, herkesin uzamış göründüğü ve 45 derecelik bir açıyla yürüdüğü "Eğimli Arazi" adlı bir dünyada yüzler oluşturmak. Slanted Land dünyası, siyah beyaz görüntüleri gösteren 2x2 piksel ekranlar da dahil olmak üzere sınırlı teknolojiye sahiptir. Slanted Land'de insanların yüzlerini oluşturmak için tek katmanlı sinir ağları oluşturacağız.

Ayrımcı ağ, yüzleri ve yüz olmayanları ayırt etmek için görüntülerin piksel değerlerini analiz eder. Bir görüntünün yüz olup olmadığını, sol üst ve sağ alt köşelerin değerlerini diğer iki köşeyle karşılaştırarak belirleyebiliriz. Yüzler daha yüksek bir değer farkına sahip olurken, yüz olmayanlar veya gürültülü görüntüler daha düşük bir farka sahip olacaktır. Bir eşik uygulayarak görüntüleri yüzler veya yüzler olmayanlar olarak sınıflandırabiliriz. Jeneratör ağı, sol üst ve sağ alt köşelere daha yüksek değerler ve sağ üst ve sol alt köşelere daha düşük değerler atayarak yüzler oluşturur. Sigmoid fonksiyonunu uygulayarak görüntü için olasılıklar elde edebilir ve piksel değerleri üretebiliriz. Jeneratör ağı, giriş değerlerinden bağımsız olarak her zaman bir yüz oluşturacak şekilde tasarlanmıştır. Sinir ağlarını eğitmek için bir hata fonksiyonu tanımlamamız gerekiyor. Öngörülen çıktı ile istenen çıktı arasındaki hatayı ölçmek için negatif doğal logaritma olan log kaybını kullanırız. Hata işlevi, ağların ağırlıklarını iyileştirmesine ve geri yayılım adı verilen bir işlemle hatayı azaltmasına yardımcı olur.

Geri yayılım, ağırlıklara göre hatanın türevini hesaplamayı ve hatayı en aza indirmek için ağırlıkları buna göre ayarlamayı içerir. Bu süreç, üretici ve ayrımcı ağları eğitmek için iteratif olarak tekrarlanır. Üretici ve ayrımcı ağları uygun hata fonksiyonlarını ve geri yayılımı kullanarak eğiterek, Slanted Land'de gerçekçi yüzler oluşturabiliriz. Oluşturucu, yüzlere benzeyen görüntüler oluşturmayı öğrenirken, ayırt edici gerçek ve oluşturulmuş yüzleri ayırt etmeyi öğrenir.

Bu genel bakış, GAN'lar ve yüzleri nasıl oluşturabilecekleri hakkında genel bir fikir sağlar. Videoda kavramların derinliklerine ineceğiz ve kodlama sürecini adım adım göstereceğiz. İster kod yazmak, ister sezgi ve anlayış kazanmak isteyin, bu video sizin için değerli olacaktır. Dolayısıyla, bu durumda ayrımcının hatası, 1 eksi tahminin negatif logaritması olacaktır. Geri yayılımı kullanarak ayırıcının ağırlıklarına göre bu hatanın gradyanını hesaplıyoruz ve ardından bu hatayı en aza indirmek için ayırıcının ağırlıklarını güncelliyoruz. Ardından, jeneratörü ele alalım. Oluşturucunun amacı, ayrımcının gerçek veya yüzler olarak sınıflandırdığı görüntüler üretmektir. Başka bir deyişle, üretici, ayrımcıyı, oluşturulan görüntüler için yüksek bir olasılık çıktısı vermesi için kandırmak istiyor. Bu nedenle, üreteç için hata, ayrımcının oluşturulan görüntü için tahmininin negatif logaritmasıdır.

Yine, geri yayılım kullanarak üreticinin ağırlıklarına göre bu hatanın gradyanını hesaplıyoruz ve bu hatayı en aza indirmek için üreticinin ağırlıklarını güncelliyoruz. Jeneratör, gerçek yüzlere benzeyen görüntüler üretecek ve ayrımcı tarafından yüz olarak sınıflandırılma olasılığını artıracak şekilde ağırlıklarını ayarlamayı öğrenir. Ayırıcıyı ve üreticiyi eğitmek arasında geçiş yaparak bu işlemi birçok kez tekrarlıyoruz. Her yineleme, her iki ağın da performanslarını iyileştirmesine yardımcı olur. Ayrımcı, gerçek ve sahte görüntüleri ayırt etmede daha iyi hale gelirken, oluşturucu, ayrımcıyı aldatabilecek gerçekçi görüntüler üretmede daha iyi hale gelir.

Üreteci ve ayrımcıyı eğitmeye yönelik bu yinelemeli süreç, GAN'ları güçlü kılan şeydir. Birbirleriyle rekabet ederek son derece gerçekçi ve tutarlı örnekler üretmeyi öğrenirler. Oluşturucu daha inandırıcı görüntüler oluşturmayı öğrenirken ayrımcı sahte görüntüleri tespit etmede daha usta hale gelir. Yeterli eğitim ile GAN'lar gerçek verilere benzeyen görüntüler, metinler, müzik ve hatta videolar üretebilir.

GAN'lar, oyun benzeri bir şekilde birbirleriyle rekabet eden bir oluşturucu ve bir ayırıcıdan oluşur. Üretici sahte numuneler üretir ve ayrımcı gerçek ve sahte numuneleri ayırt etmeye çalışır. Bu çekişmeli süreç ve uygun hata fonksiyonlarıyla eğitim yoluyla, GAN'lar yüksek kaliteli ve gerçekçi veriler üretmeyi öğrenir.

A Friendly Introduction to Generative Adversarial Networks (GANs)
A Friendly Introduction to Generative Adversarial Networks (GANs)
  • 2020.05.05
  • www.youtube.com
Code: http://www.github.com/luisguiserrano/gansWhat is the simplest pair of GANs one can build? In this video (with code included) we build a pair of ONE-lay...
 

Kısıtlı Boltzmann Makineleri (RBM) - Dostane bir giriş



Kısıtlı Boltzmann Makineleri (RBM) - Dostane bir giriş

Merhaba, ben Luis Serrano ve bu video Kısıtlı Boltzmann Makineleri (RBM'ler) hakkındadır. RBM'ler denetimli öğrenme, boyut azaltma ve üretken makine öğreniminde kullanılan güçlü algoritmalardır.

Bir gizemle başlayalım. Sokağın karşısında, insanların bazen ziyarete geldiği bir ev var. Üç kişinin, Ayesha, Beto ve Cameron'un sık sık geldiğini, ancak her zaman bir arada olmadığını gözlemliyoruz. Bazen sadece Ayesha gelir, diğer zamanlarda Beto veya Cameron olur ve bazen birden fazla gelir, hiçbirinin gelmediği günler de dahil. Bu modeli araştırıyoruz ve birbirlerini tanımadıklarını görüyoruz, bu yüzden görünüşleri için başka bir sebep bulmalıyız.

Evde evcil hayvanların, Descartes adında bir köpeğin ve Euler adında bir kedinin olduğunu keşfediyoruz. Ayesha ve Cameron köpekleri severler, bu yüzden Descartes oradayken ortaya çıkarlar. Öte yandan, Beto'nun köpeklere alerjisi var ama kedilere bayılıyor, bu yüzden sadece Ayesha varken ortaya çıkıyor. Pozitif puanlar beğenileri ve negatif puanlar hoşlanmadıklarını gösterecek şekilde tercihlerini temsil edecek puanlar atarız. Şimdi farklı senaryoların meydana gelme olasılığını bulmak istiyoruz. Her senaryoya puanlar atayıp olasılıklara dönüştürüyoruz. Yaklaşımlardan biri, puanları olasılıklara dönüştürmek için softmax işlevini kullanmak ve daha yüksek puanların daha yüksek olasılıklara karşılık gelmesini sağlamaktır.

Görünür ve gizli katmanlara sahip bir Sınırlı Boltzmann Makinesi (RBM) inşa ediyoruz. Görünür katman gözlemlenen verileri (insanları), gizli katman ise gözlemlenmeyen verileri (evcil hayvanlar) temsil eder. RBM, her bağlantıya atanan puanlarla ağırlıklarla birbirine bağlanan düğümlerden oluşur. RBM'yi eğitmek için verilerden elde ettiğimiz olasılıklarla uyumlu ağırlıkları bulmamız gerekiyor. RBM'nin Ayesha ve Cameron'un veya sadece Beto'nun ortaya çıktığı senaryolara yüksek olasılıklar ve diğer senaryolara düşük olasılıklar atamasını istiyoruz. Ağırlıkları ayarlayarak, RBM tarafından atanan olasılıkları etkileyebiliriz. Amaç, RBM'yi gözlemlenen verilerle hizalamak ve istenen olasılıkları taklit etmektir.

İstenen olasılıklarımıza ulaşmak için, RBM'deki ağırlıkları ayarlamamız gerekir. Ağırlıklar, görünür ve gizli katmanlar arasındaki her bir bağlantının etkisini belirler. Ağırlıkları güncelleyerek, belirli senaryoların olasılığını artırabilir ve diğerlerinin olasılığını azaltabiliriz. Ağırlıkları güncellemek için kontrastlı sapma adı verilen bir teknik kullanıyoruz. RBM'nin birkaç yinelemesinden önce ve sonra görünür katman durumlarının olasılıklarının karşılaştırılmasını içerir. Ağırlık güncellemesi, bu iki olasılık grubu arasındaki farka dayalıdır. Eğitim sırasında, eğitim verilerini tekrar tekrar RBM'ye sunarız ve gözlemlenen verilerin olasılığını en üst düzeye çıkarmak için ağırlıkları ayarlarız. Eğitim verileri için açık etiketlerimiz olmadığı için bu süreç denetimsiz öğrenme olarak bilinir.

Eğitimden sonra RBM, öğrenilen olasılık dağılımından örnek alarak yeni veriler oluşturmak için kullanılabilir. Eğitim verilerinde gözlemlenenlere benzer senaryolar üretebiliriz. Modelimizi eğitmek için bir RBM (Restricted Boltzmann Machine) kullanıyoruz ve olasılıkları artırma ve azaltma sürecini izliyoruz. Tüm olası senaryoları dikkate almak yerine, rastgele bir senaryo seçip olasılığını artırırken, rastgele seçilen bir senaryonun olasılığını azaltıyoruz. Bu işlemi birçok kez tekrarlıyoruz, olasılıkları kademeli olarak istediğimiz sonuca uyacak şekilde ayarlıyoruz. Her veri noktası için, onu genişleten ve olasılığını artıran bir senaryo seçerken, başka bir senaryoyu rastgele seçip olasılığını azaltıyoruz. Bu işleme tüm veri kümesi için birden çok kez döngü yaparak devam ediyoruz. Ortaya çıkan olasılıklar, farklı senaryoların oluşumlarıyla eşleşen verilerimizle iyi bir uyum içindedir.

Olasılıkları değiştirmek için RBM'nin ağırlıklarını ayarlıyoruz. İstenen senaryolara karşılık gelen belirli köşelere ve kenarlara odaklanıyoruz. Ağırlıkları artırarak veya azaltarak, bu senaryoların olasılıklarını etkiliyoruz. Senaryoları kendi olasılıklarına göre seçmek istediğimizden, örnekleme zorlayıcıdır. Yalnızca istenen senaryolara bağlı ilgili köşeleri ve kenarları dikkate aldığımız bağımsız örneklemeyi tanıtıyoruz. Sigmoid fonksiyonunu kullanarak olasılıkları hesaplayarak, olasılıkları ağırlıklarıyla orantılı olan senaryoları rastgele seçebiliriz. Belirli bir veri noktasıyla uyuşan bir senaryo seçmek için, ilgisiz olanları göz ardı ederek ilgili katılımcılara ve onların bağlantılarına odaklanırız. Olasılıkları ağırlıklara göre hesaplıyoruz ve bunları olasılıklara dönüştürmek için sigmoid işlevini kullanıyoruz. Bu, olasılıkları ağırlıklarını yansıtan rastgele bir senaryo seçmemizi sağlar.

Tamamen rastgele bir senaryo seçmek için, farklı olasılıkları keşfetmeye benzer şekilde, dağılımda rastgele adımlar atarak ona yaklaşırız. Tamamen rastgele bir senaryonun mükemmel bir temsili olmasa da, yakın bir tahmin işlevi görür. Bu süreç, RBM'yi eğitmenize ve olasılıkları istenen sonuçlara uyacak şekilde ayarlamamıza, verilerimizi etkin bir şekilde modellememize olanak tanır.

Kısıtlı Boltzmann makineleri, işbirliğine dayalı filtreleme, boyut azaltma ve özellik öğrenme gibi çeşitli görevlere başarıyla uygulandı. Ayrıca derin inanç ağları gibi daha karmaşık derin öğrenme modelleri için yapı taşları olarak kullanılırlar.

Kısıtlı Boltzmann makineleri, makine öğreniminde kullanılan güçlü algoritmalardır. Ağırlıklarla birbirine bağlı bir görünür katman ve bir gizli katman içerirler. Ağırlıkları eğitim yoluyla ayarlayarak, RBM'ler eğitim verilerinin olasılık dağılımını öğrenebilir ve yeni veri örnekleri oluşturabilir. RBM'lerin çeşitli alanlarda uygulamaları vardır ve derin öğrenme modellerinin önemli bir bileşenidir.

Restricted Boltzmann Machines (RBM) - A friendly introduction
Restricted Boltzmann Machines (RBM) - A friendly introduction
  • 2020.07.07
  • www.youtube.com
CORRECTION: The score for BE is 6 and for BD is -1.A simple introduction to Restricted Boltzmann Machines (RBM) and their training process, using a real-life...
 

Derin takviyeli öğrenmeye, Q ağlarına ve politika gradyanlarına samimi bir giriş



Derin takviyeli öğrenmeye, Q ağlarına ve politika gradyanlarına samimi bir giriş

Merhaba, ben Luis Serrano ve bu, derin pekiştirmeli öğrenme ve politika gradyanlarına dostça bir giriş. Takviyeli öğrenmenin sürücüsüz arabalarda, robotikte ve Go, satranç ve Atari oyunları gibi karmaşık oyunlarda uygulamaları vardır. Takviyeli öğrenme ile tahmine dayalı makine öğrenimi arasındaki temel fark, takviyeli öğrenmede, bir ortamla etkileşime giren, veri oluşturmak için ödülleri ve cezaları toplayan bir temsilcimiz varken, tahmine dayalı makine öğrenimi bir modeli eğitmek için mevcut verilere dayanır. Bu videoda Markov Karar Süreçleri (MDP'ler), Bellman denklemi gibi önemli kavramları ve sinir ağlarının Q ağları ve politika gradyanları ile pekiştirmeli öğrenmeye nasıl yardımcı olabileceğini ele alacağız.

Grid World adlı bir MDP kullanarak pekiştirmeli öğrenme örneğiyle başlayalım. Grid World'de, evreni temsil eden bir ızgaramız ve daire şeklinde tasvir edilen ajanımız var. Izgara, oyunun bitmesine neden olan paralı kareler ve ejderhalı kareler dahil olmak üzere özel kareler içerir. Ajanın amacı, ızgarada hareket ederek, ödülleri veya cezaları toplayarak puanları en üst düzeye çıkarmaktır. Etmen için en iyi stratejiyi komşu durumların maksimum değerlerine dayalı olarak her bir durumun değerini hesaplayan Bellman denklemini kullanarak belirleyebiliriz. Daha sonra aracıya puanları maksimize etmek için izlenecek en iyi yol hakkında talimatlar sağlayan bir politika türetebiliriz.

Politikanın etkinliğini artırmak için ödüller ve bir indirim faktörü sunuyoruz. Ödüller, bir adım atarken kazanılan veya kaybedilen puanları temsil eder ve indirim faktörü, anlık ödüllerle karşılaştırıldığında gelecekteki ödüllerin değerini açıklar. Ödülleri ve iskonto faktörünü dikkate alarak durumların değerlerini ayarlayabilir ve buna göre Bellman denklemini güncelleyebiliriz. Değerleri yineleyerek ve güncelleyerek, her durum için en uygun değerlere yakınsayabilir ve aracıyı en yüksek noktalara yönlendiren politikayı belirleyebiliriz.

Bellman denklemini anlayarak ve ödülleri ve indirim faktörlerini kullanarak MDP'leri çözebilir ve pekiştirmeli öğrenme için en iyi politikayı bulabiliriz. Sol taraf, aracının en iyi değeri bulmak için sağa hareket etmesi gerektiğini belirtir. Politika, acenteye 1 olasılıkla sağa ve 0 olasılıkla diğer yönlere hareket etmesi talimatını verir. Buna karşılık, stokastik bir politika sağa doğru hareket etmeyi güçlü bir şekilde tercih eder, ancak yine de elde edilen ödüllere dayalı olarak diğer yönlere bir şans verir. . Örneğin, sağdaki stokastik politika, en yüksek değere sahip olduğu için sağdaki duruma öncelik verirken, soldaki durum düşük puanı nedeniyle en düşük önceliğe sahiptir. Bununla birlikte, olasılıklar hala sıfır değildir ve temsilcinin her zaman en iyi ödülü almasa bile alanı keşfetmesine izin verir.

Şimdi sinir ağlarının bu süreçteki rolünü tartışalım. Ajanın tüm eyaletleri tekrar tekrar ziyaret etmesini sağlamak yerine, ki bu pahalıdır, birkaç eyaletten bilgi toplamak için bir sinir ağı kullanabiliriz. Yapay sinir ağı, benzer koordinatlara sahip durumların benzer değerlere sahip olması gerektiğini öğrenebilir. Girdinin bir noktanın koordinatları olduğu ve çıktının o noktadaki puan olduğu bir değer ağı kullanıyoruz. Benzer şekilde, her durumdaki politikaya yaklaşmak için bir politika ağı kullanabiliriz. Politika ağı, koordinatları girdi olarak alır ve yukarı, sağa, aşağı ve sola hareket etme olasılıklarını temsil eden dört sayı verir. Değer ağını eğitmek için, onu bir durumun değerini komşu durumlarla ilişkilendiren Bellman denklemini karşılamaya zorluyoruz. Sinir ağının komşu durumlardaki değerlerini kullanıyoruz ve ortadaki değeri denklemi sağlayacak şekilde ayarlıyoruz. Sinir ağını Bellman denklemine dayalı olarak tekrar tekrar güncelleyerek, tüm durumların değerlerine yaklaşabiliriz.

Politika ağı için, onu mevcut politikaya dayalı yollar izleyerek ve her eylemi karşılık gelen kazançla etiketleyerek eğitiyoruz. Kazanım, koordinatlar ve eylemlerle bir veri seti oluşturuyoruz ve bunu politika ağına besliyoruz. Ardından, ağı kazanca dayalı olarak belirli eylemlerde bulunmaya teşvik eder veya caydırırız. Bu işlemi farklı yollarla tekrarlayarak, politika ağını zaman içinde geliştirebiliriz. Devletlerin değerlerini ve politikasını tahmin etmek için sinir ağlarını kullanıyoruz. Değer ağı, her bir durumun değerini tahmin etmemize yardımcı olurken, ilke ağı aracının eylemlerini yönlendirir. Eğitim, Bellman denklemine ve yola dayalı etiketlemeye dayalı olarak ağların tekrar tekrar güncellenmesini içerir.

Artık her eyalet için değerlere ve ilgili politikaya sahip olduğumuza göre, bunları oyunda kararlar almak için kullanabiliriz. Politika, hesapladığımız değerlere dayalı olarak bize her eyalet için yapılacak en iyi işlemi söyler. Örneğin, aracı belirli bir durumdaysa ve hangi eylemi yapacağını bilmek istiyorsa, yalnızca politikaya bakar ve en yüksek değere sahip komşu durumu gösteren oku takip eder. Bu, temsilcinin ödüllerini en üst düzeye çıkarmak için en uygun yolu izlemesini sağlar. Izgara dünya oyunumuz söz konusu olduğunda, politika temsilciye engellerden kaçınması ve mümkün olan en kısa sürede en yüksek ödüllerle nihai durumlara ulaşması için rehberlik edebilir. Temsilci, politikayı izleyerek ızgara dünyasında gezinebilir ve olumsuz ödüllerden kaçınırken puan toplayabilir.

Q-learning veya ilke gradyanları gibi pekiştirmeli öğrenme algoritmaları, daha karmaşık ortamlar için en uygun ilkeyi ve değerleri bulmak için kullanılabilir. Bu algoritmalar, değerleri yinelemeli olarak güncellemek ve politikayı zaman içinde iyileştirmek için Markov karar süreçleri ve Bellman denklemi kavramlarından yararlanır. Sinir ağları, büyük ve karmaşık durum alanlarını işlemek için de kullanılabilir. Q ağları ve politika gradyan yöntemleri, değerlere veya politika işlevine yaklaşmak için sinir ağlarını kullanır ve takviyeli öğrenme görevlerinde daha verimli ve etkili öğrenmeye olanak tanır.

Takviyeli öğrenme algoritmalarını ve sinir ağlarını birleştirerek sürücüsüz arabalar, robotik ve karmaşık oyun oynama gibi zorlu sorunların üstesinden gelebiliriz. Bu tekniklerin geniş kapsamlı uygulamaları vardır ve yapay zeka alanını ilerletmeye devam etmektedir.

Takviyeli öğrenme, bir temsilcinin bir ortamda onunla etkileşime girerek ve ödüller toplayarak kararlar vermesi için eğitilmesini içerir. Ajan, çevrede gezinmek ve ödüllerini en üst düzeye çıkarmak için Bellman denkleminden elde edilen değerleri ve politikayı kullanır. Takviyeli öğrenmede daha karmaşık problemlerin üstesinden gelmek için sinir ağları kullanılabilir.

A friendly introduction to deep reinforcement learning, Q-networks and policy gradients
A friendly introduction to deep reinforcement learning, Q-networks and policy gradients
  • 2021.05.24
  • www.youtube.com
A video about reinforcement learning, Q-networks, and policy gradients, explained in a friendly tone with examples and figures.Introduction to neural network...
 

Makine Öğrenimine Samimi Bir Giriş



Makine Öğrenimine Samimi Bir Giriş

Merhaba, makine öğrenimi dünyasına hoş geldiniz. Bugün, makine öğreniminin neyle ilgili olduğunu keşfedeceğiz. Bu dünyada, insanlarımız ve bilgisayarlarımız var ve aralarındaki en önemli fark, nasıl öğrendikleri. İnsanlar geçmiş deneyimlerden öğrenirken, bilgisayarların programlanması ve yönergeleri izlemesi gerekir. Ancak, bilgisayarlara deneyimlerden öğrenmeyi de öğretebilir miyiz? Cevap evet ve makine öğrenimi burada devreye giriyor. Bilgisayarlar aleminde, geçmiş deneyimlere veri denir.

İlerleyen dakikalarda, bilgisayarlara önceki verilerden öğrenmeyi nasıl öğretebileceğimizi gösteren birkaç örnek sunacağım. Heyecan verici kısım, bu algoritmaların oldukça basit olması ve makine öğreniminin korkulacak bir şey olmamasıdır. İlk örneğimize geçelim. Konut piyasasını incelediğimizi ve görevimizin büyüklüğüne göre bir evin fiyatını tahmin etmek olduğunu hayal edin. Boyutları ve fiyatları da dahil olmak üzere çeşitli evler hakkında veri topladık. Bu verileri, x ekseni evin büyüklüğünü metrekare cinsinden ve y ekseni fiyatı dolar cinsinden temsil edecek şekilde bir grafik üzerinde çizerek, ikisi arasındaki ilişkiyi görselleştirebiliriz. Veri noktalarının kabaca bir çizgi oluşturduğunu fark ediyoruz.

Doğrusal regresyon adı verilen bir yöntem kullanarak veri noktalarına en uygun çizgiyi çizebiliriz. Bu çizgi, büyüklüğüne göre bir evin fiyatını tahmin etmek için en iyi tahminimizi temsil ediyor. Grafiği inceleyerek orta büyüklükteki bir evin fiyatını doğru üzerinde karşılık gelen noktayı belirleyerek tahmin edebiliriz. Doğrusal regresyon, doğru ile veri noktaları arasındaki hataları en aza indirerek en uygun doğruyu bulmamızı sağlar. Doğrusal regresyon, bir makine öğrenimi algoritmasının yalnızca bir örneğidir. Veriler doğrusal bir ilişki oluşturduğunda nispeten basit ve etkilidir. Bununla birlikte, sorunun doğasına bağlı olarak eğriler, daireler veya daha yüksek dereceli polinomlar gibi diğer veri türlerini uydurmak için benzer yöntemler kullanabiliriz.

Şimdi başka bir örneğe geçelim. Bir e-posta spam algılama sistemi oluşturmak istediğimizi varsayalım. Spam olarak işaretlenip işaretlenmedikleri de dahil olmak üzere önceki e-postalar hakkında veri topladık. Bu verileri analiz ederek, bir e-postanın spam olup olmadığını göstermesi muhtemel özellikleri belirleyebiliriz. Örneğin, "ucuz" kelimesini içeren e-postaların genellikle spam olarak işaretlendiğini görebiliriz. Saf Bayes algoritmasını kullanarak olasılıkları bu özelliklerle ilişkilendirebiliriz. Bu durumda, bir e-posta "ucuz" kelimesini içeriyorsa, bu tür e-postaların %80'inin spam olarak işaretlendiğini görüyoruz. Birden çok özelliği ve bunlarla ilişkili olasılıkları birleştirerek, özelliklerine göre bir e-postanın spam olup olmadığını tahmin eden bir sınıflandırıcı oluşturabiliriz.

Bir sonraki örneğimize geçecek olursak, diyelim ki App Store veya Google Play'de çalışıyoruz ve amacımız kullanıcılara uygulama önermek. Kullanıcılar, özellikleri ve indirdikleri uygulamalar hakkında veri toplayabiliriz. Bu verileri analiz ederek önerilerimize yön veren bir karar ağacı oluşturabiliriz. Karar ağacı, belirli uygulamaların önerilmesine yol açan, kullanıcı özelliklerine dayalı sorulardan oluşur. Örneğin, kullanıcının 20 yaşından küçük olup olmadığını sorabiliriz. Yanıta göre belirli bir uygulama önerebiliriz. Kullanıcı daha yaşlıysa, önerimizi daha da hassaslaştırmak için cinsiyeti gibi farklı bir soru sorabiliriz. Karar ağacı, kullanıcı özelliklerine göre kişiselleştirilmiş uygulama önerileri yapmamıza yardımcı olur.

Son olarak, bir üniversitenin kabul ofisini ele alalım. İki bilgiye dayanarak hangi öğrencilerin kabul edileceğini belirlemeye çalışıyorlar: giriş sınavı puanı ve öğrencilerin notları. Daha önce kabul edilen ve reddedilen öğrencilerin verilerini analiz ederek bir lojistik regresyon modeli oluşturabiliriz.

Lojistik regresyonu kullanarak kabul edilen ve reddedilen öğrencilerin veri noktalarını ayıran bir çizgi çizebiliriz. Bu çizgi, bir öğrencinin kabul edilip edilmeyeceğini belirlemek için karar sınırını temsil eder. Lojistik regresyon modeli, giriş sınavı puanına ve notlarına göre kabul olasılığını hesaplar. Karar sınırı belirlendikten sonra, yeni öğrenciler giriş sınavı puanları ve notları bir grafik üzerinde çizilerek değerlendirilebilir. Nokta karar sınırının üzerine düşerse, model kabulü tahmin eder; altına düşerse, model reddi öngörür. Bunlar, makine öğrenimi algoritmalarına ve bunların çeşitli alanlara nasıl uygulanabileceğine dair yalnızca birkaç örnektir. Makine öğrenimi, bilgisayarların her senaryo için açıkça programlanmadan verilerden öğrenmesine ve tahminler veya kararlar almasına olanak tanır. Otomasyon, örüntü tanıma ve karmaşık ve büyük ölçekli verileri işleme yeteneği sağlar.

Makine öğreniminin öğrenmek için veri gerektirdiğini unutmamak önemlidir. Verilerin kalitesi ve alaka düzeyi, modellerin doğruluğu ve etkinliğinde önemli bir rol oynar. Ek olarak, makine öğrenimi modellerinin genelleştirilebilirliğini sağlamak için temsili bir veri kümesi üzerinde eğitilmesi ve doğrulanması gerekir.

Makine öğrenimi, çok sayıda algoritma, teknik ve uygulama ile hızla gelişen bir alandır. Araştırmacılar ve uygulayıcılar sürekli olarak yeni yöntemler keşfediyor ve mümkün olanın sınırlarını zorluyor. Teknoloji ilerledikçe ve daha fazla veri kullanılabilir hale geldikçe, makine öğreniminin çeşitli endüstriler ve hayatımızın farklı yönleri üzerinde giderek daha önemli bir etkiye sahip olması bekleniyor.

A Friendly Introduction to Machine Learning
A Friendly Introduction to Machine Learning
  • 2016.09.09
  • www.youtube.com
Grokking Machine Learning Book: https://www.manning.com/books/grokking-machine-learning40% discount promo code: serranoytA friendly introduction to the main ...
 

Makine Öğrenimi: Test Etme ve Hata Ölçümleri



Makine Öğrenimi: Test Etme ve Hata Ölçümleri

Merhaba, makine öğrenimi testi ve hata ölçümleri hakkındaki bu eğitime hoş geldiniz. Benim adım Luis Serrano ve makine öğrenimi öğrettiğim Udacity'de çalışıyorum. Bu benim resmim. Bugün iki soruya odaklanacağız: Birincisi, modelim ne kadar iyi çalışıyor? Bunu anladığımızda, bu metriklere dayalı olarak onu nasıl iyileştirebiliriz? Hemen konuya girelim ve bazı verilere bakalım. Mavi noktalarımız ve kırmızı noktalarımız var ve bunları ayırmak için bir model eğitmek istiyoruz. En basit modelimiz, verileri mavi ve kırmızı olarak kesen bir çizgi olan doğrusal bir modeldir. Bazı hatalar veriyor ama genel olarak iyi. Daha yüksek dereceli bir polinom kullanan daha karmaşık bir modeli de ele alalım. Bu model noktaları ayırmada daha başarılıdır, ancak ikisi arasında hangi model daha iyidir?

Bu soruyu cevaplamak için testi kullanmamız gerekiyor. Tüm noktaları eğitim için kullanmak yerine, bunları eğitim ve test setlerine ayırdık. Eğitim noktaları modeli eğitmek için kullanılırken, test noktaları modelin ne kadar iyi performans gösterdiğini değerlendirmek için kullanılır. Örneğimizde, doğrusal model test setinde bir hata yaparken, polinom model iki hata yapmaktadır. Bu nedenle, doğrusal model test setinde daha iyi performans gösterir çünkü daha iyi genelleştirir.

Test söz konusu olduğunda, uyulması gereken bazı önemli kurallar vardır. İlk altın kural, test verilerinizi asla eğitim için kullanmamaktır. Test verilerinizi ayrı tutun ve yalnızca değerlendirme için kullanın. İkinci kural, arkadaşlarınızın da test verilerini eğitim için kullanmamalarını sağlamaktır. Son olarak, üçüncü kural, test verilerinizi eğitim için asla kullanmamanızı vurgular. Test verilerinin yanlışlıkla kötüye kullanılmasını önlemek çok önemlidir.

Verileri eğitim ve test setlerine ayırarak israf ediyormuşuz gibi görünse de, bu endişeyi gidermenin bir yolu var. Tipik olarak k-katlı çapraz doğrulama adı verilen bir teknik kullanarak verileri k eşit kümeye bölebiliriz. Verilerin her bir bölümü hem eğitim hem de test için kullanılır ve sonuçların sonunda ortalaması alınır. Bu yaklaşım, modelin performansını değerlendirmeye devam ederken verileri daha iyi kullanmamızı sağlar.

Şimdi, modellerimizin ne kadar iyi performans gösterdiğini değerlendirmemize yardımcı olan ölçümleri tartışalım. Yaygın bir ölçüt, modelin toplam örnek sayısına kıyasla kaç örneği doğru şekilde sınıflandırdığını ölçen doğruluktur. Ancak, kredi kartı dolandırıcılığı tespiti, tıbbi teşhis ve spam sınıflandırma örneklerinde gösterildiği gibi, doğruluk tek başına her zaman en iyi ölçüm olmayabilir. Bu durumlarda, yanlış negatifler ve yanlış pozitiflerin farklı sonuçları vardır.

Modelleri daha etkili bir şekilde değerlendirmek için bir karışıklık matrisi kullanıyoruz. Bu matris dört olasılık sunar: gerçek pozitifler, gerçek negatifler, yanlış pozitifler ve yanlış negatifler. Bunların her biri, gerçek verilere kıyasla modelin tahminlerine dayanan farklı sonuçları temsil eder. Örneğin, tıbbi teşhiste yanlış negatif, hasta bir kişinin sağlıklı olarak sınıflandırıldığı anlamına gelir ki bu yanlış pozitiften daha kötüdür. Benzer şekilde, spam sınıflandırmasında, yanlış pozitif, spam olmayan bir e-postanın spam olarak işaretlenmesi anlamına gelir; bu, yanlış bir negatiften daha kötüdür.

Yanlış pozitif ve yanlış negatiflerin özel bağlamını ve sonuçlarını göz önünde bulundurarak, modellerimizi değerlendirmek için uygun ölçümleri seçebiliriz. Doğruluk tek başına tüm resmi yakalamayabilir ve kesinlik, hatırlama ve F1 puanı gibi diğer ölçümler modelin performansı hakkında daha fazla bilgi sağlayabilir.

Bu iki puanı birleştirebilir miyiz? Hassasiyet ve geri çağırma puanlarını birleştirmenin basit bir yolu, ortalamalarını almaktır. Sağlanan kesinlik ve hatırlama puanlarının ortalamasını hesaplayalım. Solda hassasiyet 69,5 ve sağda 66,95'tir. Bu iki puanın ortalamasını alırsak 68.225 elde ederiz. Ancak bu ortalama yeterli bilgi sağlamayabilir ve doğruluktan önemli ölçüde farklı olmayabilir. Bu ortalama puanın sonuçlarını anlamak için, kredi kartı dolandırıcılığının tespitini içeren uç bir örneği ele alalım.

Örnekte, iki modelimiz var: biri tüm işlemleri iyi olarak sınıflandırıyor, diğeri ise tüm işlemleri hileli olarak sınıflandırıyor. Hassasiyeti hesaplayalım ve her iki model için geri çağıralım.

Tüm işlemleri iyi olarak sınıflandıran modelin kesinliği %100'dür (çünkü kötü olarak sınıflandırılanların tümü aslında iyidir), geri çağırma ise %0'dır (hile yapanların hiçbiri yakalanmadığından). Kesinlik ve geri çağırma ortalamasını alırsak, %50 alırdık. Ancak düşük performans gösteren bir modele bu kadar yüksek puan vermek pek uygun görünmüyor. Benzer şekilde, tüm işlemleri hileli olarak sınıflandıran model için kesinlik %0,16 (tüm işlemlerden 472'si doğru sınıflandırılmış) ve geri çağırma %100'dür (tüm hileli işlemler yakalandığı için). Yine, kesinlik ve geri çağırma arasındaki ortalama %50 civarında olacaktır, bu da modelin zayıf performansını doğru bir şekilde yansıtmaz.

Bu sınırlamanın üstesinden gelmek için, F1 puanı olarak da bilinen harmonik ortalama adı verilen başka bir ortalama türü kullanabiliriz. Harmonik ortalama, 2 * (kesinlik * geri çağırma) / (kesinlik + hatırlama) formülü kullanılarak hesaplanır. F1 puanı, özellikle bir metrik (kesinlik veya hatırlama) diğerinden önemli ölçüde farklı olduğunda daha dengeli bir temsil sağlar.

Tıbbi model için kesinlik 55,7 ve geri çağırma 83,3'tür. Harmonik ortalama formülünü kullanarak F1 puanını hesapladığımızda %66,76 elde ederiz. İstenmeyen e-posta algılama modeli için kesinlik 76,9 ve geri çağırma 37'dir. F1 puanı %49,96'dır. Doğrusal model için kesinlik 75 ve geri çağırma 85,7'dir. F1 puanı %80'dir.

Kredi kartı dolandırıcılık modellerinde, tüm hileli işlemleri yakalamayı tercih edersek, geri çağırmaya öncelik veririz. Dolayısıyla, bu durumda iyi bir metrik, kesinlikten ziyade hatırlamaya daha yakın olacaktır.

Test ve hata ölçümleri, makine öğrenimi modellerini değerlendirmek ve iyileştirmek için çok önemlidir. Test etmenin altın kurallarına uymak, uygun ölçümleri seçmek ve yanlış pozitif ve yanlış negatiflerin sonuçlarını göz önünde bulundurmak, modellerimiz hakkında bilinçli kararlar vermemize yardımcı olur.

Kesinlik ve geri çağırmayı tek bir puanda birleştirmek, iki ölçümün harmonik ortalamasını alan F1 puanı kullanılarak yapılabilir. Bu, daha dengeli bir değerlendirme sağlar ve özellikle bir metrik diğerinden önemli ölçüde farklı olduğunda kullanışlıdır.

Machine Learning: Testing and Error Metrics
Machine Learning: Testing and Error Metrics
  • 2017.03.16
  • www.youtube.com
Announcement: New Book by Luis Serrano! Grokking Machine Learning. bit.ly/grokkingML40% discount code: serranoytA friendly journey into the process of evalua...
Neden: