共计 1328 个字符,预计需要花费 4 分钟才能阅读完成。
这个是一个朋友面试时遇到的问题,这个问题个人觉得算是一个开放性的问题,同时需要你对深度学习有着宏观的认识,并且有相关的实践经验。
深度学习给人直观的感觉就是模型复杂,超多的参数需要去学习,如果训练的样本比较少,那么很容易过拟合。附带可以联系到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会比较差,也就是过拟合。
模型学习不光要在训练集上学习取得较好的效果,同时也要在测试集上取得不错的效果,这就是模型的泛化能力。毕竟学习到的模型还是要去使用,不然我们训练模型干嘛,自嗨?
其实这里就有一个问题,深度模型多么深才算深,并且需要多大的数据量才能取得较好的训练效果,这个暂时好像也没有什么理论性证明去说明这个问题,所以这也是需要结合自己的业务去尝试。
反向传播角度
深度学习常采用的是梯度下降。梯度下降,加上并不那么高的学习率,导致了在样本量有限的时候各个节点的参数变化有限。何况各个节点的参数已开始往往是随机的,如果运气不好+样本量有限,那么最后有不那么理想的错误率也是可想而知的
领域知识角度
学习的样本其背后可以使用很多复杂的特征去表述,深度学习模型的抽象表征能力数一数二,与传统的机器学习相比,需要人工去想很多特征,这个依赖于专家知识以及头脑风暴,对于大部分人来说实在是太难了。所以深度学习这种端到端的为什么很受欢迎,不需要动脑子。当然也是需要构造一些特征的,比如之前做广告还是需要构建不少特征输入。
扯回来,你想要学习表征样本的特征并且是高阶抽象特征,如果你样本少了,那么麻烦来了,还没学会没样本了,这个时候模型就尴尬了 。。。
延伸
还有一种学习方式是主动学习,理论上可以使用较少的样本去学习到更好的效果,这个也没去深究过,有时间可以去看看相关的理论知识。
你好…训练数据的样本量大小,和反向传播机理没有因果关系吧 ,不论样本量的多少,深度学习模型都是要通过反向传播更新权重,相应的有梯度消失/爆炸的可能性。
@仕瑞 数据量和BP机制没什么太大的关系,gradient更新还是要依赖于数据,如果你的数据量比较小一个epoch用不了多少step就跑完了,你的参数应该很难更新好