• 为了保证你在浏览本网站时有着更好的体验,建议使用类似Chrome、Firefox之类的浏览器~~
    • 如果你喜欢本站的内容何不Ctrl+D收藏一下呢,与大家一起分享各种编程知识~
    • 本网站研究机器学习、计算机视觉、模式识别~当然不局限于此,生命在于折腾,何不年轻时多折腾一下

深度学习为什么需要大数据?

Alg admin 2个月前 (09-09) 251次浏览 2个评论 扫描二维码

这个是一个朋友面试时遇到的问题,这个问题个人觉得算是一个开放性的问题,同时需要你对深度学习有着宏观的认识,并且有相关的实践经验。

深度学习给人直观的感觉就是模型复杂,超多的参数需要去学习,如果训练的样本比较少,那么很容易过拟合。附带可以联系到 bias 和 variance 的讨论,也是可以从 VC 维去理解。

模型论证角度

知乎上有一个回答,这里引用一下

对于 classification model,有这样一个结论:

上式中 N 是训练样本数量,η大于等于 0 小于等于 1,h 是 classification model 的 VC dimension。具体见 wiki:VC dimension
其中的这项:

也叫 model complexity penalty。
可以看到,test error 小于 training error 加上 model complexity penalty 的概率是 1-η。如果现在训练模型的算法能使得 training error 很小,而 model complexity penalty 又很小,就能保证 test error 也很小的概率是 1-η。所以要使得模型的 generalization 比较好,要保证 training error 和 model complexity penalty 都能比较小。

观察 model complexity penalty 项,可以看到,h 越大,model complexity penalty 就会越大。N 越大,model complexity penalty 则会越小。大致上讲,越复杂的模型有着越大的 h(VC dimension),所以为了使得模型有着好的 generalization,需要有较大的 N 来压低 model complexity penalty。 这就是为什么深度学习的模型需要大量的数据来训练,否则模型的 generalization 会比较差,也就是过拟合。

模型学习不光要在训练集上学习取得较好的效果,同时也要在测试集上取得不错的效果,这就是模型的泛化能力。毕竟学习到的模型还是要去使用,不然我们训练模型干嘛,自嗨?

其实这里就有一个问题,深度模型多么深才算深,并且需要多大的数据量才能取得较好的训练效果,这个暂时好像也没有什么理论性证明去说明这个问题,所以这也是需要结合自己的业务去尝试。

反向传播角度

深度学习常采用的是梯度下降。梯度下降,加上并不那么高的学习率,导致了在样本量有限的时候各个节点的参数变化有限。何况各个节点的参数已开始往往是随机的,如果运气不好+样本量有限,那么最后有不那么理想的错误率也是可想而知的

领域知识角度

学习的样本其背后可以使用很多复杂的特征去表述,深度学习模型的抽象表征能力数一数二,与传统的机器学习相比,需要人工去想很多特征,这个依赖于专家知识以及头脑风暴,对于大部分人来说实在是太难了。所以深度学习这种端到端的为什么很受欢迎,不需要动脑子。当然也是需要构造一些特征的,比如之前做广告还是需要构建不少特征输入。

扯回来,你想要学习表征样本的特征并且是高阶抽象特征,如果你样本少了,那么麻烦来了,还没学会没样本了,这个时候模型就尴尬了  。。。

延伸

还有一种学习方式是主动学习,理论上可以使用较少的样本去学习到更好的效果,这个也没去深究过,有时间可以去看看相关的理论知识。


Deeplearn, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明深度学习为什么需要大数据?
喜欢 (0)
admin
关于作者:
互联网行业码农一枚/业余铲屎官/数码影音爱好者/二次元

您必须 登录 才能发表评论!

(2)个小伙伴在吐槽
  1. 你好...训练数据的样本量大小,和反向传播机理没有因果关系吧 :shock: ,不论样本量的多少,深度学习模型都是要通过反向传播更新权重,相应的有梯度消失/爆炸的可能性。
    仕瑞2019-09-29 21:44
    • admin
      数据量和BP机制没什么太大的关系,gradient更新还是要依赖于数据,如果你的数据量比较小一个epoch用不了多少step就跑完了,你的参数应该很难更新好
      admin2019-10-29 11:53