Sahte etiketleme kullanımı önemsiz bir şekilde neden etkileniyor?


19

Yarı denetimli öğrenme yöntemlerini araştırdım ve "sözde etiketleme" kavramıyla karşılaştım.

Anladığım kadarıyla, sözde etiketleme ile etiketlenmiş verilerin yanı sıra etiketlenmemiş veriler kümesine sahip olursunuz. Bir modeli sadece etiketli verilere göre eğitirsiniz. Daha sonra bu ilk verileri, etiketlenmemiş verileri sınıflandırmak (geçici etiketler eklemek) için kullanırsınız. Daha sonra hem etiketlenmiş hem de etiketlenmemiş verileri, hem bilinen etiketlere hem de öngörülen etiketlere uyacak şekilde (yeniden) model eğitiminize geri beslersiniz. (Güncellenmiş modelle yeniden etiketleyerek bu işlemi yineleyin.)

İddia edilen faydalar, modeli iyileştirmek için etiketlenmemiş verilerin yapısı hakkındaki bilgileri kullanabilmenizdir. Aşağıdaki şeklin bir varyasyonu genellikle gösterilmektedir, bu da sürecin (etiketlenmemiş) verilerin nerede bulunduğuna bağlı olarak daha karmaşık bir karar sınırı yapabileceğini "göstermektedir".

Yarı denetimli yöntemlerde karar sınırı

Image Wikimedia Commons Techerin tarafından CC BY-SA 3.0

Ancak, bu basit açıklamayı tam olarak satın almıyorum. Saf olarak, yalnızca etiketli orijinal eğitim sonucu üst karar sınırı olsaydı, sözde etiketler bu karar sınırına göre atanırdı. Yani, üst eğrinin sol eli sahte etiketli beyaz ve alt eğrisinin sağ eli sahte etiketli siyah olacaktır. Yeni sözde etiketler sadece mevcut karar sınırını güçlendireceğinden, yeniden eğitimden sonra güzel kıvrımlı karar sınırını alamazsınız.

Ya da başka bir deyişle, sadece etiketli mevcut karar sınırı etiketlenmemiş veriler için mükemmel tahmin doğruluğuna sahip olacaktır (bunları yapmak için kullandığımız şey budur). Sadece sözde etiketli verileri ekleyerek bu karar sınırının yerini değiştirmemize neden olacak itici güç (eğim yok) yoktur.

Diyagramın somutlaştırdığı açıklamanın eksik olduğunu düşünüyor muyum? Yoksa özlediğim bir şey var mı? Değilse, ne olduğunu sözde etiketlerin fayda sözde etiket üzerinde mükemmel doğruluğa sahip öncesi yeniden eğitim Karar sınır verilen?

Yanıtlar:


16

Yalancı etiketleme verilen oyuncak problemi üzerinde çalışmıyor

Oliver ve diğ. (2018) farklı yarı-denetimli öğrenme algoritmalarını değerlendirmiştir. İlk rakamları, sözde etiketlemenin (ve diğer yöntemlerin) sorunuzdaki aynı oyuncak probleminde nasıl performans gösterdiğini gösterir ('iki ay' veri kümesi olarak adlandırılır):

resim açıklamasını buraya girin

Grafik, etiketlenmiş ve etiketlenmemiş veri noktalarını ve farklı yarı denetimli öğrenme yöntemleri kullanılarak bir sinir ağı eğitildikten sonra elde edilen karar sınırlarını gösterir. Şüphelendiğiniz gibi, sözde etiketleme bu durumda iyi çalışmaz. Sahte etiketlemenin "muhtemelen basitliği ve genelliğinden dolayı pratikte yaygın olarak kullanılan basit bir sezgisel tarama olduğunu" söylüyorlar. Ancak: "Sezgisel olsa da, tahmin fonksiyonu Şekil 1'de gösterildiği gibi [etiketlenmemiş veriler] için yararsız hedefler ürettiğinde yanlış sonuçlar verebilir."

Sahte etiketleme neden ve ne zaman çalışır?

