Makineler öğrenmez: anlaşılması kolay! "Lise Matematiği" gradyan inişinin matematiksel ilkelerini anlar

Gradyan iniş, en yaygın kullanılan makine öğrenimi optimizasyon algoritmalarından biridir. Doğru Veri Bilimine doğru, gradyan iniş prensibini ve çalışma sürecini basit ve anlaşılır bir şekilde açıklayan bir makale yayınladı.

"Erken optimizasyon kötülüğün kaynağıdır."

-Bilgisayar bilimci ve matematikçi Donald Ervin Knuth

Çevik, yazılım geliştirme sürecinde iyi bilinen bir terimdir. Arkasındaki temel fikir basittir: hızlı bir şekilde oluşturun yayınlayın geri bildirim alın geri bildirime göre değişiklikler yapın süreci tekrarlayın. Bu yaklaşımın amacı, ürünü kullanıcıya yakın hale getirmek ve en az hatayla mümkün olan en iyi ürünü elde etmek için kullanıcının geri bildirim yoluyla size rehberlik etmesine izin vermektir. Ek olarak, iyileştirme adımlarının küçük olması ve kullanıcıların katılmaya devam etmesine izin vermesi gerekir. Çevik yazılım geliştirme süreci bir dereceye kadar hızlı yinelemeyi içerir. Temel gradyan iniş süreci, mümkün olduğunca çabuk bir çözümle hemen hemen aynıdır ve mümkün olduğunca sık ölçülür ve yinelenir.

Amaçları

Gradyan iniş algoritması, bir fonksiyonun minimum değerini elde etmemizi sağlayan yinelemeli bir işlemdir (burada bazı ek hususlardan bahsedilmemiştir). Aşağıdaki formül, tüm gradyan iniş algoritmasını tek bir satırda özetler:

Ama bu formülü nasıl elde ettik? Aslında çok basit ve sadece bazı lise matematik bilgilerini içeriyor (Editör: Yurtdışı lise matematiği mi? Yüzünüzü kapatın). Bu makale aracılığıyla bu formülü doğrusal regresyon modelleri bağlamında anlamayı ve yeniden üretmeyi umuyoruz.

Bir makine öğrenimi modeli

2B alanda bazı veri noktaları vardır. Bu verilerin bir grup öğrencinin boyu ve kilosu ile ilgili olduğunu varsayalım. Gelecekte yeni bir öğrencinin ağırlığını tahmin edebilmek için bu miktarlar arasında belirli bir ilişki tahmin etmeyi umuyoruz. Bu, temelde basit bir denetimli makine öğrenimi teknolojisi durumudur.

Şimdi, uzayda rastgele bir çizgi çizelim ve bazı veri noktalarından geçmesini sağlayalım. O zaman bu çizginin denklemi Y = mX + b'dir, burada m eğimdir ve b bu çizginin Y eksenindeki kesişmesidir.

tahmin

Bilinen bir dizi girdi ve bunlara karşılık gelen çıktılar verildiğinde. Makine öğrenimi modelleri, bu verilere dayanarak yeni girdilerin çıktı sonuçlarını tahmin etmeye çalışacaktır.

Makine öğrenimi süreci

Hata, iki tahmin sonucu arasındaki farktır.

İlgili kavram, maliyet fonksiyonu veya zarar fonksiyonudur.

Maliyet fonksiyonu

Maliyet işlevi / zarar işlevi, makine öğrenimi algoritmamızın performansını değerlendirir. Kayıp işlevi, tek bir eğitim örneğinin hatasını hesaplar ve maliyet işlevi, tüm eğitim seti üzerindeki kayıp işlevinin ortalamasıdır. Bu nedenle, bu iki terimi birbirinin yerine kullanacağım.

Temel olarak, maliyet fonksiyonu bize m ve b değerleri verildiğinde modelin tahminlerde "ne kadar iyi" performans gösterdiğini söyleyebilir.

