2.What can a network represent笔记-CMU《深度学习导论》

2. Neural Networks: What can a network represent

定义深度

image-20200802104702508

隐含层大于1都为深度神经网络

image-20200802104740040

该图深度为2

MLPs 可以作为通用布尔函数

image-20200802105006696

作为 通用的 与门

image-20200802105033012

作为 通用的 或门

image-20200802105132208

对于任意的布尔函数,都可以变成真值表,然后通过DNF,通过MLP实现(一个隐含层)

image-20200802123443704

对于卡诺图不能化简得,只用一层隐含层需要多少神经元

\(n\) 个变量需要 \(2^{n-1}\) 个神经元,指数级别得数量

若使用深度

image-20200802123743467

image-20200802123759881

发现随着层数越多,使用得感知器变得很少

(注:如果一层的数量少于最少需要的数量,则会导致出现指数的个数)

总结:MLP可以模拟任意的布尔函数,但是需要足够的宽度或者深度,最佳的宽度和深度取决于布尔函数的复杂度,有更多的层,可以大幅度降低网络的大小

MLPs作为通用分类器

image-20200802131007745

直接已经学过,可以通过分割成多个凸函数,分别构造决策边界,来实现。

image-20200802131058934

现在想要使用一个隐含层来实现该决策边界,该如何实现?

image-20200802131503720

首先先使用一个隐含层实现一个圆形

image-20200802131704955

同时减掉 \(n/2\)

image-20200802131728419

通过这样就可以模拟任意的图形了

但是就需要很多的神经元了,有了更多的深度,神经元的个数就大大减少

考虑如下,最差的情况

image-20200802132353885

(黄色为决策平面)

使用一层,需要无限个神经元

使用两层,只需要56个

image-20200802132501377

总结:深度网络需要更少的神经元对于浅层网络,深度网络更具有表现力

MLPs作为通用近似器

image-20200802135516239

使用模拟方向脉冲,模拟任意函数

对于更高维的情况,就可以模拟圆柱体

image-20200802135627669

仅仅只需要一个隐含层,只有求和时有效,并没有"激活函数"

激活函数

实质上,网络结构是将所有的输入到输入激活的映射

image-20200802140709559

激活函数可以获得输出离边界的距离

但是有的激活函数在对于边界的信息可能会丢失

image-20200802141110343

RBF 网络结构

image-20200802141143181

对于有些问题上更高效。

小结

  • MLPs are universal Boolean function
  • MLPs are universal classifiers
  • MLPs are universal function approximators
  • A single-layer MLP can approximate anything to arbitrary precision
  • Deeper MLPs can achieve the same precision with far fewer neurons
posted @ 2020-08-12 09:51  C_W_K  阅读(209)  评论(0编辑  收藏  举报