Практикум на ЭВМ (317)/Autoencoder

Материал из MachineLearning.

Перейти к: навигация, поиск
Это черновик задания. Не сто́ит приступать к его выполнению до официального релиза.


Содержание

Цели

  1. Познакомиться с задачей сокращения размерности данных (сжатия с потерями).
  2. Понять, какие практические проблемы возникают при обучении искусственных нейронных сетей.
  3. Усвоить принципы глубинного обучения.
  4. Закрепить навыки манипуляции с матрицами.

Бэкграунд

  • когда нужны нейросети? (большие данные, нелинейная разделяющая поверхность)
  • нужно ли искать глобальный оптимум?
  • проблемы использования нейросетей: вычислительно трудная оптимизация (сейчас есть кластеры), проблемы с инициализацией весов и воспроизводимостью (глубинное обучение),
  • автокодировщик, идея feature learning.

Данные

MNIST:

Детали задания

  • использование кросс-энтропии при обучении (бонус — 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
Личные инструменты