DBNtry.txt 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. writeInfoLine: "Training a DBN with a three-peaked distribution"
  2. stopwatch
  3. structure# = { 30, 50, 20 }
  4. numberOfVowels = 3
  5. mean# = { 8, 16, 23 }
  6. sigma = 1.8
  7. numberOfPatterns = 10000
  8. learningRate = 0.001
  9. my.DeepBeliefNetwork = Create DeepBeliefNetwork: "my", structure#, 0
  10. my.PatternList = Create PatternList: "patterns", structure# [1], numberOfPatterns
  11. formant# = zero# (numberOfPatterns)
  12. formant# ~ randomGauss (mean# [randomInteger (1, numberOfVowels)], sigma)
  13. Formula: ~ 5 * exp (-0.5/sigma^2 * (col - formant# [row]) ^ 2) - 0.5
  14. my.DeepBeliefNetwork & my.PatternList: Learn by layer: learningRate
  15. appendInfoLine: "Trained in ", stopwatch, " seconds"
  16. for ilayer to size (structure#) - 1
  17. weight## = my.DeepBeliefNetwork: Get weights: ilayer
  18. appendInfoLine: weight##, newline$
  19. endfor
  20. numberOfTestPatterns = 15
  21. Erase all
  22. Font size: 10
  23. for itest to numberOfTestPatterns
  24. appendInfoLine: "Test pattern #", itest, ":"
  25. patternNumber = randomInteger (1, numberOfPatterns)
  26. #
  27. # Draw input.
  28. #
  29. Select outer viewport: 0, 3, (itest - 1) * 0.6, (itest - 1) * 0.6 + 1.0
  30. my.PatternList: Draw: patternNumber, 0.0, 0.0, -5.0, 5.0, "no"
  31. #
  32. # Spread up and down.
  33. #
  34. my.DeepBeliefNetwork & my.PatternList: Apply to input: patternNumber
  35. my.DeepBeliefNetwork: Spread up: "deterministic"
  36. my.DeepBeliefNetwork: Spread down: "deterministic"
  37. #
  38. # Draw reflection.
  39. #
  40. Select outer viewport: 3, 6, (itest - 1) * 0.6, (itest - 1) * 0.6 + 1.0
  41. reflection.Matrix = Extract input activities
  42. stdev = reflection.Matrix: Get standard deviation: 0, 0, 0, 0
  43. appendInfoLine: " Energy in reflection: ", stdev
  44. reflection.Matrix: Draw rows: 0, 0, 0, 0, -5, 5
  45. reflection.Matrix: Remove
  46. endfor
  47. my.PatternList & my.DeepBeliefNetwork: Remove