Sözde etiketleme Lee (2013) tarafından tanıtıldı, böylece daha fazla ayrıntıyı burada bulabilirsiniz.

Küme varsayımı

Lee'nin sahte etiketleme için verdiği teorik gerekçe entropi düzenliliğine benzer olmasıdır. Entropi düzenlenmesi (Grandvalet ve Bengio 2005), sınıflandırıcıyı etiketlenmemiş veriler hakkında kendinden emin tahminler yapmaya teşvik eden bir başka yarı-denetimli öğrenme tekniğidir. Örneğin, etiketlenmemiş bir noktaya, birden fazla sınıfa yayılan yaygın olasılıklardan ziyade, belirli bir sınıfta olma olasılığının yüksek olmasını tercih ederiz. Amaç, verinin sınıfa göre (yarı denetimli öğrenmede "küme varsayımı" olarak adlandırılır) kümelenmesi varsayımından yararlanmaktır. Böylece, yakındaki noktalar aynı sınıfa sahiptir ve farklı sınıflardaki noktalar daha geniş bir şekilde ayrılır, böylece gerçek karar sınırları giriş alanının düşük yoğunluklu bölgelerinden geçer.

Sahte etiketleme neden başarısız olabilir?

Yukarıdakiler göz önüne alındığında, küme varsayımının sözde etiketlemenin çalışması için gerekli bir koşul olduğunu tahmin etmek makul görünecektir. Ancak, yukarıdaki iki ay sorunu küme varsayımını karşıladığından açıkça yeterli değildir, ancak sözde etiketleme işe yaramaz. Bu durumda, sorunun etiketli noktaların çok az olması ve bu noktalardan doğru küme yapısının tanımlanamamasından şüpheleniyorum. Yani Oliver ve ark. tanımlayın (ve sorunuzda belirttiğiniz gibi), ortaya çıkan sözde etiketler sınıflandırıcıyı yanlış karar sınırına yönlendirir. Belki de daha fazla etiketlenmiş veri verildiğinde işe yarar. Örneğin, sözde etiketlemenin işe yaradığı aşağıda açıklanan MNIST davasıyla karşılaştırın.

Nerede çalışıyor?

Lee (2013) sözde etiketlemenin MNIST veri kümesine yardımcı olabileceğini göstermiştir (100-3000 etiketli örnekle). İncirde. Bu makalenin 1'inde, 600 etiketli örnek üzerinde eğitilmiş bir sinir ağının (herhangi bir yarı denetimli öğrenme olmadan) sınıflar arasında küme yapısını zaten kurtarabildiğini görebilirsiniz . Görünüşe göre sözde etiketleme yapıyı geliştirmeye yardımcı oluyor . Bunun, birkaç etiketli noktanın uygun kümeleri öğrenmek için yeterli olmadığı iki ay örneğinden farklı olduğunu unutmayın.

Makale ayrıca sonuçların sadece 100 etiketli örnekle kararsız olduğunu belirtmektedir. Bu yine sözde etiketlemenin ilk tahminlere duyarlı olduğu ve iyi başlangıç ​​tahminlerinin yeterli sayıda etiketlenmiş nokta gerektirdiğini desteklemektedir.

Lee ayrıca, otomatik kodlayıcıları denetlerken denetimsiz ön eğitimin daha da yardımcı olduğunu gösterdi, ancak bu, etiketlenmemiş verilerdeki yapıyı kullanmanın ayrı bir yolu gibi görünüyor; maalesef, yalnızca denetimsiz ön eğitimle (sözde etiketleme olmadan) bir karşılaştırma yapılmamıştır.

Grandvalet ve Bengio (2005) yalancı etiketlemenin CIFAR-10 ve SVHN veri kümelerinde (sırasıyla 4000 ve 1000 etiketli örneklerle) öğrenmeyi denetlediğini bildirmiştir. Yukarıdaki gibi, bu iki ay problemindeki 6 etiketli noktadan çok daha fazla etiketlenmiş veridir.

Referanslar


5

