3.2 鱼与熊掌可以兼得的深度学习-2022

1. 问题回顾

  在上节的再谈宝可梦、数码宝贝分类问题上,我们提出了机器学习的分类原理.并提出了一个矛盾点:当可选参数过多,loss会变小,但理想和现实差距会很大;当可选参数比较少,loss会变大,但理想和现实差距会减小.现在我们需要一个Loss小,可选参数也少的模型.
image

2. Why we need Hidden Layer?

2.1 Piecewise Linear

  我们可以通过一个Hidden Layer就可以制造出所有可能的Function.如下图所示,现在我们要找一个Function,用Network去产生图中的线.我们将图中的线分成几等分,然后将端点连接起来得到Piecewise Linear.从图中我们可以发现如果绿色的线段足够多,就可以让绿色的线和黑色的线越来越接近.
image
  而绿色的线可以看作常数项加上一堆蓝色的Function.
image
  Piecewise Linear可以逼近任何\(function\),所以任何function可以由Neural Network表示.那么Neural Network怎么表示Piecewise Linear呢?我们可以使用Sigmoid Function近似地表示蓝色阶梯形的线(Hard Sigmoid).
image
  如下图所示,每一个neuron都可以制造出蓝色阶梯形的线,然后把它们加起来,再加上常数项,就可以产生Piecewise Linear.
image
  所以我们只要有足够多的neuron,我们就可以产生其它任何的Function.

2.2 Hard Sigmoid → ReLU

  Hard Sigmoid Function可以由两个ReLU Function所组成,ReLU Function如下图所示.
image
  如下图所示,假设Network里面的neuron都是ReLU.只要有足够多的ReLU,把它们组合起来,就可以变成Piecewise Linear,这个Piecewise Linear可以逼近任何的Function.
image
  那么我们会说只要有一个足够宽的 Hidden Layer就可以模拟任何function,那么为什么需要deep呢?

3. Deeper is Better?

  如下图所示,这里是对语音辨识性能的研究.我们可以发现Network越深,错误率越低.当我们把Network越叠越深时,H就会越来越大,理想的Loss会越来越低,就算有足够多的资料量,理想与现实也不会差太多.
image
  深度学习不仅需要大模型,也需要大量的训练资料.如果没有大量的训练资料,就会出现overfitting.

4. Fat + Short v.s. Thin + Tall

  如下图所示,我们可以让模型横向发展,也就是把模型变胖,这样也可以制造很大的模型.现在我们让Shallow Network和Deep Network有一样的参数,看谁的表现更好?
image
  如上图所示,当参数量相同时(同一行参数量近似),Deep Network比Shallow Network的表现更好,错误率更低.

5. Why we need deep?

  看了上面实验,我们可能会提出一个疑问,为什么将Network变高会比Network变胖更有效呢?
  当表示某一个Function时,使用Deep的架构更加有效率,因为Deep使用的参数比Shallow使用的参数少.
image

5.1 Analogy – Logic Circuits

  在解释为什么要使用Deep之前,我们先举例来说明深多层会带来什么好处.
  下面是逻辑电路的例子.电路中存在一个结构为:Parity check,输入是由01组成的串,如果这个串中1出现的次数是奇数,就输出0;反之,就输出1.
image
  我们用两层\(2^d\)结构电路可以实现这个功能,但把XNOR排成Deep结构时,也可以做到同样的事,当输入的数字相同时,就输出1;反之,就输出0.
image

5.2 Analogy ─ Programming

  下面是用程序来举例说明为什么Deep更好.模块化编程的设计思想是把程序要实现的功能分模块,分别写成函数,这样就可以增加复用性,提高开发效率.
image

6. Deep Network

  如下图所示,一层结构,两个神经元,激活函数用ReLU,输出\(a_1\)后,得到x与\(a_1\)的关系.下方\(x\)\(a\)的图需要将图转\(90°\)来看.
image
  考虑将Network加深,两层结构,因为第二层的Hidden Layer与第一层的Hidden Layer结构一样,所以\(a_2\)\(a_1\)的关系跟\(a_1\)与x的关系一样.因此得到\(a_2\)与x的关系.
image
  如下图所示,三层结构,与上面情况相似,因此可以得到\(a_3\)与x的关系.三层结构就有\(2^3\)个pieces.
image
  如下图所示,通过上述结果可以得到,假如我们想要得到\(2^k\)个折线段的函数,只需要Deep Network有\(k\)层,每层有2个神经元;Shallow Network只有1层,需要\(2^k\)个神经元(每个RELU制造一个直线段,一个神经元对应一个RELU).因此,Deep Network参数量比较小,需要比较简单的模型;Shallow Network参数量比较大,需要比较复杂的模型,然而复杂的模型容易overfitting,所有需要大量的训练资料.
image

7. conclusion

  当我们需要的Function(让Loss很低)是复杂和有规律的(例如image,speech领域),Deep Network比Shallow Network表现得更好。
  比如在函数是\(y=x^2\)的情况下,Deep Network也比Shallow Network表现得更好.
image

posted @ 2023-06-17 22:57  acmloser  阅读(36)  评论(0编辑  收藏  举报