Örneğin, veri setinde N nokta varsa ve tüm bu N veri noktaları için hatayı en aza indirmek istiyoruz. Dolayısıyla, maliyet fonksiyonu toplam kare hatası olacaktır, yani:

N veri noktası için maliyet fonksiyonu

Neden doğrudan mutlak fark yerine kare farkı kullanıyoruz? Çünkü kare farkı daha kolay bir regresyon doğrusu türetmemize izin verir. Aslında, bu doğruyu bulmak için, maliyet fonksiyonunun ilk türevini hesaplamamız gerekir ve mutlak değerin karşılığını hesaplamak, kare değerinin türevini hesaplamaktan çok daha zordur.

Maliyet işlevini en aza indirin

Herhangi bir makine öğrenimi algoritmasının amacı, maliyet işlevini en aza indirmektir.

Bunun nedeni, gerçek değer ile tahmin edilen değer arasındaki hata ne kadar düşükse, algoritmanın öğrenmedeki performansı o kadar iyi olur. En düşük hata değerini elde etmek istediğimiz için, bu m ve b değerlerinin mümkün olan en küçük hatayı almasını istiyoruz.

Keyfi işlevleri nasıl en aza indiririz?

Dikkatlice gözlemleyin, maliyet fonksiyonumuz Y = X² biçimindedir. Kartezyen koordinat sisteminde bu, aşağıdaki şekilde çizilebilen parabolik bir denklemdir:

parabol

Yukarıdaki işlevi en aza indirmek için, kırmızı noktanın konumu olan en düşük Y değerini alabilen X değerini bulmamız gerekir. Bu 2B bir görüntü olduğu için minimum değerini bulmak kolaydır, ancak daha yüksek boyutlarda durum böyle değildir. Bu durumlarda, minimum değeri bulabilen bir algoritma tasarlamamız gerekir.Bu algoritma gradyan düşüştür.

Dereceli alçalma

Gradyan inişi, en yaygın kullanılan optimizasyon algoritmalarından biridir ve aynı zamanda sinir ağlarını optimize etmenin en yaygın kullanılan yoludur. Bu, bir fonksiyonun minimum değerini bulmak için yinelemeli bir optimizasyon algoritmasıdır.

Sezgisel anlayış

Aşağıdaki resim boyunca yürüdüğünüzü ve şu anda yeşil noktada olduğunuzu varsayalım. Amacınız minimuma, kırmızı nokta konumuna ulaşmaktır; ancak konumunuzda minimumun nerede olduğunu göremezsiniz.

Olası eylemler şöyle olacaktır:

  • Yukarı veya aşağı gidebilirsin
  • Gideceğiniz yöne karar verirseniz, hedefinize ulaşmak için büyük veya küçük bir adım atabilirsiniz.

Esasen, asgariye ulaşmak için iki şeyi bilmeniz gerekir: hangi yoldan gideceğiniz ve ne kadar ileri gideceğiniz.

Gradyan iniş algoritmaları, bu kararları etkili ve verimli bir şekilde almamıza yardımcı olmak için türevleri kullanabilir. Türev, hesaplamadan türetilen bir terimdir ve bir grafiğin belirli bir noktadaki eğimi olarak hesaplanabilir. Bu nedenle, bu teğeti hesaplama yeteneğimiz varsa, minimuma ulaşmak için seçilmesi gereken yönü hesaplayabiliriz. Bunu daha sonra daha ayrıntılı olarak tanıtacağız.

Minimum

Yukarıdaki görselde yeşil noktaya teğet bir çizgi çizebiliriz ve biliyoruz ki yukarı çıkarsak minimumdan uzaklaşacağız ya da tam tersi. Ayrıca bu teğet, eğimin dikliğini anlamamızı da sağlar.

Mavi noktadaki eğim yeşil noktadaki kadar dik değildir, bu da mavi noktadan minimuma ulaşmak için gereken adımın yeşil noktadan çok daha küçük olduğu anlamına gelir.

