残缺的神经网络

卷积神经网络,是神经网络的子集,是残缺的神经网络。
[a00a01a02a10a11a12a20a21a22][b00b01b10b11]=[c00c01c10c11] \left[\begin{matrix}a_{00} & a_{01} & a_{02} \\a_{10} & a_{11} & a_{12} \\a_{20} & a_{21} & a_{22}\end{matrix}\right] \odot\left[\begin{matrix}b_{00} & b_{01} \\b_{10} & b_{11}\end{matrix}\right] = \left[\begin{matrix}c_{00} & c_{01} \\c_{10} & c_{11}\end{matrix}\right]
其中计算关系为
{c00=b00a00+b01a01+b10a10+b11a11c01=b00a01+b01a02+b10a11+b11a12c11=b00a10+b01a11+b10a20+b11a21c11=b00a11+b01a12+b10a21+b11a22 \left\{\begin{aligned}c_{00} &= b_{00}a_{00} + b_{01}a_{01} + b_{10}a_{10} + b_{11}a_{11} \\c_{01} &= b_{00}a_{01} + b_{01}a_{02} + b_{10}a_{11} + b_{11}a_{12} \\c_{11} &= b_{00}a_{10} + b_{01}a_{11} + b_{10}a_{20} + b_{11}a_{21} \\c_{11} &= b_{00}a_{11} + b_{01}a_{12} + b_{10}a_{21} + b_{11}a_{22} \\\end{aligned}\right.
全联接的齐次表示
[a00a01a01a10a11a12a20a21a22][b00000b01b00000b0100b100b000b11b10b01b000b110b0100b10000b11b10000b11]=[c00c01c10c11] \begin{aligned}\left[\begin{matrix}a_{00} &a_{01} &a_{01} &a_{10} &a_{11} &a_{12} &a_{20} &a_{21} &a_{22} \end{matrix}\right] \left[\begin{matrix}b_{00} &0 & 0 & 0\\b_{01} & b_{00} & 0 & 0\\0 & b_{01} & 0 & 0\\b_{10} & 0 & b_{00} & 0\\b_{11} & b_{10} & b_{01} & b_{00}\\0 & b_{11} & 0 & b_{01}\\0 & 0 & b_{10} & 0\\0 & 0 & b_{11} & b_{10}\\0 & 0 & 0 & b_{11}\end{matrix}\right] = \left[\begin{matrix}c_{00} &c_{01} &c_{10} &c_{11} &\end{matrix}\right]\end{aligned}
也就是说,卷积网络,就是部分连接的神经网络,而一般的神经网络都是进行的全联接。

同时,在图像尺寸缩小方面,是因为我们神经元的递减,经过排布以后,导致的图像收缩。

当然,相同办法的逆运算,也会导致我们的图像放大。

对比来说,也就是下一层的神经元数量的扩增,排布以后形成的图像放大。

不过,虽然是残缺的,但是其中带有权值的,非00的参数分布,他们在空间之中,是有一定相关性的。

这也是卷积网络固然残缺,却能受到追捧的原因,它保留了空间信息。

隐藏的神经网络

关于残缺的神经网络这点,大多数人都是必然发现和牢记的,但是关于通道,或许还没有发现它的本质。

轻而易举的,我们发现通道上面的计算,同神经网络更具有相似性。

  • 全联接
  • 轻易的神经元(通道数)变换

如果我们的原图,是一个四通道,单像素的图片,然后进行通道变44后变22的卷积操作,如下图
CNN卷积神经网络结构遐思

这不就是神经网络么,全联接的神经网络。

而实际的情况下,我们的一个通道,却不只是一个像素。

关于这一点,这是我们对于高纬的信息的想象力的不全,下面进行一下我个人的理解和描述。

纬度信息

我们一般的信息理解,从信息的类型来分,或许也可以称作是高纬度的,因为它的确包含了多方面的信息。

比如,一个人,就是高纬度的信息

  • 身高
  • 体重
  • 年龄

这些信息代表了每个单一纬度的信息,从而组成这么一个信息空间,而个人,可以看作这个空间的一个向量.

或者,使用张量这个词更接轨一些。

同上图所示,我们输入的,就是这么一个向量,它由n个单一纬度组成。

而隐藏层是由5个纬度构成,最后投射到j个单一纬度的结果空间,通过对j纬的张量的评估,然后得出结果。

就这种单纯的图片,或者说全联接的神经网络,我们可以以一种更简洁的方式来进行表达
Ti T_i

  • TT:张量
  • ii:纬度

上图就可以表示为
TnT4Tj T_n \Rightarrow T_4 \Rightarrow T_j
神经网络,就是这么一个信息空间的不同投射转换,唯一的区别,就是在于这个空间的纬度。


上述已经说明了一种普遍的信息应该是如何表示的,发现其中的关键了么。

我们平时所述的信息,存在描述性的差异,或者说是我们接受程度的差异,也就是
nT1Tn nT_1 \Leftrightarrow T_n
我们习惯性的对一个信息量进行拆解,从每一个纬度去进行理解。

对于熟知事物,只是从我们关注的点去进行探究,这才造就了我们丰富的生活。

对于美女,仅仅需要一张姣好的面容即可,但是一个信息,逐渐的认知,会丰富她的纬度。

  • 发型
  • 穿着
  • 品味
  • 素养
  • 学识
  • 还有腿

正是因为部分特征的截取和组合,让不同的情况不同的人,对于相同的事物产生不同的偏差。

究其根本原因,只是我们认知的局限,或者说是需求的局限。

我们的确已经接受了高纬的信息,却仍然以一种低纬的思想去理解,这就产生了局限。

现在,不妨玩一玩这么一个思维游戏:定义人如何造就一个社会

  • TpT_p:把person定义为p纬的一个输入张量
  • TnT_n:假设社会的人口为n,社会的输入就是nTPnT_P,以每个人都算作一个纬度,社会输入就是TnT_n
  • TmT_m:衡量一个社会,需要从教育、军事…等m个纬度进行衡量,那么衡量的信息就是TmT_m
  • TsT_s:于是,最终得到一个社会的评价,也就是能够准确描述社会的TsT_s

整个流程就是
TnTnTs T_n \Rightarrow T_n \Rightarrow T_s
不过,正如TpT_pTnT_n之间的关系,由于样本组成了样本空间,每个信息都有所在的信息空间。

对于确定的TsT_s,只是一个固定的社会形态,而TsT_s的空间,则包含了各种的社会形态。


通过这种观点,我们的回顾了我们对于信息的认知,从而发现这种认知的局限所在

单纬度的认知,取决于我们对于高纬度信息的纬度发掘的多寡。

为何因爱生恨,不过是因为我们纬度信息挖掘的不够,部分的纬度信息,刺激了爱,于是爱了。

但是当我们接近,发掘出了更多的其他纬度的信息,综合起来发现,我们误判了----爱上了一个不该爱的人。

或者说,如果信息完备,我们不会去爱上此人。

卷积信息挖掘

卷积,或者说神经网络,就是信息的挖掘机,通过卷积,我们挖掘出了这么一个信息。

如果一个信息是不加约束的,记作TT,如果有一定约束,记作TT'

神经网络,挖掘的信息,毫无疑问是TT,而卷积网络,挖掘的信息,包含空间约束,记作TT'

对于每次的信息挖掘,记作TiTi+1T_i \Rightarrow T_{i+1},使用上标来表示纬度变化,也就成了TijTi+1j+1T_i^j \Rightarrow T_{i+1}^{j+1}


在卷积过程当中,或者说单通道的情况下,挖掘的方式为
TijTi+1j+1 {T^{j}_i }' \Rightarrow {T_{i+1}^{j+1}}'
假设原图像素为1,也就是在没有空间约束的情况下,挖掘方式为
TijTi+1j+1 T_i^j \Rightarrow T_{i+1}^{j+1}
现在,两者综合起来,不过关键的点,还是在于通道数量的变化

  • 卷积

单一的卷积的变化式按照原样,但是对于同样的输入,进行了不同挖掘,也就是
TijnTi+1j+1 {T^{j}_i }' \Rightarrow n{T_{i+1}^{j+1}}'
简单的记作T_NT\_N

  • 通道

通道的变化式,还是老样子,但是,对于TijT_i^j,有没有让你和T_NT\_N产生了联想。

没错,两者其实是等价的。

通道的网络变换,作为一个高纬向量,它的单纬度,正是对应的卷积核抽取出来的一个特征。

而不同的卷积核抽取的特征,正是作为了新一轮的网络计算的输入。


为了直观感受,这里举一个例子,还是以人为例

  • 身高
  • 体重
  • 腿长
  • 眼睛颜色
  • 眼睛大小
  • 睫毛长度
  • 睫毛颜色
  • 头发长度
  • 头发颜色
  • 手掌尺寸

每个输入,都写作xix_i
x0xn}x0xn}x0xn}x0xn}} \begin{aligned}\left.\begin{aligned}\left.\begin{matrix}x_0 \\\vdots \\x_n\end{matrix}\right\} 财富 \\\left.\begin{matrix}x_0 \\\vdots \\x_n\end{matrix}\right\} 学识 \\\vdots \\\left.\begin{matrix}x_0 \\\vdots \\x_n\end{matrix}\right\} 外貌 \\\left.\begin{matrix}x_0 \\\vdots \\x_n\end{matrix}\right\} 魅力 \\\end{aligned}\right\} 婚姻\end{aligned}

