Makine öğrenimi modeli için “kayıp” ve “doğruluk” nasıl yorumlanır


Yanıtlar:


287

Kayıp ne kadar düşükse, bir model o kadar iyi olur (model eğitim verilerine fazla oturmamışsa). Kayıp, eğitim ve validasyonda hesaplanır ve yorumu , modelin bu iki set için ne kadar iyi performans gösterdiğidir. Doğruluğun aksine, kayıp bir yüzde değildir. Eğitim veya doğrulama setlerinde her örnek için yapılan hataların bir toplamıdır.

Sinir ağlarında, kayıp genellikle negatif log olabilirliği ve sırasıyla sınıflandırma ve regresyon için kalan kareler toplamıdır . Daha sonra doğal olarak, bir öğrenme modelindeki temel amaç, sinir ağlarındaki geri çoğaltma gibi farklı optimizasyon yöntemleri yoluyla ağırlık vektör değerlerini değiştirerek, kayıp fonksiyonunun modelin parametrelerine göre değerini azaltmak (en aza indirmek).

Kayıp değeri, belirli bir modelin her optimizasyon yinelemesinden sonra ne kadar iyi veya kötü davrandığını gösterir. İdeal olarak, her bir veya birkaç tekrardan sonra kaybın azalması beklenir.

Doğruluk modeli parametreleri öğrendim ve sabit ve hiçbir öğrenme gerçekleşiyor sonra bir modelin genellikle belirlenir. Daha sonra test örnekleri modele beslenir ve gerçek hedeflerle karşılaştırıldıktan sonra modelin yaptığı hata sayısı (sıfır bir kayıp) kaydedilir. Daha sonra yanlış sınıflandırma yüzdesi hesaplanır.

Örneğin, test örneği sayısı 1000 ise ve model bunların 952'sini doğru bir şekilde sınıflandırırsa, modelin doğruluğu% 95,2'dir.

resim açıklamasını buraya girin

Kayıp değerini düşürürken bazı incelikler de vardır. Örneğin , modelin eğitim örneklerini "ezberlediği" ve test seti için bir şekilde etkisiz hale geldiği aşırı uyum sorunuyla karşılaşabilirsiniz . Aşırı uydurma , bir düzenlileştirme kullanmadığınız , çok karmaşık bir modeliniz (serbest parametre Wsayısı büyüktür) veya veri noktası sayısının Nçok düşük olduğu durumlarda da ortaya çıkar .


2
Merhaba @Amir, detay açıklamalarınız için teşekkürler. Ancak, bir sorunum var: Sinir Ağımda, eğitim aldığımda ( dönemler arttığında) kayıp her zaman azalır , ancak doğruluk daha iyi değildir.
mamatv

9
@mamatv Maliyet düştüğü sürece gitmek için iyi olmalısınız. Her ne kadar maliyet ve doğruluk normalde ters orantılılık ilişkisine sahip olsa da, doğruluk sıfır-bir hataların toplamı, maliyet ise kayan nokta sayılarının bir toplamıdır. Bu nedenle, maliyette% 0.001'lik bir azalma mutlaka doğrulukta% 0.001'lik bir artış anlamına gelmez. Maliyetteki düşüş mantıksız olduğunda doğruluk artışı çok daha zordur (maliyet yerel bir minimaya çok yakındır)
Amir

2
@mamatv Hem eğitim hem de validasyon maliyeti düştüğü sürece söylemeliydim. Ayrıca her çağda doğrulama doğruluğunu da kontrol edebilirsiniz. Yükselmeye başlarsa, modeliniz aşırı uymaya başlamış olabilir ve onu eğitmeyi bırakmalısınız.
Amir

1
Neden kaybı en aza indirmek yerine modeli doğruluğu artırmak için eğitmiyorsunuz?
bikashg

2
@bikashg doğruluğu farklı değildir ve bu nedenle üzerinde geri adım atamazsınız.
DharmaTurtle

24

Modelinizin genellikle farklı aşamalarda kullanıldığını değerlendirmek için iki farklı metriktir.

Kayıp, eğitim sürecinde genellikle modeliniz için "en iyi" parametre değerlerini bulmak için kullanılır (örn. Sinir ağındaki ağırlıklar). Ağırlıkları güncelleyerek eğitimde optimize etmeye çalıştığınız şey budur.

