matlabneural-networkconv-neural-networkmatconvnet

Is it possible to create a CNN with real output?


The output type of the trainNetwork() must be categorical(). How can I create a CNN with float/real output(s)?

I mean the following command gives the following error:

>> convnet = trainNetwork(input_datas, [0.0, 0.1, 0.2, 0.3], networkLayers, opts);
Error using trainNetwork>iAssertCategoricalResponseVector (line 269)
Y must be a vector of categorical responses.

(The error message corresponds the [0.0, 0.1, 0.2, 0.3] vector), But I need real outputs, not categories.

The networkLayers is the following:

>> networkLayers= 

5x1 Layer array with layers:
  1   ''   Image Input       1x6000x1 images with 'zerocenter' normalization
  2   ''   Convolution       10 1x100 convolutions with stride [1  1] and padding [0  0]
  3   ''   Max Pooling       1x20 max pooling with stride [10  10] and padding [0  0]
  4   ''   Fully Connected   200 fully connected layer
  5   ''   Fully Connected   1 fully connected layer

Solution

  • The answer takes two part

    1. Classification vs regression This post describe shortly that

    Regression: the output variable takes continuous values.

    Classification: the output variable takes class labels.

    So my problem was (when I ask the question) that I need a neural network for regression problems, not for classification.

    2. Matlab frameworks

    There are two base way to work with neural networks in Matlab.

    The older framework defined the all network using a "Neural Network" class. Some base network can be built easily with this way (ex using feedforwardnet or layrecnet), but building more complex networks is a hard work. More details building custom neural networks with the network class can be found here.

    The newer methodology was introduced in R2016a. An introduction can be found here. I tried to use this framework. But this framework supports regression problems only from 2017a! So This is a really new tool. But here can be found a description for using the newwer framework for regression problems.