发现问题的关键点了么

  • 相同输入会进行重复的特征提取
  • 每个特征都有各自的偏向性
  • 基于提取之后的特征,再次进行特征提取

也就是说,这是一种嫁接在神经网络上面的神经网络,而残缺是由于空间限定。

而且与嫁接而言,空间限定仅仅是小儿科。


这里,同样解释了这么一个问题:为什么backbone可以复用。

因为,经过大量训练集的洗礼,backbone已经习得了诸如颜色、毛发等特征。

而后续的特征组合,仅仅是一种基于此的新的特征判断,但是组合方式的差异,不受基础属性的影响。

正如判断漂亮与否,和判断头发枯黄的两种基准,是明确的隔离的。

对于美丑的判断,基于头发枯黄等结果,却和是否枯黄的判断标准毫无关联。

也是,backbone的复用性也就不言而明。

易于理解的网络

本质来说,这种抽取+逻辑的网络是否就更具有一种更好的效果呢。

从个人的观念来看,那必定是更好的。

因为,它对于一个抽象的高纬的信息的判断变得更加的精确,组合方式也就更加的精准。

现在一步到位的神经网络,存在两个问题

  • 隐蔽:

对于所谓的美貌这种特征,如果不是作为目标来计算,而仅仅是中间生成的一方面的判断依据。

