记录,以计算机图形方式突然发现深度学习的本质。。。

拜读了一篇大佬写的胶囊网络解析,非常给力
https://zhuanlan.zhihu.com/p/29435406

先对已变形的特征进行一定的空间变换,还原特征原本的样子,找到特征之间的不变性。
仔细想如何对特征进行空间变换,第一个想到的就是矩阵的线性变换。
以三维空间为例子
有一个3D顶点,坐标是一个3元组,[x, y, z]
有一个3维的3x3旋转变换矩阵
将顶点与变换矩阵进行线性运算,可以得到新的顶点位置

突然发现
转到深度学习里面
上述的3D顶点可以认为是一个3个维度的特征
3x3的旋转矩阵,正好跟输入3个特征,输出3个特征的全连接层的权重形状一样
全连接的运算方式,也跟线性变换是一样的!
而那些偏置,跟图形学里面的平移也是一样的

而Relu激活函数,看起来就像是一把刀,把位于其他象限的顶点都切掉(对应维度坐标置0),只保留了第一象限的顶点坐标。
而sigmoid函数,像一个压缩器,对第一象限的0-1中间部分的顶点做了比较好的保留,其他象限的和小于0和大于1的顶点,都压缩在了一个非常小的区间,因为float精度问题,实际上也可以认为是丢失掉了

扩展一下,3x4的矩阵,是否就是把这个3D的顶点,做了一个4D的变换,投射到了4D空间里面

这么看来,深度学习就好像是把那些特征(顶点)在不同维度的空间里面变来变去,然后用Relu这类东西把超出范围的特征切掉,最终留下来的就是需要的特征(顶点)

这样看的话,深度学习的反向传播,倒很像是找一个瞎蒙着的找能用的变换矩阵的方法。

再扩展一下,看一下卷积操作,例如看一个卷积核大小为3x3,输入为1D,输出为3D的卷积。
看上去,就像是把一个3x3的数字的值和排列模式,转换到了3D空间的一个顶点位置。直接的线性变换都是只能以0为中心的,平移需要加法操作才能实现,所以深度学习中,为什么都在要求各种各样的0均值很重要。

再扩展一下,BN,IN。看起来第一步都是先找原特征的坐标系,然后去掉原坐标系,变成0点坐标系后,在改为一个新的坐标系。

GN有点特别,它把一个大的特征(高维顶点)分成几个小部分(多个低维顶点),给每个小部分(低维顶点)单独寻找坐标系,然后分别变成0点坐标系后,再变成一个新的坐标系。

看完后。。为啥GPU这么合适深度学习,妈耶,这算啥深度学习,这不就是一大堆空间变换吗,就是游戏的3D空间变换,GPU不就最适合玩游戏了吗。

RNN不是很熟悉,目前还不知道关系。

这跟生物神经网络,差别不是一星半点啊。生物神经网络,像是一个更低级的调波电路,跟半导体收音机类似。

额外增加
显然,直接把深度学习看得这么简单是十分肤浅的。冷静一下,前向传播是这么简单,没错。但是反向传播,找到这个合适的变换矩阵,却是非常的困难。
就像玻尔兹曼机和受限玻尔兹曼机那样。他有着无限的可能,但也要能在无限的垃圾海里找到一个能用的组合才行。对深度学习加入各种限制,没理解错的话,就是放弃掉一些可能性,让其更容易找到一种有效变换矩阵组合。

残差网络理解(可能是这样,个人理解)
从每个残差块输出上与残差来流看,很像是将某些第一象限里的某些顶点进行一些简单平移处理。很多个残差块都分别对残差流的一些顶点进行很多次的不同的平移处理,这样的效果就很像对不同顶点使用不同的旋转矩阵进行旋转变换。这样就做到了单个旋转矩阵无法做到的效果。同时可能是平移的计算时,反向传播的梯度的强度保留程度比较好,导致残差网络比单纯堆叠的网络更容易训练,并且效果更好

网络容易被对抗欺骗的猜测
残差网络更容易被对抗欺骗原因猜测,多个残差块之间是松耦合的,反向传播的得到变换矩阵,对输入的要求也比较高,上一段说了,残差网络主要是依赖于平移变换,显然,平移变换很多时候对顶点的变化幅度比较小,遇到对抗图像时,特殊的图像组合会让各个残差块的输出间起冲突,从而导致顶点平移的范围过大或过小。
vgg类网络遭受对抗的原因猜测,vgg是简单堆叠网络,网络层间,主要的运算是顶点的旋转变换,旋转变换是全域的,每个层都有能力使顶点旋转到任何位置,简而言之就是扭转之前的层的判断,换个方向来思考,下一层对前一层的输出准确性的依赖性十分的高,只要对抗图像能使顶点到达某一个层的第一象限的边界,后面的层的旋转矩阵也很有可能会将其转移到象限边界附近,有可能会越界,一旦越界,信息就会被RELU函数切掉,从而导致出错。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值