Neural network 0到9使用哪个激活函数
我正在尝试实现一个图像识别神经网络, 我面临一个问题 当我使用sigmoid函数时,我得到了很好的结果,但它们介于0和1之间。我需要得到0到9之间的结果 当我使用线性激活函数时,数字很早就变得很大,导致javascript中出现Neural network 0到9使用哪个激活函数,neural-network,Neural Network,我正在尝试实现一个图像识别神经网络, 我面临一个问题 当我使用sigmoid函数时,我得到了很好的结果,但它们介于0和1之间。我需要得到0到9之间的结果 当我使用线性激活函数时,数字很早就变得很大,导致javascript中出现Infinity和NaN 当我使用SoftPlus时,数字变得非常小,导致NaN。。。我应该使用什么激活函数?您必须在[0,9]范围内对输出进行规格化(假设连续输出),以便在[0,1]范围内获得规格化输出,然后只使用sigmoid激活 如果您想要从0到9(整数)的离散输出
Infinity
和NaN
当我使用SoftPlus时,数字变得非常小,导致
NaN
。。。我应该使用什么激活函数?您必须在[0,9]范围内对输出进行规格化(假设连续输出),以便在[0,1]范围内获得规格化输出,然后只使用sigmoid激活
如果您想要从0到9(整数)的离散输出,那么这是一个分类问题,您应该使用softmax激活。我知道您使用的是Javascript。我已经建立了一个javascript神经网络库,它是高度可定制的。过来看。它列出了不同的内置激活功能,但是它们很容易修改 所以逻辑函数是这样写的:
LOGISTIC : function(x, derivate) {
if (!derivate)
return 1 / (1 + Math.exp(-x));
var fx = Activation.LOGISTIC(x);
return fx * (1 - fx);
},
因此,如果您希望输出介于0和9之间,您可以创建一个定制的物流激活功能:
CUSTOM_LOGISTIC : function(x, derivate) {
if (!derivate)
return 1 / (1 + Math.exp(-x)) * 9;
var fx = Activation.CUSTOM_LOGISTIC(x);
return fx * (1 - fx);
},
并将此激活功能分配给您的输出神经元/节点。顺便说一句,输入层有252个神经元,隐藏层有10个和10个,输出层有1个