Maliyet fonksiyonunun matematiksel açıklaması

Şimdi yukarıda açıklanan her şeyi matematiksel formüller olarak yazalım. Y = mX + b denkleminde, m ve b parametreleridir. Eğitim sürecinde, değerleri küçük değişikliklere uğrayacaktır. Bu küçük değişikliği olarak gösteriyoruz. Parametrelerin değerleri sırasıyla m = m-m ve b = b-b ile güncellenecektir. Buradaki amacımız, y = mx + b'deki hatayı en aza indiren, yani maliyet fonksiyonunun değerini en aza indiren m ve b değerlerini bulmaktır.

Maliyet işlevini yeniden yazın:

Buradaki fikir, fonksiyonun türevini ve eğimini hesaplayarak, fonksiyonun türevini / eğimini bulabileceğimizdir.

Öğrenme oranı

Minimum veya en alt seviyeye ulaşmak için gereken adım boyutuna öğrenme oranı denir. Daha büyük bir adım / daha yüksek bir öğrenme oranı, daha geniş bir alanı kapsayabilir, ancak minimumu geçme riski vardır. Öte yandan, daha küçük bir adım / daha düşük öğrenme oranıyla en alçak noktaya ulaşmak çok zaman alır.

Aşağıdaki resim, öğrenme oranı kavramını göstermektedir. Üçüncü resimde en az adımla minimuma ulaştık. Bu, bu problem için en uygun öğrenme oranıdır.

Öğrenme oranı çok düşük olduğunda, yakınsamanın birçok adım attığı görülebilir. Öğrenme oranı çok yüksek olduğunda, gradyan inişi aşağıdaki şekilde gösterildiği gibi minimum değere ulaşmayacaktır.

Farklı öğrenme oranlarının deneysel sonuçlarına şu adresten başvurulabilir: https://developers.google.com/machine-learning/crash-course/fitter/graph.

Türev

Makine öğrenimi, türevleri optimizasyon problemlerinde kullanır. Gradyan inişi gibi optimizasyon algoritmaları, türevi kullanarak, amaç fonksiyonunu artırmak veya azaltmak için ağırlığı artırıp artırmayacağına karar verir.

Bir fonksiyonun türevini hesaplayabilirsek, devam etme yönünün fonksiyonu minimize etmek olduğunu biliyoruz. Analizden esas olarak iki kavramı ele alıyoruz:

Güç kuralı

Kuvvet kuralı, bir kuvvete yükseltilmiş bir değişkenin türevini hesaplar.

Zincir kuralı

Zincir kuralı, bileşik bir fonksiyonun türevini hesaplamak için kullanılır. Zincir kuralı, Leibniz gösterimi kullanılarak aşağıdaki gibi ifade edilebilir:

Z değişkeni y değişkenine bağlıysa ve y değişkeni x değişkenine bağlıysa, o zaman y ve z bağımlı değişkenlerdir ve z ayrıca ara değişkenler aracılığıyla x'e de bağlıdır. Buna zincir kuralı denir ve matematiksel olarak şu şekilde yazılabilir:

Bir örnekle anlayalım:

Türevler için güç kuralı ve zincir kuralını kullanarak, maliyet fonksiyonunun m ve b'ye göre nasıl değiştiğini hesaplayabiliriz. Bu, kısmi türev kavramını içerir, yani bir fonksiyonun iki değişkeni varsa, fonksiyonun bir değişkene göre kısmi türevini bulmanın yolu, diğer değişkeni bir sabit olarak ele almaktır. Örneklerle açıklamak daha net olacaktır:

Gradyan inişini hesapla

Şimdi bu hesaplama kurallarını orijinal denklemimize uyguluyoruz ve maliyet fonksiyonunun m ve b'ye göre türevini buluyoruz. Maliyet işlevini yeniden gözden geçirin:

