Sinir Ağı: İkili Sınıflandırma için 1 veya 2 çıkış nöronu kullanıyor musunuz?


26

İkili sınıflandırma yapmak istediğimi varsayalım (bir şey A veya B sınıfına aittir). Bunu bir sinir ağının çıkış katmanında yapmanın bazı olasılıkları vardır:

  • 1 çıkış düğümü kullanın. Çıkış 0 (<0,5) A sınıfı kabul edilir ve 1 (> = 0,5) B sınıfı (sigmoid olması durumunda) kabul edilir.

  • 2 çıkış düğümü kullanın. Giriş, en yüksek değer / olasılık değerine sahip olan düğümün sınıfına aittir (argmax).

Bunu (ayrıca) tartışan yazılı bir yazı var mı? Aranacak belirli anahtar kelimeler nelerdir?

Bu soru daha önce bu sitede daha önce sorulmuştu, örneğin bu bağlantıya gerçek cevap olmadan bak. Bir seçim yapmam gerekiyor (Yüksek Lisans Tezi), bu yüzden her bir çözümün pro / eksileri / sınırlamaları hakkında bilgi edinmek istiyorum.


Bağlantılı sorunun OP'sinin iyi bir noktaya sahip olduğunu düşünüyorum, tek fark seçim 2'nin daha fazla sayıda parametreye sahip olması, daha esnek ancak fazla uydurma eğilimli olmasıdır.
dontloo

1
Udacity ML Nanodegree'de, sonuç sadece birbirini dışlayansa, yalnızca ağın yapabileceği daha az hata olması nedeniyle bir çıkış düğümünü kullanmanın daha iyi olduğunu öğrendim. Sanırım bu durumda 2 çıkış düğümü kullanmanın artıları yok ama bunun için bilimsel bir kanıtım yok
KodlamaYourLife

Yanıtlar:


25

İkinci durumda, muhtemelen softmax aktivasyon fonksiyonu hakkında yazıyorsunuzdur. Bu doğruysa, sigmoid sadece softmax işlevi için özel bir durumdur. Göstermesi kolay.

y=11+e-x=11+1ex=1ex+1ex=ex1+ex=exe0+ex

Gördüğünüz gibi sigmoid softmax ile aynıdır. İki çıktınızın olduğunu düşünebilirsiniz, ancak bunlardan biri tüm ağırlıklara sıfıra eşit ve bu nedenle çıktısı daima sıfıra eşit olacaktır.

Bu yüzden ikili sınıflandırma için daha iyi seçenek, softmax yerine sigmax ile bir çıkış ünitesinin iki çıkış ünitesi ile kullanılmasıdır, çünkü daha hızlı güncellenecektir.


Bunlardan birinin ağırlığının sıfır olduğunu söylerken, modelin eğitim sırasında sınıftan birini bile düşünmediğini mi söylüyorsunuz? Uygulamada, bu ikili sınıflandırıcıyı sadece bir sınıf eğitim verisi ile eğitebilir miyiz?
Deadcode

Eğitim ve sınıf sırasında sabitlenmiş (eşikli) daha çok eşittir. Öyleyse biliyorsunuz ki eğer ise pozitif sınıftan ve x < 0 ise negatif sınıftan. Softmax ile farklı eşikleri öğrenebilir ve farklı sınırlara sahip olabilirsiniz. RE, tüm sıfırlarla ağırlıklandırır, yani iki çıkış nötronunuz ve bir x ve diğeri her zaman 0 çıkışlarından biri olduğunda, iki çıkış nötronunuz olduğunda durum için softmax ile aynı olan sigmoidin aynı olduğu anlamına gelir . Sadece ikinci çıktı için tüm ağırlıklar sıfıra eşit olduğunda olabilir. Umut ediyorum bu yardım eder. x>0x<0x0
itdxer

1
Unutmayın ki formun dejenere çözümleri vardır exp(x+alpha) / (exp(alpha) + exp(x+alpha))- aslında sonsuz sayıda - hepsi de 0 ile belirtilenler ile aynı sınıflandırma sonucunu verir. Tüm ağırlıkların 0 ile belirtildiği gibi sonuçlanır. Tüm ağırlıkları 0 olan çözelti ile (sadece anlamsız ve israf) dejenere olan çözeltilerden sadece bir çıkış nöronu kullanarak sakının.
Dan Nissenbaum

2

Sınıflayıcılar gibi makine öğrenme algoritmaları , giriş kategorisini farklı kategorilere ait olan giriş olasılıklarını belirleyerek istatistiksel olarak modellemektedir . İsteğe bağlı sayıda sınıf için normal olarak modele softmax katmanı eklenir, böylece çıktılar tasarıma göre olasılık özelliklerine sahip olur:

y=SoftMax(bir)1Σbene-birbenx[e-bir1,e-bir2,...,e-birn]

0yben1 herkes için ben
y1+y2+...+yn=1

bir

Bu, iki sınıf için mükemmel bir şekilde geçerlidir, ancak, çıktısı yerine getirdiği takdirde biri de bir nöron (iki yerine) kullanabilir:

0y1 tüm girişler için.
Bu, hangi haritaların dönüştürüldüğü (geri yayılma amaçları için farklılaştırılabilir / pürüzsüz) uygulandığında sağlanabilir. bir için yöyle ki yukarıdaki koşul yerine getirilir. Sigmoid işlevi kriterlerimize uyuyor. Basit bir matematiksel temsilden başka, özel bir şey yok.

sigmoid(bir)σ(bir)11+e-bir

kullanışlı matematiksel özellikler (farklılaşma, 0 ile 1 arasında sınırlandırılmış vb.), hesaplama verimliliği ve güncelleme ağının ağırlığının güncellenmesi için doğru eğime sahip olması, optimizasyon amacıyla çıktıda küçük ama ölçülebilir bir değişikliğe sahip olmasını sağlar.

Sonuç

@ İtdxer'in softmax ve sigmoid gösteren mantığının geçerli olması durumunda eşdeğer olup olmadığından emin değilim, ancak daha az parametre ve hesaplama gerektiğinden , ikili sınıflandırıcılar için 2 nöronun aksine 1 nöron seçmek konusunda haklı . Ayrıca, "gereksiz" olduğu için ikili bir sınıflandırıcı için iki nöron kullandığım için eleştirildim.

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.