首先我们想一下为什么深度学习的效果很好?
我认为最大的原因就是它可以很轻易的实现非常高复杂度的模型,而在传统上想要实现高复杂度并不是很简单的。
传统方法:
- 特征变换(其实手段也很有限,因为实用的核函数种类很少)
- 非线性模型,也决策树为代表的一些模型,adaboost,gbdt,rf等。
这些模型想要提升复杂度的话总是有一些受限,而深度学习则不存在这个问题,如果 Ein,Eout E i n , E o u t 很接近的话那我们就可以很简单的增加模型复杂度就行了,不管是加深宽度还是深度,解决了复杂度的这个问题,我们只需要构造一个可训练的合适复杂度的模型即可。
但是这里面加深深度会有一些问题是深度会导致偏导数的连乘,可能会造成梯度消失或爆炸,梯度消失会更严重一些,因为如果梯度消失的话就像等于没增加模型复杂度。
而使用残差结构后,就是为模型增加了一个shortcut,这种shortcut可以动态的调整模型的复杂度,类似于LSTM中的门结构,只不过这个实现更简单。
所以正如CNN可以自动学习filter,LSTM可以自动学习update或forget,深度+残差连接的模型就相当于可以根据任务自动调节(微调)自身复杂度的模型 a2=a