Basit olması için içindeki toplama sembolünden kurtulalım. Bu toplama kısmı, özellikle stokastik gradyan inişi (SGD) ve toplu gradyan inişi kavramları söz konusu olduğunda çok önemlidir. Toplu gradyan iniş sürecinde, tüm eğitim numunelerinin hatalarını tek seferde kontrol ederiz; SGD sürecinde her hatayı her seferinde kontrol ederiz. Ancak, basit olması açısından, her hatayı her seferinde kontrol ettiğimizi varsayıyoruz.

Şimdi m ve b ile ilişkili hatanın gradyanını hesaplayalım:

Bu değerleri maliyet fonksiyonuna geri koyun ve öğrenme oranıyla çarpın:

Şimdi, bu denklemdeki 2 o kadar önemli değil, çünkü bu sadece öğrenme oranımızın iki veya yarısı kadar büyük olduğu anlamına geliyor. Bu yüzden onu atıyoruz. Bu nedenle, sonunda, bu makalenin tamamı gradyan inişi için iki basit denkleme yoğunlaştırılmıştır.

m¹, b¹ = sonraki pozisyon parametresi; m, b = mevcut pozisyon parametresi.

Bu nedenle, gradyanı çözmek için veri noktalarımızı yeni m ve b değerleriyle yineliyor ve kısmi türevleri hesaplıyoruz. Bu yeni gradyan, mevcut konumdaki maliyet fonksiyonunun eğimini ve parametrelerimizi güncellemek için hareket etmemiz gereken yönü gösterebilir. Güncellememizin boyutu, öğrenme oranına göre kontrol edilir.

sonuç olarak

Bu makalenin amacı gradyan iniş kavramını göstermektir. Doğrusal regresyon için bir optimizasyon stratejisi olarak gradyan inişini kullandık. En uygun çizgiyi çizerek öğrencinin boyu ve kilosu arasındaki ilişkiyi ölçün. Bununla birlikte, bu doğrusal regresyon örneğinin gösterimin basitliği için seçildiğini ve gradyan inişinin diğer makine öğrenimi teknikleri için de kullanılabileceğini belirtmek önemlidir.

Aktarım: Makinenin Kalbi https://www.jiqizhixin.com/articles/2019-04-07-6

Guangdong-Sichuan İşe Dönüş Özel Treni, başka yerlerden gelen 1.800'den fazla göçmen işçinin Guangdong'a girip ücretsiz olarak işe dönmesine yardımcı oluyor
önceki
Bu iPhone6 sınırsız para için kullanılabilir mi? Birisi onu çok yüksek bir fiyata satın alıyor! Alipay bir gecede yanıt verdi
Sonraki
Profesyonel grafik kartlı 7700K, 6000 yuan 3D modelleme yapılandırma planı önerilir
Günde 5 dakika! Moutai'nin satış hacmi ton olarak ölçülüyor ve Tmall bulut iş stratejisi bir gişe rekorları kırıyor!
Ucuz ve güzel, Apple iPhone7 cep telefonu kılıfı ekranı
Dünyanın en ilahi 20 soğuk bilgisi, üçüncüsünü görmek için aptalım
LOL "League of Legends" oynayın, 2.000 yuan makine yapılandırma planı önerilir
"Doğruluk" iddiasıyla gözaltına alınan bir Fuzhou adamının kaydı ifşa edildi
Zibo Cuju yeni sezonda yeni bir takım logosuna sahip ve Cuju harfleri Cuju halkını oluşturuyor.
Şu anda en pratik Ryzen platformlarından birini kurun, 3500 yuan Zanji konfigürasyon planı önerilir
Ses aktörleri, şişman modeller, çevrimiçi konsültasyonlar ve İnternet çağındaki yeni kariyerlerin sayılması
Ekstra para partisi yapmayın! 3400 yuan Ruilong platformu Zhanji yapılandırma planı önerilir
Makine öğrenmiyor: anlamsal olarak ilgili uygulama arama-kısa metni benzer
Cep telefonu üreticileri neden çift kamera kullanıyor? Okuduktan sonra
To Top