title: Can I use a Sigmoid activation for my output layer, even if my CNN model is doing a regression?
body: <p>Final objective: Object Midpoint calculation. </p>
  
  <p>I have a small dataset (around 120 images), which has an object (the same in all cases), and the labels are the normalized x,y coordinates of the midpoint of the object in the image (always between 0 and 1)</p>
  
  <p>e.g. x = image_005 ; y = (0.1, 0.15) for an image with the object placed near the bottom left corner</p>
  
  <p>I am trying to use a ResNet architecture but customized for my image-size (all are identical images). Since the output values are always between 0 and 1, for both coordinates, I was wondering if it is possible to use Sigmoid activation in my last layer: </p>
  
  <pre><code> X = Dense(2, activation='sigmoid', name='fc', kernel_initializer = glorot_uniform(seed=0))(X)
  </code></pre>
  
  <p>instead of a linear activation (as is advised often when you are trying to achieve a regression result)</p>
  
  <p>For the loss function, I use MSE, with 'rmsprop' optimizer and in addition to accuracy and MSE, I have written a custom metric for telling me if the predicted points are off from the labels by more than 5%</p>
  
  <pre><code>model.compile(optimizer='rmsprop', loss='mean_squared_error', metrics=['mse','acc',perc_midpoint_err])
  </code></pre>
  
  <p>I am not getting good results, after training the model on around 150 epochs (I experimented with different batch sizes too)</p>
  
  <p>Should I change the activation layer to linear? Or is there a different modification I can do to my model? Or is ResNet completely unsuitable for this task?</p>