Doğruluk daha çok uygulamalı bir bakış açısından. Yukarıdaki optimize edilmiş parametreleri bulduktan sonra, modelinizin tahmininin gerçek verilerle ne kadar doğru olduğunu değerlendirmek için bu metrikleri kullanırsınız.

Bir oyuncak sınıflandırma örneği kullanalım. Cinsiyeti kişinin kilosundan ve boyundan tahmin etmek istiyorsunuz. 3 veriniz var, bunlar şu şekildedir: (0 erkek için stand, 1 kadın için stand)

y1 = 0, x1_w = 50kg, x2_h = 160cm;

y2 = 0, x2_w = 60kg, x2_h = 170cm;

y3 = 1, x3_w = 55kg, x3_h = 175cm;

Y = 1 / (1 + exp- (b1 * x_w + b2 * x_h)) olan basit bir lojistik regresyon modeli kullanıyorsunuz

B1 ve b2'yi nasıl bulursunuz? önce bir kayıp tanımlar ve b1 ve b2'yi güncelleyerek kaybı yinelemeli bir şekilde en aza indirmek için optimizasyon yöntemini kullanırsınız.

Örneğimizde, bu ikili sınıflandırma problemi için tipik bir kayıp şunlar olabilir: (toplama işaretinin önüne bir eksi işareti eklenmelidir)

B1 ve b2'nin ne olması gerektiğini bilmiyoruz. Rastgele bir tahmin yapalım diyelim ki b1 = 0.1 ve b2 = -0.03. Peki şimdi bizim kaybımız nedir?

yani kayıp

Sonra öğrenme algoritması (örneğin, gradyan iniş) kaybı azaltmak için b1 ve b2 güncellemek için bir yol bulacaksınız.

Eğer b1 = 0.1 ve b2 = -0.03 son b1 ve b2 ise (gradyan kökenli çıkış), şimdi doğruluk nedir?

Diyelim ki y_hat> = 0.5, tahminimizin kadın olduğuna karar veriyoruz (1). aksi takdirde 0 olur. Bu nedenle, algoritmamız y1 = 1, y2 = 1 ve y3 = 1'i tahmin eder. Doğruluk nedir? Y1 ve y2 üzerinde yanlış tahmin yapıyoruz ve y3 üzerinde doğru tahmin yapıyoruz. Şimdi isabetliliğimiz 1/3 = 33.33%

Not: Amir'in cevabında geri yayılmanın NN'de bir optimizasyon yöntemi olduğu söyleniyor. Bence NN'de ağırlıklar için eğim bulmanın bir yolu olarak değerlendirilecek. NN'de yaygın optimizasyon yöntemi GradientDescent ve Adam'dır.


matematik için teşekkürler. kavramın netleştirilmesine yardımcı oldu.
Finn Frotscher

7

@Aadnan Sadece Eğitim / Doğrulama / Test veri setlerini açıklığa kavuşturmak için: Eğitim seti, sinir ağının ağırlıklarını başlatan modelin ilk eğitimini gerçekleştirmek için kullanılır.

Doğrulama seti, sinir ağı eğitildikten sonra kullanılır. Ağın hiperparametrelerini ayarlamak ve bunlarda yapılan değişikliklerin modelin öngörme doğruluğunu nasıl etkilediğini karşılaştırmak için kullanılır. Eğitim seti, sinir ağının kapı ağırlıklarını oluşturmak için kullanıldığı düşünülebilirken, doğrulama seti sinir ağı modelinin parametrelerinin veya mimarisinin ince ayarını yapmayı sağlar. Parametre / mimari değişikliklerinin ağın tahmin gücünü nasıl etkilediğini gözlemlemek için, bu farklı parametrelerin / mimarilerin aynı veri ve ağ ağırlıklarıyla tekrarlanabilir bir şekilde karşılaştırılmasına izin verdiği için faydalıdır.

Daha sonra test seti, eğitim ve doğrulama veri setleri ile eğitim ve parametre / mimari seçiminden sonra, daha önce görülmemiş veriler üzerinde eğitimli sinir ağının tahmini doğruluğunu test etmek için kullanılır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.