MATLAB: Patternnet for classification to 5bit targets

5bit codingDeep Learning Toolboxpatternnet

I have 30 classifications in my target.
Everything that I've searched regarding patternnet uses 1-of-C or 1-of(C-1) representations only.
I MUST use 5 output neurons only: I'm using 5 bit-representation for each category.
Can I do this using patternnet? If yes, how? If no, what is the best network to use here in Neural Network toolbox, and how? Will a simple feedforwardnet suffice?
Thanks in advance!

Best Answer

I remember Warren Sarle, the maintainer of the CANN FAQ lecturing and/or demonstrating the folly of using regular binary coding instead of 1-of(c or c-1). I thought it was in the FAQ. However, if you didn't find it, it must have been in a CANN post. Sorry for the missdirect.
As far as your training problem, it should be straightforward: just replace the column of eye(30) with the corresponding 5-dimensional 2 bit binary code.
You just need to find the functions that convert the elements of class = [1:32] to the corresponding columns of the 2-bit binary matrix with size(target) = [ 5 32 ]. ... and vice versa.
It sounds like your real problem stems from the post training algorithms of patternnet assuming the 1-of-c coding.
In that case you probably have to write your own or modify the source code of the MATLAB routines.
Modifying the nnet functions used to be very easy. Now it is rather complicated because of voluminous overhead. However, you could wade thru all of the overhead to find the important statements to modify. Then either keep the overhead or use a stripped down version.
Also, check the source code of patternnet to see what changes are made before and after it's call to feedforwardnet. You may just want to use feedforwardnet with defaults overwritten.
Hope this helps.
Greg