Kendi kendine eğitimin nasıl işlediğine bakmıyor olabilirsiniz:

  1. Yinelemeli, tek seferlik değil.

  2. Olasılıksal değerler döndüren bir sınıflandırıcı kullanırsınız. Her yinelemede, algoritmanızın en kesin olduğu durumlar için yalnızca psuedo etiketleri eklersiniz.

Örneğinizde, belki de ilk yineleme, etiketli noktaların her birine çok yakın bir veya iki noktayı etiketleyecek kadar emin. Bir sonraki yinelemede sınır, bu dört ila altı etiketli noktayı barındırmak için hafifçe dönecektir ve eğer doğrusal değilse, hafifçe bükülmeye başlayabilir. Tekrar et.

Çalışacağı garanti edilmez. Temel sınıflandırıcıya, algoritmanıza (sözde etiket atamak için ne kadar emin olmanız gerektiğine), verilerinize vb. Bağlıdır.

Bunları kullanabiliyorsanız daha güçlü olan başka algoritmalar da vardır. Açıkladığınıza inandığım şey, kodlanması kolay olan kendi kendine eğitimdir, ancak aynı bilgilere tekrar tekrar bakan tek bir sınıflandırıcı kullanıyorsunuz. Ortak eğitim, her bir nokta için farklı bilgilere bakan birden fazla sınıflandırıcı kullanır. (Bu, Rastgele Ormanlara biraz benzemektedir.) Başka yarı denetimli teknikler de vardır - açıkça kümelenenler gibi - genel olarak "bu her zaman işe yarar ve kazanan".

YANITA YANIT: Bu alanda uzman değilim. Bunu genellikle müşterilerle yaptığımız şeyler için çok geçerli olarak görüyoruz, bu yüzden öğreniyorum ve tüm cevaplara sahip değilim.

Yarı denetimli öğrenim gözden geçirmeleri aradığımda en önemli hit: 2008'den itibaren Yarı Denetimli Öğrenme Edebiyatı Araştırması . Bu yıllar önce, bilgisayar açısından, ama burada bahsettiğim şeylerden bahsediyor.

Bir sınıflandırıcının etiketli düğümlerden en uzak olan etiketlenmemiş noktaları en kesin şekilde derecelendirebileceğini duydum. Öte yandan, sezgilerimiz bizi kandırabilir. Örneğin, Wikipedia'dan aldığınız grafiği siyah, beyaz ve gri düğümlerle ele alalım.

İlk olarak, bu 2B'dir ve en gerçekçi problemler, sezgilerimizin bizi yanlış yönlendirdiği daha yüksek boyutlarda olacaktır. Yüksek boyutlu alan birçok yönden farklı davranır - bazıları negatif ve bazıları gerçekten yararlı.

İkinci olarak, ilk yinelemede en sağdaki, en alttaki en gri noktanın siyah olarak etiketleneceğini tahmin edebiliriz, çünkü siyah etiketli nokta beyaz etiketli noktadan onlara daha yakındır. Ancak bu her iki tarafta da olsaydı, dikey karar sınırı hala eğilirdi ve artık dikey olmayacaktı. En azından hayal gücümde, düz bir çizgi olsaydı, orijinal olarak etiketlenmiş iki nokta arasındaki çapraz boş alana inerdi. Hala iki hilal yanlış bölünmüş olurdu, ama şimdi verilere daha uyumlu olacaktı. Devamlı yineleme - özellikle doğrusal olmayan bir karar sınırıyla - tahmin ettiğimizden daha iyi bir yanıt verebilir.

Üçüncüsü, bir zamanlar etiketlenmiş, her zaman etiketlenmiş olanın aslında nasıl çalışması gerektiğinden emin değilim. Bunu nasıl yaptığınıza ve algoritmanın nasıl çalıştığına bağlı olarak, önce bükerken (doğrusal olmayan varsayılarak) sınırı eğebilir ve ardından hilallerin yanlış sınıflandırılan bazı kısımları etiketlerini değiştirebilir.

