学习笔记:Deep Learning(二)深度神经网络以及正则化
深度神经网络以及正则化前面我们介绍了简单的线性模型,但是它仍有局限性,接下来介绍非线性模型。首先介绍,偷懒的工程师最喜欢的非线性模型ReLU(Rectified Linear Units) ReLUReLU的函数形式为: 它的导数也非常简单,小于0的时候,导数为0,大于0的时候,导数为1。 用ReLU在前面的逻辑分类器的基础上构建简单的非线性模型:
2-layer的神经网络只有乘法、加法和ReLU操作,深度学习可以实现这些操作,实现的关键就是:链式法则 链式法则链式法则就是将上一层的输出作为下一层的输入,这种方法求导很方便。 例如: 在计算链式法则的倒数的时候,用到的正是反向传播方法。如图: 第一行方框是前向传播,根据输入X计算得到的预测值y。 第二行方框是后向传播,计算偏导数,数据流动方向正好相反。 梯度下降算法也是集成了链式法则来计算梯度,通过后向传播,得到参数w的更新。 正则化当数据量足够大,模型训练得很好的时候,就要防止过拟合。通常避免过拟合的方法有: 方法一:观察通过观察模型在验证集上的表现,当出现过拟合的时候停止训练模型。 方法二:Regularization采用添加正则化的方法,施加额外的限制,间接地减少自由变量的参数数量。例如,L2正则。 通过添加权重矩阵的L2范数作为正则项。对于L2求导: 方法三:Dropoutdropout是近期出现的,功能很强大的方法(hilton提出的哦)! 实现机理:从前layer到后layer的值,叫做激活值。在训练的时候,对每个样例,随机选所有激活值中的一半,把他们设为0(丢弃不用)。这样,神经网络就不会依赖任何激活值了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |