Практикум на ЭВМ (317)/Autoencoder
Материал из MachineLearning.
Это черновик задания. Не сто́ит приступать к его выполнению до официального релиза. |
Содержание |
Цели
- Познакомиться с задачей сокращения размерности данных (сжатия с потерями).
- Понять, какие практические проблемы возникают при обучении искусственных нейронных сетей.
- Усвоить принципы глубинного обучения.
- Закрепить навыки манипуляции с матрицами.
Бэкграунд
- когда нужны нейросети? (большие данные, нелинейная разделяющая поверхность)
- нужно ли искать глобальный оптимум?
- проблемы использования нейросетей: вычислительно трудная оптимизация (сейчас есть кластеры), проблемы с инициализацией весов и воспроизводимостью (глубинное обучение),
- автокодировщик, идея 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