Benim içimde bu üç nokta, uygun (muhtemelen daha yüksek boyutlu) verilerle ve uygun sınıflandırıcılarla bir araya geldiğinde, çok az sayıda eğitim (etiketli) örnekle denetlenen bir düzleştirmeden daha iyisini yapabilir. Hiçbir garanti yok ve deneylerimde buldum - çok basit olan veri kümelerini suçluyorum - yarı denetimli, sadece denetimli olandan çok az gelişebilir ve bazen kötü bir şekilde başarısız olabilir. Sonra tekrar, aslında iyi olabilir ya da olmayabilir, iki algoritma ile oynuyorum.


2
Ne tür sınıflandırıcılar / durumlar üzerinde çalışacağını genişletebilir misiniz? Gösterilen örnek veriler üzerinde çalışan çoğu sınıflandırıcıya ilişkin anlayışım, yüksek güven kazanacak olan karar sınırından (bilinen noktalara yakın) çok uzak olması, böylece bu distal kuyrukların güvenle yanlış sınıflandırılması olacaktır. misal. (Ayrıca, sözde etiketleme ve ilgili tekniklerin etkili bir şekilde kullanılmasıyla ilgili işaret edebileceğiniz referanslar / daha fazla okuma takdir edilecektir.)
RM

@RM Düzenlendi. O nasıl?
Wayne

1

Uyarı, bu prosedür konusunda uzman değilim. İyi sonuçlar elde edemem, tekniğin işe yarayamayacağının kanıtı değil. Ayrıca, resminiz, çeşitli tekniklere sahip geniş bir alan olan "yarı denetimli" öğrenmenin genel tanımına sahiptir.

Sezginize katılıyorum, böyle bir tekniğin kutudan nasıl çıkabileceğini görmüyorum. Başka bir deyişle, belirli bir uygulama için iyi çalışmasını sağlamak için çok çaba sarf etmeniz gerektiğini düşünüyorum ve bu çaba diğer uygulamalarda mutlaka yardımcı olmaz.

Biri örnek görüntüdeki gibi muz şeklindeki veri kümesine ve iki basit normal dağıtılmış kümeye sahip başka bir daha kolay veri kümesine sahip iki farklı örneği denedim. Her iki durumda da ilk sınıflandırıcıyı geliştiremedim.

Bir şeyleri teşvik etmek için küçük bir girişim olarak, bunun daha iyi sonuçlara neden olacağı ümidiyle tahmin edilen tüm olasılıklara gürültü ekledim.

İlk örnek yukarıdaki görüntüyü olabildiğince sadakatle yeniden yarattım. Ben psuedo-etiketlemenin burada hiç yardımcı olacağını sanmıyorum.

Bir, muz şeklindeki verileri inceleyin

İkinci örnek çok daha kolaydır, ancak burada bile ilk sınıflandırıcıda iyileştirilemez. Özellikle etiketli noktayı sol sınıfın ortasından seçtim ve sağ sınıfın sağ tarafında doğru yönde kaymasını umarak böyle bir şans yok.

İkinci örnek, 2B normal olarak dağıtılmış veriler] =

Örnek 1 kodu (örnek 2 burada çoğaltmayacağım kadar benzer):

import numpy as np
from sklearn.ensemble import RandomForestClassifier
import matplotlib.pyplot as plt
import seaborn

np.random.seed(2018-10-1)
N = 1000

_x = np.linspace(0, np.pi, num=N)
x0 = np.array([_x, np.sin(_x)]).T
x1 = -1 * x0 + [np.pi / 2, 0]

scale = 0.15
x0 += np.random.normal(scale=scale, size=(N, 2))
x1 += np.random.normal(scale=scale, size=(N, 2))

X = np.vstack([x0, x1])

proto_0 = np.array([[0], [0]]).T # the single "labeled" 0
proto_1 = np.array([[np.pi / 2], [0]]).T # the single "labeled" 1

model = RandomForestClassifier()
model.fit(np.vstack([proto_0, proto_1]), np.array([0, 1]))
for itercount in range(100):
    labels = model.predict_proba(X)[:, 0]
    labels += (np.random.random(labels.size) - 0.5) / 10 # add some noise
    labels = labels > 0.5
    model = RandomForestClassifier()
    model.fit(X, labels)

