零基础实战机器学习
黄佳
新加坡埃森哲公司资深顾问,《零基础学机器学习》作者
新⼈⾸单¥59
867 人已学习
课程目录
已更新 15 讲 / 共 23 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词|开发者为什么要从实战出发学机器学习?
免费
准备篇 (4讲)
01|打好基础:到底什么是机器学习?
02|工具准备:安装并使用Jupyter Notebook
03|实战5步(上):怎么定义问题和预处理数据?
04| 实战5步(下):怎么建立估计10万+软文点击率的模型?
业务场景闯关篇 (10讲)
05 | 数据探索:怎样从数据中找到用户的RFM值?
06 | 聚类分析:如何用RFM给电商用户做价值分组画像?
07|回归分析:怎样用模型预测用户的生命周期价值?
08 | 模型优化(上):怎么用特征工程提高模型效率?
09|模型优化(中):防止过拟合,模型也不能太精细
10|模型优化(下):交叉验证,同时寻找最优的参数
11|深度学习(上):用CNN带你认识深度学习
12|深度学习(中):如何用RNN预测激活率走势?
13|深度学习(下):3招提升神经网络预测准确率
14|留存分析:哪些因素会影响用户的留存率?
零基础实战机器学习
15
15
1.0x
00:00/00:00
登录|注册

13|深度学习(下):3招提升神经网络预测准确率

你好,我是黄佳。欢迎来到零基础实战机器学习。
在前面两讲中,我们创建了 CNN 和 RNN 两个常用的深度神经网络模型。今天,我们来专门谈一谈神经网络的优化,让前两讲中所创建的网络模型拥有更好的性能。
关于性能优化,我们不是第一次讲了,在第 8 讲第 10 讲中,我们对应普通的机器学习模型,讲了三个阶段的性能调优:
在数据处理阶段,我们介绍了特征工程对于模型性能的重要性;
在模型训练阶段,我们介绍了过拟合的危害以及如何避免过拟合;
在测试评估阶段,我们介绍了交叉验证以及参数调优的方法。
其实,深度学习的性能优化和其它普通的机器学习模型类似,我们也可以从数据处理、网络模型本身,以及如何对神经网络进行参数调优这三个主要方面去考虑。

数据方面的考量:图像数据增广

我们已经知道,要提高模型的性能,数据方面的考量就是提升数据的“质”和“量”。那么,提升“质”,就是做好特征工程。不过你知道,神经网络对特征工程的要求是比较低的,因为神经网络本身就可以完成特征提取。
那怎么增加数据的“量”呢?我们都清楚,有标签的数据搜集起来真是太困难了,尤其是带标签的图片数据。那有没有什么方法能够在只有这么多图片的情况下,来提升我们第 11 讲中那个鲜花图片分类网络的性能呢?
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
该试读文章来自付费专栏《零基础实战机器学习》,如需阅读全部文章,
请订阅文章所属专栏新⼈⾸单¥59
立即订阅
登录 后留言

精选留言(2)

  • iff
    老师,您好,LSTM预测某一数据时(时间序列数据),发现训练集和测试集中预测值和真实值之间均存在延迟现象,请问一下,这是什么原因,怎么解决?
    2021-09-28
  • 在路上
    佳哥好,听完这讲我有两个问题。第一,从“神经网络中的局部最低点”这张图来看,很容易看出哪个点是全局最低点,在任意时刻模型的数据都是确定的,也就是这张图代表的函数是确定的,为什么神经网络的参数不能直接根据函数找到全局最低点呢?第二,如果我在事后都不能解释Adam优化器为什么比RMSProp更优,那指不定那天我又要调整参数了,这个过程听着怎么一点都不智能。

    作者回复: 嗯,神经网络存在着解释性比较差这个问题。这也是公认的,它就是一个黑盒子,解决了问题,但是很难说清如何解决的。而全局最低点,在整个网络中非常难找,因为网络的拟合空间远远比那张图显示处理的复杂的多得多,而且多维空间是根本展示不出来的。Andrew Ng在它的斯坦福机器学习课里面说:找到一个不错的局部最低点就挺好的了。因此不必纠结于全局最低点。😝😝

    也因此,“迁移学习”的概念在神经网络这儿有很多的应用,也就是,使用大量的已经调好了的,参数都定下来了的大型神经网络来解决工业级别的问题。

    比如:
    牛津 VGG 模型(http://www.robots.ox.ac.uk/~vgg/research/very_deep/)
    谷歌 inception 模型(https://github.com/tensorflow/models/tree/master/inception)
    微软 ResNet 模型(https://github.com/KaimingHe/deep-residual-networks)
    谷歌 Word2vec 模型(https://code.google.com/archive/p/word2vec/)

    然后,我们直接就在这些大型网络模型的基础上,进行很少的微调即可。这种预训练好了的大型网络的迁移,在Keras中也很容易实现的。(可以参考《Python深度学习》一书)

    我们这里,就只是简单的介绍有这些参数可调,也就只是这样,那么进一步利用深度网络解决大型问题。那就需要用到这些预训练好了的网络。

    当然,也有神经网络自动调参的方法,可以搜索AutoML(自动化机器学习)的一些文章。这些,都需要时间和精力进一步研究。

    2021-09-27
    1
收起评论
2
返回
顶部