Практикум на ЭВМ (317)/Autoencoder
Материал из MachineLearning.
(Различия между версиями)
												
			
			 (→Мои результаты)  | 
				|||
| Строка 49: | Строка 49: | ||
* MNIST, all-dig, pretrain-tiedw-stNorm(0,0.3):  | * MNIST, all-dig, pretrain-tiedw-stNorm(0,0.3):  | ||
** level1: momentum=0.97, nbatches=1500, step=(k+1)(-1/4), MSE=1.9, 220s.  | ** level1: momentum=0.97, nbatches=1500, step=(k+1)(-1/4), MSE=1.9, 220s.  | ||
| + | |||
| + | * MNIST, all-dig, pretrain-tiedw-stNorm(0,0.3), targ-MSE, arch-sigm+1e-4(except-linear,last):  // 630 s  | ||
| + | ** level1: 3ep, momentum=0.97, nbatches=1500, step=(k+1)(-1/4), MSE=3.2.  | ||
| + | ** level2: 3ep, momentum=0.97, nbatches=1500, step=(k+1)(-1/4), MSE=7.3.  | ||
| + | ** level3: 3ep, momentum=0.97, nbatches=1500, step=(k+1)(-1/4), MSE=4.1.  | ||
| + | ** level4: 3ep, momentum=0.97, nbatches=1500, step=(k+1)(-1/4), MSE=6.0.  | ||
| + | ** backprop: 3ep, momentum=0.97, nbatches=1500, step=(k+1)(-1/4), MSE=8.0.  // 630 s  | ||
| + | |||
| + | * MNIST, all-dig, pretrain-tiedw-stNorm(0,0.3), targ-Xentropy, arch-sigm):  // 730 s  | ||
| + | ** level1: 3ep, momentum=0.97, nbatches=1500, step=(k+1)(-1/4), MSE=1.7.  | ||
| + | ** level2: 3ep, momentum=0.97, nbatches=1500, step=(k+1)(-1/4), MSE=5.3.  | ||
| + | ** level3: 3ep, momentum=0.97, nbatches=1500, step=(k+1)(-1/4), MSE=2.5.  | ||
| + | ** level4: 10ep, momentum=0.97, nbatches=1500, step=0.01*(k+1)(-1/4), MSE=7.4.  | ||
| + | ** backprop: 3ep, momentum=0.97, nbatches=1500, step=0.1*(k+1)(-1/4), MSE=8.7.  // 645 s  | ||
Версия 13:49, 21 февраля 2013
|   | Это черновик задания. Не сто́ит приступать к его выполнению до официального релиза. | 
Содержание | 
Цели
- Познакомиться с задачей сокращения размерности данных (сжатия с потерями).
 - Понять, какие практические проблемы возникают при обучении искусственных нейронных сетей.
 - Усвоить принципы глубинного обучения.
 - Закрепить навыки манипуляции с матрицами.
 
Бэкграунд
- когда нужны нейросети? (большие данные, нелинейная разделяющая поверхность)
 - нужно ли искать глобальный оптимум?
 - проблемы использования нейросетей: вычислительно трудная оптимизация (сейчас есть кластеры), проблемы с инициализацией весов и воспроизводимостью (глубинное обучение),
 - автокодировщик, идея feature learning.
 
Данные
MNIST:
- качаем отсюда: http://yann.lecun.com/exdb/mnist/
 - конвертер от Салахутдинова: http://www.sciencemag.org/content/suppl/2006/08/04/313.5786.504.DC1/1127647code_tar.zip (или дать уже сконвертированные)
 -  отображение: 