f, axs = plt.subplots(1, 2, squeeze=True, figsize=(10, 5))

axs[0].plot(x0[:, 0], x0[:, 1], '.', alpha=0.25, label='unlabeled x0')
axs[0].plot(proto_0[:, 0], proto_0[:, 1], 'o', color='royalblue', markersize=10, label='labeled x0')
axs[0].plot(x1[:, 0], x1[:, 1], '.', alpha=0.25, label='unlabeled x1')
axs[0].plot(proto_1[:, 0], proto_1[:, 1], 'o', color='coral', markersize=10, label='labeled x1')
axs[0].legend()

axs[1].plot(X[~labels, 0], X[~labels, 1], '.', alpha=0.25, label='predicted class 0')
axs[1].plot(X[labels, 0], X[labels, 1], '.', alpha=0.25, label='predicted class 1')
axs[1].plot([np.pi / 4] * 2, [-1.5, 1.5], 'k--', label='halfway between labeled data')
axs[1].legend()
plt.show()

1

İşte tahminim (bu konu hakkında fazla bir şey bilmiyorum, sadece iki sentimi bu tartışmaya eklemek istedim).

Haklı olduğunuzu düşünüyorum, klasik bir modeli eğitmenin ve tahminlerini veri olarak kullanmanın bir anlamı yok, çünkü dediğiniz gibi, iyileştiricinin daha iyisini yapması için bir teşvik yok. Rastgele başlangıç ​​algoritmalarının aynı optimumu bulma olasılığının daha yüksek olduğunu tahmin ediyorum çünkü daha önce bulunan optimumun daha büyük veri kümesi nedeniyle doğru olduğundan daha emin olacaklar, ancak bu önemsiz.

Bununla birlikte, aldığınız ilk cevabın bir anlamı var - Wikipedia'daki örnek, kümelenme hakkında konuşuyor ve bence bu tüm farkı yaratıyor. Etiketlenmemiş verileriniz olduğunda, esasen diğer etiketli olanlar gibi paylaşılan bir "gizli özellik alanı" üzerinde yatan bir sürü etiketsiz noktanız olur. Gerçekten daha iyi etiketsiz noktaları ayrılıp edilebileceği gerçeğini ortaya çıkarabilir eğer etiketli verilere eğitilmiş bir sınıflandırma algoritması daha yapmak sadece olabilir sonra etiketlenmiş noktaları bu gizli özellik alanı üzerinde, ait hangi sınıf dayalı sınıflandırılmış.

Demek istediğim, bunu yapmanız gerekiyor:

lbirbelleddbirtbirclusterbenngclbirssbenfbencbirtbenÖn

... ve etiketlenmemiş verilerle tekrarlayın. Burada, öğrenilen küme sınırları aynı olmayacaktır , çünkü kümeleme sınıf etiketlerini umursamadığından, hesaba kattığı tek şey özellik alanını dönüştürmektir. Kümeleme, sınıflandırma sınırının öğrenildiği gizli bir özellik alanı oluşturur ve bu yalnızca etiketli verilere bağlıdır.

Herhangi bir kümelenme gerçekleştirmeyen algoritmalar, etiketlenmemiş veri kümesine göre optimumlarını değiştiremeyeceğini düşünüyorum.

Bu arada, bağladığınız görüntü burada neler olduğunu açıklamak için adil bir iş çıkarıyor; yalnızca sınırlama algoritmasına dayalı bir karar sınırı öğrenilir. Burada doğru sınıfların ne olduğu hakkında hiçbir fikriniz yok - bunların hepsi rastgele olabilir - bilmiyoruz. Şimdi yapabileceğimiz tek şey, özellik alanında bazı yapıların var olduğu ve özellik alanından sınıf etiketlerine kadar bazı eşlemeler olduğu görülüyor.

Gerçekten referans yok ama bu Reddit yayınında , anladığım kadarıyla, yarı denetimli öğrenme yapan bir GAN hakkında bir tartışma var. Örtülü olarak bir kümeleme ve ardından sınıflandırma gerçekleştiren bir grup benim.

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.