神经网络

梯度下降

假设我们有一个函数 J(w),如下图所示


梯度下降示意图

       其整体思想是先在函数J(w)上随机选取一个点,然后让其沿着梯度下降的方向进行移动,直到找到函数的最小值,即导数等于0的点。但这样可能会找到函数的局部最小值。如下图

       同时小心学习率\alpha 的设置,当\alpha 过大时,我们容易错过局部最小值,当\alpha 过小时,又需要较长时间才能收敛,只有当\alpha 设置的恰到好处时,他才能快速的收敛到局部最小值。但由于不知道f(x)的具体形式,我们难以将\alpha 设置的恰到好处。

小心α的设置

神经网络的结构

      神经网络由三部分组成,分别是最左边的输入层,隐藏层(实际应用中远远不止一层)和最右边的输出层。层与层之间用线连接在一起,每条连接线都有一个对应的权重值 w,除了输入层,一般来说每个神经元还有对应的偏置 b


神经网络结构图

输入层和隐藏层
           

        除了输入层的神经元,每个神经元都会有加权求和得到的输入值 z 和将 z 通过激活函数(这里采用Relu()函数)非线性转化后的输出值 a,他们之间的计算公式如下

z=\Sigma \omega x+b

f(z)=max{\{0,x\}}

relu函数的优点

1、相比起Sigmoid和tanh,ReLU在SGD中能够快速收敛。

2.Sigmoid和tanh涉及了很多很expensive的操作(比如指数),ReLU可以更加简单的实现。

3.有效缓解了梯度消失的问题。

4.在没有无监督预训练的时候也能有较好的表现。

5.提供了神经网络的稀疏表达能力

深度学习中各种激活函数的优缺点

输出层

输出层采用softmax函数

softmax函数用于多分类结构,它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解,从而来进行多分类!假设我们有一个数组,V,Vi表示V中的第i个元素,那么这个元素的softmax值就是:

S_{i}=\frac{e^i }{\sum\nolimits_{j}e^j}

更形象的如图所示:

softmax layer

损失函数采用了交叉熵损失函数

softmax函数和交叉熵损失函数

最后采用随机梯度下降来实现

总结

神经网络的优点:

 网络实质上实现了一个从输入到输出的映射功能,而数学理论已证明它具有实现任何复杂非线性映射的功能。这使得它特别适合于求解内部机制复杂的问题。

网络能通过学习带正确答案的实例集自动提取“合理的”求解规则,即具有自学习能力

网络具有一定的推广、概括能力

神经网络的缺点:

对初始权重(学习率)\alpha 非常敏感,极易收敛于局部极小

容易 过度拟合 和 过度训练

如何选择隐藏层数和神经元个数没有一个科学的指导流程,完全是拍脑袋想出来的

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容