Lecture 3 -- Why Deep Structure is good?

1. 还记得之前所说的分段线性函数拟合方式吗?


我们可以将任意的曲线视为分段线性函数,只要我们在曲线上采样的点足够多,就可以做到无限逼近;

一个Neuron可以表示一种“阶梯型”曲线,因此,理论上,只要我们有足够多的Neuron,我们只需要一个Layer,我们就可以拟合任意的Function

既然一个Hidden Layer就能拟合任意的Function,那么为什么我们还需要DeepNeural Network,而不是FatNeural Network呢?

 

 

2. Why we need deep?


Frank等人的实验表明,同样的/近似的参数量,更深的网络表现更好!

我们来看一看网络加深的过程中发生了什么?(举一个简单的例子)

先以一层为例,激活函数使用ReLUx0-1变化时,a11-0-

接着,我们再以同样的方式增加一层:

同理:a1a2的关系与xa1的关系相同;

那么,xa2的关系是怎么样的?

x0-0.5时,a11-0,此时a21-0-1

x0.5-1时,a10-1,此时a21-0-1

因此,xa2的关系如上图所示。(两层网络有22条折线

同样地,我们继续增加网络深度:

三层网络有23条折线

K层网络有2K条折线!

根据之前所学习的内容,我们知道:

像这样有2K条折线的分段线性函数,我们至少需要2K个“阶梯型”曲线,

也就是说,如果我们只用一个Hidden Layer,那么这个Hidden Layer至少要有2KNeuron!也就是说网络中有2K个参数(不考虑bias);

而如果我们使用DeepNeural Network,我们需要2KNeuron!也就是说网络中有2*2*(K-1)+2+2=4K个参数(不考虑bias);

在实际的任务中,我们需要拟合的Function往往是非常复杂的,如果我们只使用一个Hidden Layer,那么模型的参数量会指数级上升;

也就是说模型的弹性很大,非常容易过拟合,此外,Function set也变大,为了使“理想”和“现实”更加接近,我们需要非常大的训练资料!

因此,这似乎与我们的认知相反,我们往往会认为更加Deep的网络架构,会需要更多的训练资料,实则不然!!!

FatShort的网络架构反而需要更大笔的训练资料才能表现更好!!!

因此,Deep Learning是一个鱼和熊掌可以兼得的方法!!!

相较于ShallowNetwork,它能使网络中的参数减少的情况下依然保持较低的Loss!!!

 

 


END
posted @ 2023-07-25 20:46  Peg_Wu  阅读(3)  评论(0编辑  收藏  举报