Практикум на ЭВМ (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