它是不具备复用性的,也是不长久的。

对于神经网络,我们只是对它的复杂计算最终导致的结果是可分析和预计的,对于其中的中间信息,无能为力。

也就是因果一步到位,对于其中的变化过程一无所知,最终的出来的,只是经验而非知识。

  • 模糊

同样的,关注不同的事情,重点是不一样的。

虽然我们可以忽略,却不能够忘记还有这么一些东西。

神经网络中,由于存在明确的目标,关于这方面的信息的确能够足够的去挖掘。

但是更换目标以后,由于偏重的变化,相同信息在新的模型中,它的参数权重,也就会降低。

甚至于,它的影响相比其他重量级的因素是微小的,于是被完全的忽略,权重为00

但是本质上,它的影响力还是存在那么一点点。

正是因为这个原因,对于一个既定结果的凭重的不一,导致对单一信息的差异性识别。

得出来的结果本身就有一定的偏向性。

相同的东西,不同环境下的评价或许不同,但是就它本身而言,应该是一种明确的、定量的评价

就好比身高175175,在一些地方,被认为高,一些地方,被认为矮,一些地方就觉得很普通。

但是在长度的标尺下面,它就是一定的175175,是确定的,唯一的。


原来的神经网络,两点的弊病,一针见血的表述就是

  • 差异性目标导致的基础特征的差异性认知

而且相同的基础特征,都需要重头的训练,浪费资源,还是存在识别差异。

卷积网络的backbone,经过标准的数据集,可以说有一定的认知标准,因此直接复用。

制定个人的functional,仅仅改变组合逻辑,就可以完成个人的信息组合,多么美好。


不过,对于一个东西准确的衡量,并不是如此简单,为了更贴近自己的结果,有时候我们更需要扩大它的差异。

由于functional的设计缺陷,很多人也重新训练backbone,这就是为了更好偏向结果,不过个人觉得并不正确

拟合

所以过拟合欠拟合,到底是什么关系呢?

  • 过拟合:过于贴近训练集,测试集效果不佳
  • 欠拟合:对于训练集本身拟合不佳

两者有差异么?不,两者不存在差异,两者都是一致的:方向性偏差

欠拟合,无法拟合,是一种大距离的方向性偏差,能够明显的察觉到错误。

过拟合,很大程度上拟合,但是偏向点和目标点角度很小,很大程度准确,无法校准。

欠拟合无需多说,关键是过拟合,真的有意思。

如果你的真实情况是x=1x=1,训练出来x=1.1x = 1.1,在范围[0.5,+0.5][-0.5, +0.5]之间,情况是这样的。

真实样本x[0.5,1.5]x \in [0.5, 1.5],预测的样本[0.6,1.6][0.6, 1.6],也就是对于测试集合中的[0.5,0.6)(1.5,1.6][0.5, 0.6) \bigcup (1.5, 1.6],它就会辨别错误。

这种拟合,精确程度下发生了很小的偏差,因为精确,所以更深蒂固。

哪怕错误,或许我们想要的更是x=300[299.6,298.6]x = 300 \Rightarrow [-299.6, -298.6],因为预测的结果[0.4,1.6][0.4, 1.6]更贴近我们的目标。

也就是说,一般的训练,实际上有两个方面因素

  • 定位
  • 偏移

两者都精准的大道了目标,我们就掌握了真理,不过太理想。

当定位太遥远,但是通过偏移,映射了我们的目标,我们心满意足,反之亦然。

或者说,我们对于定位的要求并没那么大,偏移程度和范围,才是能够把握样本的根本关键。

过拟合,就是映射过程中,对于偏移的程度和范围,又一个固执的认知,自成体系,而无法容纳我们的部分期望。


拟合的两者,一个错误的认知,一个偏执的认知,根本原因在于认知方向的错误。

差异过大,这是量上面的,显而易见。

但是那些看起来正确的,始终过拟合的,是因为某些东西本质上的不同,但是现象上面存在交集。

或许,也是因为基础特征的差异化、偏向性的特征提取导致,完全的忽略的那些微弱的原因。

由于这些原因的缺乏,导致认知的正确存在那么一点点的固化偏差。

过拟合其实不是错误,也有可能是我们对于某方面的处理,蒙蔽了视听,局限了信息范围。

这就是**函数的优劣问题了,梯度消失当时就是抹杀了信息。

这种问题,还存在吧,在一些我们意想不到的角落。

相关文章: