cat wid.txt |
while read CMD; do
str1='http://www.image-net.org/downloads/features/sbow/'
str2='.sbow.mat'
echo "$CMD"
str3="$str1$CMD$str2"
echo "$str3"
wget "$str3"
done
Basit bir şey ama hafızamın ne kadar kötü olduğunu düşünürsek yazmakta fayda var. bu arada '=' işaretinden sonra boşluk bırakmamak önemli.
Sunday, January 29, 2012
Wednesday, January 18, 2012
çevrimiçi öğrenme-1:perceptron
Benim kullandığım algoritma şöyle:
for t=1...T
receive (x_t,y_t)
make a prediction f=w^T*x_t
if y_t*f update w: w = w + s_t*y_t*x_t (s_t:step size)
end
end
Bu algoritmaya 'regularizer' (düzenleyici?) katmak istersek şöyle yapmamız gerekir:
for t=1...T
receive (x_t,y_t)
make a prediction f=w^T*x_t
if y_t*f update w: w = (1-s_t)w + s_t*y_t*x_t (s_t:step size)
end
end
Neden bu düzenleyici etkisine ihtiyaç duyuyoruz. Tahminimce şöyle: başarım oranı düşük sınıflarda algoritma çok hata yapar. Çok hata demek w'ya çok terim eklemek demek (güncelleme adımında). Olay nihayet w'nun tahmininde hata yapılan örneklerin ortalamasına yakınsaması, hatta 'norm'nun büyümesi (pozitif ve negatif örnek sayıları arasında fark var bizim deneylerde) anlamına gelir. Düzenleyici etkisi ise w'nun normunu belli bir büyüklükte tutar.
for t=1...T
receive (x_t,y_t)
make a prediction f=w^T*x_t
if y_t*f update w: w = w + s_t*y_t*x_t (s_t:step size)
end
end
Bu algoritmaya 'regularizer' (düzenleyici?) katmak istersek şöyle yapmamız gerekir:
for t=1...T
receive (x_t,y_t)
make a prediction f=w^T*x_t
if y_t*f update w: w = (1-s_t)w + s_t*y_t*x_t (s_t:step size)
end
end
Neden bu düzenleyici etkisine ihtiyaç duyuyoruz. Tahminimce şöyle: başarım oranı düşük sınıflarda algoritma çok hata yapar. Çok hata demek w'ya çok terim eklemek demek (güncelleme adımında). Olay nihayet w'nun tahmininde hata yapılan örneklerin ortalamasına yakınsaması, hatta 'norm'nun büyümesi (pozitif ve negatif örnek sayıları arasında fark var bizim deneylerde) anlamına gelir. Düzenleyici etkisi ise w'nun normunu belli bir büyüklükte tutar.
çevrimiçi öğrenme (online learning)
Bir sürü test yapmaya başladım yine. Her zamanki gibi tüm yaptıklarımı 2 hafta içinde unutmak istemediğimden dolayı kısa bir özet geçmekte fayda var. Hem yaptıklarımı Türkçe özetlemek olayı gerçekten kavrayıp kavrayamadığımı anlamamı da sağlar.
Nedir bu çevrimiçi öğrenme denilen şey (bilgisayar bilimlerinde)? Tüm örnekler üzerinde sadece bir defa geçerek model oluşturmaya çalışmak diye kabaca özetlemiş olayım. sonra da olaya dalalım:
Calteh-101'le başladım ama nedense sonuçlarda bir gariplik vardı. bunda özniteliklerin çok iyi olmaması da bir etken olabilir. Dr Jin MAP tabanlı değerlendirmeden de şüphelendi. AUC-ROC deneyeceğim. Ama önce deneyler için bildiğimiz, güvendiğimiz VOC2007 verisini seçerek başlayalım. elimizde 5011 tane eğitim örneği/resmi (training sample) var: x_1,...,x_5011. Sırasıyla şu metodları deneyeceğiz:
1. toplu (batch işleme)
a. lineer SVM
b. kernel SVM (chi2 uzeklığını kullanan RBF)
2. lineer çevrimiçi
a. perceptron
b. perceptron+regularizer
3. kernel (çekirdek fonksiyon?) tabanlı çevrimiçi öğrenme
a. NORMA
Mevcut sorun (Caltech101 deneylerinin sonuçlarına göre) ne peki? Sorun şu: toplu işlemenin iyi sonuç verdiği (apr>50) sınıflarda çevrimiçi idare eder sonuç veriyor (%10 daha düşük). Ama toplu işlemenin iyi sonuç vermediği sınıflarda ise çevrimiçi sonuçları berbat, ki aslında iki yöntem arasındaki farkın bu tür sınıflarda daha az olmasını bekleriz normalde.
Nedir bu çevrimiçi öğrenme denilen şey (bilgisayar bilimlerinde)? Tüm örnekler üzerinde sadece bir defa geçerek model oluşturmaya çalışmak diye kabaca özetlemiş olayım. sonra da olaya dalalım:
Calteh-101'le başladım ama nedense sonuçlarda bir gariplik vardı. bunda özniteliklerin çok iyi olmaması da bir etken olabilir. Dr Jin MAP tabanlı değerlendirmeden de şüphelendi. AUC-ROC deneyeceğim. Ama önce deneyler için bildiğimiz, güvendiğimiz VOC2007 verisini seçerek başlayalım. elimizde 5011 tane eğitim örneği/resmi (training sample) var: x_1,...,x_5011. Sırasıyla şu metodları deneyeceğiz:
1. toplu (batch işleme)
a. lineer SVM
b. kernel SVM (chi2 uzeklığını kullanan RBF)
2. lineer çevrimiçi
a. perceptron
b. perceptron+regularizer
3. kernel (çekirdek fonksiyon?) tabanlı çevrimiçi öğrenme
a. NORMA
Mevcut sorun (Caltech101 deneylerinin sonuçlarına göre) ne peki? Sorun şu: toplu işlemenin iyi sonuç verdiği (apr>50) sınıflarda çevrimiçi idare eder sonuç veriyor (%10 daha düşük). Ama toplu işlemenin iyi sonuç vermediği sınıflarda ise çevrimiçi sonuçları berbat, ki aslında iki yöntem arasındaki farkın bu tür sınıflarda daha az olmasını bekleriz normalde.
Subscribe to:
Posts (Atom)