Exercise:Learning color features with Sparse Autoencoders

From Ufldl

Jump to: navigation, search
(Created page with "== Learning color features with Sparse Autoencoders == In this exercise, you will implement a linear decoder (with the sparse autoencoder) to learn feature...")
(Learning color features with Sparse Autoencoders)
Line 1: Line 1:
== Learning color features with Sparse Autoencoders ==
== Learning color features with Sparse Autoencoders ==
-
In this exercise, you will implement a [[Linear Decoders | linear decoder]] (with the sparse autoencoder) to learn features on color images from the STL10 dataset. These features will be used later in convolution and pooling for classifying STL10 images.
+
In this exercise, you will implement a [[Linear Decoders | linear decoder]] (with the sparse autoencoder) to learn features on color images from the STL10 dataset. These features will be used in an later [[Exercise:Convolution and Pooling | exercise on convolution and pooling]] for classifying STL10 images.
-
For this exercise, you will need to copy and modify '''<tt>sparseAutoencoderCost.m</tt>''' from your earlier exercise. You will also need to modify '''<tt>cnnConvolve.m</tt>''' and '''<tt>cnnPool.m</tt>''' from this exercise.
+
For this exercise, you will need to copy and modify '''<tt>sparseAutoencoderCost.m</tt>''' from your earlier exercise.
=== Dependencies ===
=== Dependencies ===
Line 13: Line 13:
* <tt>sparseAutoencoderCost.m</tt> (and related functions) from [[Exercise:Sparse Autoencoder]]
* <tt>sparseAutoencoderCost.m</tt> (and related functions) from [[Exercise:Sparse Autoencoder]]
-
''If you have not completed the exercises listed above, we strongly suggest you complete them first.''
+
''If you have not completed the exercise listed above, we strongly suggest you complete it first.''
-
 
+
=== Learning from color image patches ===
=== Learning from color image patches ===
-
In all the exercise so far, you have been working only with grayscale images. In this exercise, you will get the opportunity to work with RGB color images for the first time.  
+
In all the exercises so far, you have been working only with grayscale images. In this exercise, you will get the opportunity to work with RGB color images for the first time.  
Conveniently, the fact that an image has three color channels (RGB), rather than a single gray channel, presents little difficulty for the sparse autoencoder. You can just combine the intensities from all the color channels for the pixels into one long vector, as if you were working with a grayscale image with 3x the number of pixels as the original image.  
Conveniently, the fact that an image has three color channels (RGB), rather than a single gray channel, presents little difficulty for the sparse autoencoder. You can just combine the intensities from all the color channels for the pixels into one long vector, as if you were working with a grayscale image with 3x the number of pixels as the original image.  
Line 34: Line 33:
You will now use your sparse autoencoder to learn features on a set of 100 000 small 8x8 patches sampled from the larger 96x96 STL10 images (The STL10 dataset comprises 5000 test and 8000 train 96x96 labelled color images belonging to one of ten classes: airplane, bird, car, cat, deer, dog, horse, monkey, ship, truck).  
You will now use your sparse autoencoder to learn features on a set of 100 000 small 8x8 patches sampled from the larger 96x96 STL10 images (The STL10 dataset comprises 5000 test and 8000 train 96x96 labelled color images belonging to one of ten classes: airplane, bird, car, cat, deer, dog, horse, monkey, ship, truck).  
-
Code has been provided to load patches sampled from the images. Note that you will need to apply the exact same preprocessing steps to the convolved images as you do to the patches used for training the autoencoder (you have to subtract the same mean image and use the exact same whitening matrix), so using a fixed set of patches means that you can recompute these matrices if necessary. Code to load the sampled patches has already been provided, so no additional changes are required on your part.
+
The code provided in this step trains your sparse autoencoder for 400 iterations with the default parameters initialized in step 0. This should take around 45 minutes. Your sparse autoencoder should learn features which when visualized, look like edges and opponent colors, as in the figure below.  
-
 
+
-
In this step, you will train a sparse autoencoder (with linear decoder) on the sampled patches. The code provided trains your sparse autoencoder for 400 iterations with the default parameters initialized in step 0. This should take around 30 minutes. Your sparse autoencoder should learn features which when visualized, look like edges and opponent colors, as in the figure below.  
+
-
[[File:cnn_Features_Good.png|480px]]
+
[[File:CNN_Features_Good.png|480px]]
If your parameters are improperly tuned (the default parameters should work), or if your implementation of the autoencoder is buggy, you might get one of the following images instead:
If your parameters are improperly tuned (the default parameters should work), or if your implementation of the autoencoder is buggy, you might get one of the following images instead:

Revision as of 05:19, 22 May 2011

Personal tools