imshow(reshape(digitdata(1,:), 28,28)')
(транспонирование, т.к. записаны по строкам) 
Детали задания
- использование кросс-энтропии при обучении (бонус — MSE)
 - регуляризация — L2 (weight decay) и gaussian noise
 
Мои результаты
- MNIST, only 0, PCA-30: MSE=9.0
 - MNIST, only 01, PCA-30: MSE=7.3
 - MNIST, all-dig, PCA-30: MSE=14.2
 - MNIST, only 0, PCA-18: MSE=13.0
 - MNIST, only 1, PCA-18: MSE=3.7
 - MNIST, only 01, PCA-18: MSE=10.6
 - MNIST, all-dig, PCA-18: MSE=20.0
 
- MNIST, only 0, autoenc-st0b5e10: MSE=50.0 (averages everything) // 5 batches, 10 epochs (default: targ-CE, opt-CG)
 - MNIST, only 0, autoenc-stNorm(0,0.3)b5e1000: MSE=12.6 (continues optimizing)
 - MNIST, only 0, autoenc-stNorm(0,0.3)Tie-b5e400: MSE=16.0, 2-3 hours // seems no difference from the previous case
 - MNIST, only 0, autoenc-stNorm(0,0.3[*2,4])Tie-b5e400: MSE=23.4
 - MNIST, only 0, autoenc-stNorm(0,0.2)-b5e100,targ-MSE: MSE=55.0, (continues optimizing, diverse) // slower, but okay
 - could not make stochastic gradient find non-trivial optimum
 - MNIST, only 0, autoenc-LeCunInitTanh(Last)Mean-b5e300,targCE: MSE=131.8
 - MNIST, only 0, autoenc-stLeCunInitx10-b5e300: MSE=28.7
 
- MNIST, only 0, pretrain-tiedw-1-stNorm(0,0.3)-b6e50: MSE=2.7, 20 min
 - MNIST, all-dig, pretrain-tiedw-stNorm(0,0.3)-b6: MSE1(e200): 0.86, MSE2(e500): 3.1, MSE3(e200): 3.3, MSE4(e200): 9.7. Backprop, 300it: MSE=6.5
 - MNIST, only 0, pretrain-tiedw-stNorm(0,0.3)-stoch-b150: MSE1(e200): 1.6, MSE2(e500): 4.2, MSE3(e200): 2.3, MSE4(e200): 4.7. Backprop, 500it: MSE=3.0 // 2 hours
 
-  MNIST, all-dig, pretrain-tiedw-stNorm(0,0.3):
- level1: momentum=0.97, nbatches=1500, step=(k+1)(-1/4), MSE=1.9, 220s.
 
 
-  MNIST, all-dig, pretrain-tiedw-stNorm(0,0.3), targ-MSE, arch-sigm+1e-4(except-linear,last):  // 630 s
- level1: 3ep, momentum=0.97, nbatches=1500, step=(k+1)(-1/4), MSE=3.2.
 - level2: 3ep, momentum=0.97, nbatches=1500, step=(k+1)(-1/4), MSE=7.3.
 - level3: 3ep, momentum=0.97, nbatches=1500, step=(k+1)(-1/4), MSE=4.1.
 - level4: 3ep, momentum=0.97, nbatches=1500, step=(k+1)(-1/4), MSE=6.0.
 - backprop: 3ep, momentum=0.97, nbatches=1500, step=(k+1)(-1/4), MSE=8.0. // 630 s
 
 
-  MNIST, all-dig, pretrain-tiedw-stNorm(0,0.3), targ-Xentropy, arch-sigm):  // 730 s
- level1: 3ep, momentum=0.97, nbatches=1500, step=(k+1)(-1/4), MSE=1.7.
 - level2: 3ep, momentum=0.97, nbatches=1500, step=(k+1)(-1/4), MSE=5.3.
 - level3: 3ep, momentum=0.97, nbatches=1500, step=(k+1)(-1/4), MSE=2.5.
 - level4: 10ep, momentum=0.97, nbatches=1500, step=0.01*(k+1)(-1/4), MSE=7.4.
 - backprop: 3ep, momentum=0.97, nbatches=1500, step=0.1*(k+1)(-1/4), MSE=8.7. // 645 s
 
 

