在需求预测案例中,awareness这个输入可能不是二元(binary)的,或许是一点(a little bit)、有些(somewhat)或完全(extremely),此时相比将awareness规定为0、1,不如考虑概率,认为它是一个0-1之间的数。
激活函数可以采用ReLU函数(rectified linear unit)
三个常用的激活函数
使用线性激活函数也可以看作是没有激活函数。
激活函数的选择
输出层(output layer)
输出层激活函数的选择和标签y的真实准确值有关。当y的值是0或1,即分类问题时,在输出层采用Sigmoid函数;解决回归问题,可能采用不同的激活函数。如预测股票的趋势,可能出现正数也可能出现负数,因此采用线性激活函数(linear activation function);如果y是非负的,那么可以采用ReLU函数。
隐藏层(hidden layer)
最常见的是ReLU函数。最初常用的是sigmoid函数,使ReLU函数有两个原因:一是ReLU函数更简单,更快;二是ReLU函数的左半边是平坦的(flat),只有一个部分,而Sigmoid函数在左边和右边各有一部分是平坦的。当激活函数平坦时,学习速度就会下降,因此采用ReLU作为激活函数可以让神经网络学得更快。
总结
此外,还有一些其他的激活函数,如swish、tan h、LeakyReLU等。
为什么要使用激活函数
如果神经网络的每个层都采用线性激活函数,最后的结果和线性回归是完全相同的,a[4]可以表示成wa[3]+b,相当于一个单层神经网络,无法处理复杂的非线性问题。如果输出层用sigmoid激活函数,隐藏层用线性激活函数,最后的结果和逻辑回归相同。