Searching for tutorials and software about Deep Learning and Neural Nets? Be sure to look at my Resource Page!
Looking for Octave? Go to my Easy Octave on Mac page!

Wednesday, April 8, 2015

Setting up for MNIST - notes on progress.

This is a work note. Recall from yesterday:
Reproducing Andrea's work seemed a good way to flip myself back into programming mode. This means getting FANN to compile, getting to know and testing FANN,  getting Andrea's code to compile, getting the samples, setting up a numerical experiment scheme and performing the experiments.
Actually this boils down to a set of steps,

  1.  getting FANN to compile,
  2.  getting to know and testing FANN,
  3.  getting Andrea's code to compile,
  4.  getting the samples,
  5.  setting up a numerical experiment scheme and performing the experiments.

And after two night's work, I am pausing here to overview my status, and put down some notes.

getting FANN to compile. As noted in my last post, this is done. CMAKE is installed by Brew. I think I made a mistake by running the FANN install script rather than by installing FANN from Brew, and ended up with root ownership of /usr/local/lib and /usr/local/include which I had to fix with "sudo chown -R $(whoami) /usr/local/" Note that Brew is *not* usually run as root.

getting to know and testing FANN. I did the xor example. The standard way FANN is used is by running a trainer which creates (or loads) a net, loads in the training ensemble from a data file, trains it and dumps out the net topology and weights in a .net file. You then use a run program to execute the net and compile statistics etc. on your validation data.

getting Andrea's code to compile. This was a bit of a pain because I needed to figure out that he uses the DevIL image library in one of his programs, and I had to let brew install gcc to compile DevIL. Brew was unhappy with me until I fixed the permissions which the FANN install had broken -see above. GCC took about an hour to compile, and turned my Mac into a hair drier.  I now have a DevIL and everything else, and Andrea's c++ programs pass compile, and Andrea's MNIST ==> FANN file    converter runs.

getting the samples. Yes, I got them. Thank you Yann! Yann's MNIST page lists a bunch of people who've attacked this problem, and gives their classification loss. What is not clear is how representative the data really is of real world digit recognition, or whether it really is a good test set. It seems the training data and validation data are not by the same writers (good!) but that doesn't mean either set is really representative either of each other or what else is out there. Also, I think these are preprocessed data, my gut feeling is that some information that is relevant may have been destroyed by the preprocessing.

setting up a numerical experiment scheme and performing the experiments. Yes, that's where I am headed next.


No comments:

Post a Comment

Hey, let me know what you think of my blog, and what material I should add!