Heaviside did not work for me.. i finally normalized my data between 1 and -1 and then applied tansig. Thanks
Matlab activation function for values 0 and 1
-
30-07-2022 - |
Question
I am working on an artificial neural network. I want to implement it in Matlab, but I am unable to find a proper activation function. I need a step function because my output is either 0 or 1. is there any function in Matlab that can be used for this kind of output. Also, I want the reverse function of the same activation function. logsig
and tansig
are not working for me.
Solution 2
OTHER TIPS
Both tansig
and logsig
are part of the Neural Network Toolbox as the online documentation makes clear. So, if which tansig
returns nothing, then you don't have that toolbox (or at least don't have a version current enough to contain that function). However, both of these functions are extremely simple, and the documentation even gives you the formulae under the "Algorithms" section: tansig
, logsig
. Both can be implemented as a one line anonymous function if you wanted.
If your question is actually about how to produce a Heaviside step function, Matlab has heaviside
(it's part of the Symbolic Math toolbox but a pure numeric version is included – type edit heaviside
to see the simple code). However, note that using such a non-differentiable function is problematic for some types of neural networks as this StackOverflow question and answer addresses.