Attachment 'rbm.m'

Download

   1 % Configuration
   2 % -------------
   3 nv = 784;   % number of visible units
   4 nh = 400;   % number of hidden units
   5 mb = 100;   % size of the minibatch
   6 it = 100;   % number of iterations (WARNING: set to 10000 or higher to produce the final results)
   7 
   8 % Initialize data
   9 % ---------------
  10 data = load('mnist.mat');       % Load the dataset
  11 X = single(data.x)/255.0 > 0.5; % Preprocess the dataset and convert it into a matrix of binary values
  12 W = normrnd(0,0.001,[nv,nh]);   % Weight matrix
  13 a = zeros(1,nv);                % Bias vector for visible units
  14 b = zeros(1,nh);                % Bias vector for hidden units
  15 
  16 % Algorithm
  17 % ---------
  18 for i=1:it,
  19 	
  20 	% Take a minibatch from the dataset
  21 	P = ceil(unifrnd(0,10000,[mb,1]));
  22 	v = X(P(:),:);
  23 	
  24 	% Perform three steps of Gibbs sampling
  25 	h = % TO COMPLETE
  26 	V = % TO COMPLETE
  27 	H = % TO COMPLETE
  28 	
  29 	% Compute the directions of parameter updates
  30 	dW = % TO COMPLETE
  31 	da = % TO COMPLETE
  32 	db = % TO COMPLETE
  33 	
  34 	% Update the parameters
  35 	W = W + 0.001 * dW;
  36 	b = b + 0.001 * db;
  37 	a = a + 0.001 * da;
  38 	
  39 	% Print iterations and some information on the parameters of the RBM and the reconstruction error
  40 	sprintf('i=%5d   std(W)=%.3f   mean(a)=%.3f   mean(b)=%.3f   e=%.3f\n',i,std(W(:)),mean(a(:)),mean(b(:)),mean(mean(abs(v-V))))
  41 end
  42 
  43 % Display the weights and the reconstructed digits
  44 % ------------------------------------------------
  45 wdisp = reshape(permute(reshape(W,[28,28,20,20]),[2,4,1,3]),[28*20,28*20]); % Create a human-readable view of matrix W
  46 wdisp = wdisp - min(wdisp(:));
  47 wdisp = wdisp / max(wdisp(:));
  48 imwrite(wdisp,'w.png')
  49 
  50 xdisp = reshape(permute(reshape(V,[10,10,28,28]),[4,2,3,1]),[28*10,28*10]);
  51 xdisp = xdisp - min(xdisp(:));
  52 xdisp = xdisp / max(xdisp(:));
  53 imwrite(xdisp,'x.png')

Attached Files

To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.
  • [get | view] (2011-06-22 07:45:04, 2873.9 KB) [[attachment:bio_intro.pdf]]
  • [get | view] (2011-05-02 16:51:13, 1341.1 KB) [[attachment:buchner_chap2007.pdf]]
  • [get | view] (2011-04-19 12:05:37, 3719.0 KB) [[attachment:cca_lecture.pdf]]
  • [get | view] (2011-07-20 11:25:53, 1778.9 KB) [[attachment:chemo_lecture.pdf]]
  • [get | view] (2011-05-16 22:58:50, 723.1 KB) [[attachment:deep_lecture.pdf]]
  • [get | view] (2011-04-11 15:08:58, 95.6 KB) [[attachment:full_sheet01.pdf]]
  • [get | view] (2011-04-19 11:33:46, 130.0 KB) [[attachment:full_sheet02.pdf]]
  • [get | view] (2011-05-02 16:53:54, 123.4 KB) [[attachment:full_sheet03.pdf]]
  • [get | view] (2011-05-10 10:03:36, 112.2 KB) [[attachment:full_sheet04.pdf]]
  • [get | view] (2011-05-17 09:43:04, 34.8 KB) [[attachment:full_sheet05.pdf]]
  • [get | view] (2011-05-23 12:18:47, 95.7 KB) [[attachment:full_sheet06.pdf]]
  • [get | view] (2011-05-30 13:35:32, 98.3 KB) [[attachment:full_sheet07.pdf]]
  • [get | view] (2011-06-07 15:23:13, 125.3 KB) [[attachment:full_sheet08.pdf]]
  • [get | view] (2011-06-21 08:43:34, 164.4 KB) [[attachment:full_sheet09.pdf]]
  • [get | view] (2011-07-05 09:39:18, 100.4 KB) [[attachment:full_sheet10.pdf]]
  • [get | view] (2011-05-31 20:33:20, 2656.3 KB) [[attachment:ids_lect.pdf]]
  • [get | view] (2011-05-24 15:25:30, 2121.4 KB) [[attachment:kern_struct.pdf]]
  • [get | view] (2011-06-14 10:50:39, 1169.4 KB) [[attachment:mkl_intro.pdf]]
  • [get | view] (2011-05-04 09:54:42, 512.3 KB) [[attachment:ml2_bss.pdf]]
  • [get | view] (2011-05-17 09:43:15, 7656.4 KB) [[attachment:mnist.mat]]
  • [get | view] (2011-06-07 18:29:45, 192.5 KB) [[attachment:opt_intro.pdf]]
  • [get | view] (2011-05-17 09:43:21, 1.7 KB) [[attachment:rbm.m]]
  • [get | view] (2011-05-02 16:54:43, 0.7 KB) [[attachment:sfft.m]]
  • [get | view] (2011-05-30 13:37:07, 4.3 KB) [[attachment:sheet07.m]]
  • [get | view] (2011-06-21 08:43:43, 1.1 KB) [[attachment:sheet09.m]]
  • [get | view] (2011-05-17 09:43:25, 0.1 KB) [[attachment:sigmoid.m]]
  • [get | view] (2011-06-21 08:43:50, 129.6 KB) [[attachment:splice-test-data.txt]]
  • [get | view] (2011-06-21 08:43:55, 5.4 KB) [[attachment:splice-test-label.txt]]
  • [get | view] (2011-06-21 08:44:00, 59.6 KB) [[attachment:splice-train-data.txt]]
  • [get | view] (2011-06-21 08:44:05, 2.5 KB) [[attachment:splice-train-label.txt]]
  • [get | view] (2011-04-18 07:30:47, 1515.8 KB) [[attachment:ssa_data.mat]]
  • [get | view] (2011-04-18 07:28:13, 585.7 KB) [[attachment:ssa_lecture.pdf]]
  • [get | view] (2011-04-18 07:30:20, 7.4 KB) [[attachment:ssa_simple.m]]
  • [get | view] (2011-07-05 11:05:27, 1202.4 KB) [[attachment:structured_lecture.pdf]]
  • [get | view] (2011-05-30 13:36:38, 1217.5 KB) [[attachment:stud-data.mat.gz]]
  • [get | view] (2011-04-18 07:29:43, 1.0 KB) [[attachment:tkcca_example.m]]
  • [get | view] (2011-04-18 07:29:54, 4.1 KB) [[attachment:tkcca_simple.m]]
  • [get | view] (2011-04-18 07:30:07, 150.9 KB) [[attachment:tkcca_toy_data.mat]]
  • [get | view] (2011-05-02 16:51:28, 4.5 KB) [[attachment:umfbss.m]]
  • [get | view] (2011-05-02 16:03:05, 531.3 KB) [[attachment:x1.wav]]
  • [get | view] (2011-05-02 16:03:12, 531.3 KB) [[attachment:x2.wav]]
 All files | Selected Files: delete move to page copy to page

You are not allowed to attach a file to this page.