神经网络中的网络层
神经网络的预测:每一层都输入一个数字向量,并对其应用逻辑回归单元,然后计算出另一个数字向量,从一层到下一层,直到得到最终的输出层的计算结果。并可以将阈值设为0.5,得出最终的预测。
更复杂的神经网络:
这个网络有4层,第0层是输入层,1、2、3是隐藏层,4层是输出层。
a j [ l ] = g ( w ⃗ j [ l ] ⋅ a ⃗ [ l − 1 ] + b j l [ l ] ) a_{j}^{[l]}=g\left(\vec{w}_{j}^{[l]} \cdot \vec{a}^{[l-1]}+b_{j l}^{[l]}\right) aj[l]=g(wj[l]⋅a[l−1]+bjl[l])
g是激活函数(activation function),因为g输出这个激活值。激活函数就是输出激活值的函数。
sigmoid激活函数的替代方案
1.ReLU激活函数:
2.线性激活函数:
g(z)=z
如何选择激活函数
我们可以在神经网络中的不同神经元中选择不同的激活函数,但在考虑激活函数对于输出层的预测标签时,总是会有一个相当自然的选择。如果正在处理的是一个二分类问题,那么在输出层中使用sigmiod激活函数;如果正在处理回归问题,那么将会用到不同的激活函数,如线性激活函数。最后如果输出值只能取非负值,那么最自然的选择将是ReLU激活函数。
事实证明,ReLU激活函数是迄今为止神经网络中最常见的选择。其中一个原因是它的计算速度要快一些,效率高。更重要的一个原因是ReUL激活函数的图像仅在图形的左半部分中变平,而sigmoid激活函数在图形的左右两侧都变平,如果使用梯度下降来训练神经网络将会变得很慢。所以ReUL激活函数是隐藏层中最常见的激活函数。
为什么模型需要激活函数?
如果我们在神经网络中的所有节点使用线性激活函数,那么这个大型神经网络将会变得与线性回归没有什么不同。
在这种情况下,这个模型等同于逻辑回归,所以这个大型神经网络没有做任何不能用逻辑回归做的事情,这就是为什么一个常见的经验法则是不要在神经网络的隐藏层中使用线性激活函数。
多分类问题:
Softmax回归算法
softmax回归算法是逻辑回归的推广。
逻辑回归的损失函数: loss = − y log a 1 − ( 1 − y ) log ( 1 − a 1 ) \operatorname{loss}=-y \log a_{1}-(1-y) \log \left(1-a_{1}\right) loss=