• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

《MATLAB Deep Learning》Ch4 & Ch5 学习笔记

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Ch4 - Neural Network and Classification

Binary Classification

二分类问题只需要一个输出层结点,因为我们只需指定一个阈值 threshold 就可以把结果分为两类。

当我们使用 Sigmoid **函数 + 交叉熵损失函数时,输出层误差有着十分简洁的形式。详细推导可以参考 为什么sigmoid**函数,使用交叉熵损失函数更好

Multiclass Classification

在多分类问题中,我们通常使输出层的结点数目与分类数目相一致。

一个有效的策略是使用 one-hot 编码,这时每一个输出层结点都被映射到类向量的其中一个元素。

我们引入 Softmax 函数作为**函数,它不仅考虑了输入数据的加权和,也考虑到了其他输出结点的值。也就是说,对比 Sigmoid 函数,Softmax 函数考虑到了输出结点之间的相对量级(relative magnitudes)。

Softmax **函数 + 交叉熵损失函数的误差推导可以参考 简单易懂的softmax交叉熵损失函数求导。注意这里的误差计算虽然看起来跟前面的 Sigmoid + 交叉熵 一样,但这里的 delta 和 e 是向量(之前的是标量),另外这样的简洁形式其实是 one-hot 编码带来的。

Ch5 - Deep Learning

在使用后向传播算法时,添加额外的隐藏层反而常常导致较差的表现,深度学习为我们提供了解决方案。实际上,深度学习并没有任何关键技术上的革新,它带来的是一系列细微的技术改良(technical improvements)的集合。

更深的网络反而表现更差的原因是网络没有得到很好地训练,后向传播算法在训练过程中存在着以下三个问题:Vanishing gradient, Over-fitting, Computational load.

解决梯度弥散/消失(Vanishing gradient )的一项代表性技术是使用 Rectified Linear Unit (ReLU) **函数。

Sigmoid **函数将输出值限定在一定的范围内,而 Relu **函数没有此限制。另外,x > 0 时,导数为 1,可见此时它能将误差无衰减地向前传递。

解决过拟合问题的一项代表性技术是 Dropout(随机失活),此外,添加正则项和使用更大的数据集也可有效避免模型过拟合。

最后,由于高性能硬件产品(GPU)的发展和其他一些算法(Batch normalization,批归一化)的发现,深度学习的计算负荷(computational load)也被减轻到了一个可观的水平。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi使用ADOconnection连接mysql数据库时的Connectionstring问题发布时间:2022-07-18
下一篇:
delphi中application.processmessages的作用发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap