Leifeng.com'un notu: Bu makalenin yazarı Zhen Ranran'dır.Orijinal metin yazarın kişisel blogunda yayınlanmıştır.Leifeng.com yetkilendirilmiştir.
Perceptron, iki sınıflı bir doğrusal sınıflandırma modelidir.Girdi, örneğin özellik vektörüdür ve çıktı, örneğin kategorisidir (+1 ve -1 alın).
Perceptron'un amacı, örnekleri ayırabilen bir hiper düzlem bulmaktır. Bulmak için, yanlış sınıflandırma kaybı fonksiyonu ve gradyan inişine dayalı bir optimizasyon stratejisi kullanırız.
Örneğin, x, n boyutlu verileri ve y, veri türünü temsil eder. Algılayıcı formülü şu şekilde ifade edilebilir:
f (x) = işaret (wx + b)
Bunlar arasında, w ve b model parametreleridir, w ağırlıktır ve b sapmadır. wx, w ve x'in iç çarpımını temsil eder. İşte işaret, teşvik işlevi:
işaret (x)
Algılayıcı hiper düzleminin doğrusal denklemi şöyledir:
w * x + b = 0
Geometrik anlamı:
Düzlemin eksenindeki koordinat (w1x1 + w2x2 + b = 0):
(0, -b / w2)
(-b / w1, 0)
(Arkasındaki kod kullanılacak, bu yüzden önceden açıklamama izin verin.)
İşte başka bir bilgi parçası ve w'nin neden hiper düzlemin normal vektörü olduğunu kanıtlayın:
Biraz hiper düzlem bilgisi ekleyeyim:
Hiper düzlem ayırma teoremi, konveks kümelerin optimizasyon teorisine uygulanmasının önemli bir sonucudur ve bu sonuç optimizasyon teorisinde önemli bir yere sahiptir. İki dışbükey kümenin sezgisel olarak ayrılması, iki dışbükey kümenin kesişmemesi veya üst üste binmemesi anlamına gelir, bu nedenle ikisini her iki tarafta ayırmak için bir hiper düzlem kullanılabilir.
Konuya dönün:
0'dan büyük olanları +1 kategorisine, 0'dan küçük olanları -1 kategorisine ayırıyoruz. Örneğin, 0'dan büyükse, -1 veya tam tersi olarak değerlendirilir İlk reaksiyon, kayıp fonksiyonu olarak daha az sayıda yanlış sınıflandırılmış nokta kullanmaktır, ancak bu tür kayıp fonksiyonunun w ve b'si sürekli ve türevlenebilir değildir. , Optimize edilemez.
Bu yüzden başka bir seçeneğe geçmek istiyoruz, yani yanlış sınıflandırılmış noktadan hiper düzleme olan mesafe ne kadar kısa olursa o kadar iyidir. Mesafe formülü aşağıdaki gibidir:
Mesafe formülünü unutursanız, size bir ipucu verin:
Ve her yanlış sınıflandırma noktasının -yi (wx + b) karşıladığını biliyoruz > 0
Çünkü veri noktamızın doğru değeri +1 olduğunda yanlış sınıflandırmışsınızdır, o zaman eğer onu -1 olarak değerlendirirseniz (wx0 + b) 0 hesaplayın.
Veri noktasının doğru değeri -1 olduğunda, yanlış sınıflandırmış olursunuz, sonra onu +1 olarak yargılarsınız, sonra hesaplarsınız (wx0 + b > 0), yani -yi (wx + b) > 0
Sonra mutlak değer sembolünü kaldırabilir ve yanlış sınıflandırılmış noktanın mesafesini şu şekilde alabiliriz:
Çünkü bildiğiniz için, mutlak değeri kaldırabilirsiniz. Ardından toplam mesafe şu şekilde elde edilebilir:
W normunun bir bölümünü dikkate almadan (sonuçların aynı olduğunu düşünmek ve dikkate almamak, deney kanıtlamıştır), kayıp fonksiyonunu şu şekilde elde edebiliriz:
M, yanlış sınıflandırılan noktaların sayısıdır.
Zaten aşağıda gösterildiği gibi kayıp işlevini en aza indirmek için bir hedefimiz olduğunda:
Güncellemek için yaygın olarak kullanılan gradyan iniş yöntemini kullanabiliriz ve w ve b parametrelerinin kısmi türevleri elde edilebilir:
Sonra keyfi olarak w ve b'yi başlattıktan sonra, bir yanlış sınıflandırma noktasıyla karşılaştığımızda, alınan ağırlıklar sırasıyla w ve b olarak güncellenir:
Tüm süreci düzenleyin (iki boyutlu bir düzlem gibi):
a. w1, w2, b başlangıç değerlerini seçin (bir hiper düzlemi başlatmakla eşdeğer)
b. Eğitim setinde verileri seçin (xi, yi) (keyfi olarak veri noktalarını çıkarın, tüm veri noktalarının tamamlanmış olarak değerlendirilip değerlendirilmediğini belirleyin ve yorgun noktaların yanlış bölünmesi yoktur, eğer yoksa, hala c varsa algoritmayı sonlandırın)
c. yi (w * xi + b) ise
Ardından parametreleri güncelleyin! Güncelleme yöntemi aşağıdaki gibidir:
, 0-1 arasındaki öğrenme oranıdır.
Başlatma verileri
Yinelemeli güncelleme döngüsü
Leifeng.com'da İlgili Okumalar:
Perceptron: prensipten eğitime
Perceptron (Perceptron)