机器学习笔记之前馈神经网络(二)非线性问题
创始人
2024-05-08 06:09:40
0

机器学习笔记之前馈神经网络——非线性问题

  • 引言
    • 回顾:关于非线性问题
    • 解决非线性问题的三种方式

引言

上一节介绍了从机器学习到深度学习的过渡,并介绍了深度学习的发展过程。本节将主要介绍如何使用神经网络处理非线性问题

回顾:关于非线性问题

关于非线性问题,我们并不陌生,例如在核方法思想与核函数介绍中提到的最简单的非线性问题——亦或分类问题
亦或问题描述
针对二维特征无法将亦或问题线性可分的情况,通过添加一维新特征的方法,使其在三维特征空间中实现分类:
x(i)=[x1(i),x2(i),(x1(i),−x2(i))]i=1,2,3,4x^{(i)} = \left[x_1^{(i)},x_2^{(i)}, \left(x_1^{(i)}, - x_2^{(i)}\right)\right] \quad i=1,2,3,4x(i)=[x1(i)​,x2(i)​,(x1(i)​,−x2(i)​)]i=1,2,3,4
对应的分类效果表示如下:
亦或分类问题——示例
虽然这个例子比较简单,但可以观测到关于非线性分类问题的处理思想——通过高维特征转换将非线性问题转化为高维线性问题。这也是核方法的主要思想。
当然,非线性问题不仅存在于分类任务中,回归任务中同样也存在非线性问题。例如介绍过的高斯过程回归,从权重空间角度观察,其核心思想就是将贝叶斯线性回归核技巧相结合:

  • 样本特征空间X\mathcal XX经过高维特征转化得到ϕ(X)\phi(\mathcal X)ϕ(X),从而引发模型参数W\mathcal WW的高维转换;
  • 再使用贝叶斯线性回归的两步走推断
    • 求解高维转换后W\mathcal WW的后验概率分布P(W∣Data)\mathcal P(\mathcal W \mid Data)P(W∣Data):
      P(W∣Data)∼N(μW,ΣW){μW=1σ2(A−1XTY)ΣW=A−1A=[1σ2XTX+Σprior−1]\begin{aligned} \mathcal P(\mathcal W \mid Data) \sim \mathcal N(\mu_{\mathcal W},\Sigma_{\mathcal W}) \\ \begin{cases} \mu_{\mathcal W} = \frac{1}{\sigma^2}(\mathcal A^{-1} \mathcal X^T \mathcal Y) \\ \Sigma_{\mathcal W} = \mathcal A^{-1} \\ \mathcal A = \left[\frac{1}{\sigma^2} \mathcal X^T\mathcal X + \Sigma_{prior}^{-1}\right] \end{cases} \end{aligned}P(W∣Data)∼N(μW​,ΣW​)⎩⎧​μW​=σ21​(A−1XTY)ΣW​=A−1A=[σ21​XTX+Σprior−1​]​​
    • 基于P(W∣Data)\mathcal P(\mathcal W \mid Data)P(W∣Data),给定未知样本x^\hat xx^,求解对应的标签信息y^\hat yy^​的后验概率分布P(y^∣Data,x^)\mathcal P(\hat y \mid Data,\hat x)P(y^​∣Data,x^):
      P(y^∣Data,x^)=∫W∣DataP(W∣Data)⋅P(y^∣W,Data,x^)dW=EW∣Data[P(y^∣W,Data,x^)]∼N(x^TμW,x^T⋅ΣW⋅x^+σ2)\begin{aligned} \mathcal P(\hat y \mid Data,\hat x) & = \int_{\mathcal W \mid Data} \mathcal P(\mathcal W \mid Data) \cdot \mathcal P(\hat y \mid \mathcal W,Data,\hat x) d\mathcal W \\ & = \mathbb E_{\mathcal W \mid Data} \left[\mathcal P(\hat y \mid \mathcal W,Data,\hat x)\right] \\ & \sim \mathcal N \left(\hat x^T \mu_{\mathcal W} ,\hat x^T \cdot \Sigma_{\mathcal W} \cdot \hat x + \sigma^2\right) \end{aligned}P(y^​∣Data,x^)​=∫W∣Data​P(W∣Data)⋅P(y^​∣W,Data,x^)dW=EW∣Data​[P(y^​∣W,Data,x^)]∼N(x^TμW​,x^T⋅ΣW​⋅x^+σ2)​

解决非线性问题的三种方式

上一节介绍,马文·明斯基认为感知机算法无法解决非线性问题,从而导致后续接近10年的神经网络方向的没落。关于非线性问题,传统的解决方法存在三种:

  • 非线性转换(Non-Transformation)。其主要思想是:通过非线性转换,将原始的样本特征空间X\mathcal XX转化为新的特征空间Z\mathcal ZZ,转换的目标是在特征空间Z\mathcal ZZ中将非线性问题转化为线性问题
    这里需要再次提到Cover定理:高维特征相较于低维特征更易线性可分。
    ϕ:X⇒Z\phi:\mathcal X \Rightarrow \mathcal Zϕ:X⇒Z

  • 核方法(Kernal Method):核方法本身和非线性转换方法是分不开的。根据Cover\text{Cover}Cover定理,新的特征空间Z\mathcal ZZ往往要高于原始的特征空间X\mathcal XX。
    非线性转换在实践过程中往往存在一些弊端

    • 非线性转换ϕ:X⇒Z\phi:\mathcal X \Rightarrow \mathcal Zϕ:X⇒Z的过程中,本身的计算可能是极为复杂的
      新特征空间Z\mathcal ZZ的产生需要极大的计算量。
    • 假设已经得到了新特征空间Z\mathcal ZZ,他的维度可能是极高的,甚至是无限维。这个计算代价同样是负担不起的;
    • 同样是新特征空间Z\mathcal ZZ的高维度,在特征维度增高的条件下,样本数量可能因维度扩张的脚步而出现维数灾难的情况发生。

    而核方法的核心在于核技巧(Kernal Trick),其核心目的在于:通过核函数(Kernal Function)替代新特征Z\mathcal ZZ的内积运算,从而减少了大量的运算过程

    • 假设x(i),x(j)x^{(i)},x^{(j)}x(i),x(j)是特征空间X\mathcal XX内的点,对应经过非线性转换得到对应点z(i),z(j)z^{(i)},z^{(j)}z(i),z(j):
      x(i),x(j)∈Xz(i)=ϕ(x(i))z(j)=ϕ(x(j))x^{(i)},x^{(j)} \in \mathcal X \\ z^{(i)} = \phi(x^{(i)})\quad z^{(j)} = \phi(x^{(j)}) x(i),x(j)∈Xz(i)=ϕ(x(i))z(j)=ϕ(x(j))
    • 构建核函数κ(x(i),x(j))=⟨z(i),z(j)⟩=[ϕ(x(i))]Tϕ(x(j))\kappa(x^{(i)},x^{(j)}) = \left\langle z^{(i)},z^{(j)}\right\rangle = \left[\phi(x^{(i)})\right]^T\phi(x^{(j)})κ(x(i),x(j))=⟨z(i),z(j)⟩=[ϕ(x(i))]Tϕ(x(j)),如果该函数构建出来,可以通过原始特征空间直接得到转换后空间的内积结果,这种方式隐藏了非线性变换的复杂运算过程,并且也省掉了内积计算的运算过程,节省了大量运算。
      对比以下‘非线性转换’和‘核方法’,它们的本意是相同的,均是通过将低维样本空间映射到高维,从而实现非线性问题的求解。不同点在于,非线性转换‘真的做了转换’,如何转换需要人为手动设计;
      而核方法本身没有做转换,而是构建核函数,使其成为原始样本为输入,非线性转换后样本的内积作为结果。
  • 神经网络(Neural Network)。它的核心是通用逼近定理。这里依然以亦或分类问题为例:
    离散数学中,(∧\land∧),(∨\vee∨),(¬\neg¬)三种运算被称为基本运算;而亦或运算被称为复合运算。亦或运算使用基本运算表达结果如下:
    x1⊕x2=(¬x1∧x2)∨(x1∧¬x2)x_1 \oplus x_2 = (\neg x_1 \land x_2) \vee (x_1 \land \neg x_2)x1​⊕x2​=(¬x1​∧x2​)∨(x1​∧¬x2​)
    上述复合运算可以表示成如下步骤
    x1⊕x2=(¬x1∧x2)⏟step−1∨(x1∧¬x2)⏟step−2⏟step−3x_1 \oplus x_2 = \underbrace{\underbrace{(\neg x_1 \land x_2)}_{step-1} \vee\underbrace{(x_1 \land \neg x_2)}_{step-2}}_{step-3}x1​⊕x2​=step−3step−1(¬x1​∧x2​)​​∨step−2(x1​∧¬x2​)​​​​
    假设使用有向图的形式去描述这个过程:
    亦或运算执行过程
    这明显是一个有向无环图,并且step-1,step-2,step-3\text{step-1},\text{step-2},\text{step-3}step-1,step-2,step-3
    的主体运算均是基本运算,完全可以使用感知机算法进行线性可分。
    step-1\text{step-1}step-1在感知机算法中的激活函数表示如下:
    step-1={1if x1=0,x2=10otherwise\text{step-1} = \begin{cases} 1 \quad \text{if } x_1 = 0,x_2 = 1 \\ 0 \quad \text{otherwise} \end{cases}step-1={1if x1​=0,x2​=10otherwise​
    同理,step-2,step-3\text{step-2},\text{step-3}step-2,step-3对应的激活函数分别表示为:
    step-3\text{step-3}step-3本身就是基本运算中的‘或’运算。
    step-2={1if x1=1,x2=00otherwisestep-3={0if x1=0,x2=01otherwise\text{step-2} = \begin{cases} 1 \quad \text{if } x_1 = 1,x_2 = 0 \\ 0 \quad \text{otherwise} \end{cases} \quad \text{step-3} = \begin{cases} 0 \quad \text{if } x_1 = 0,x_2 = 0 \\ 1 \quad \text{otherwise} \end{cases}step-2={1if x1​=1,x2​=00otherwise​step-3={0if x1​=0,x2​=01otherwise​

并且从图中能够明显看出,亦或问题被表示成了一个嵌套的、复合函数。并且它的计算过程包含顺序,而这个顺序被图中的层级顺序所代替。

将上式进行归纳,构建一个神经网络,关于亦或问题表示如下:

  • x1,x2x_1,x_2x1​,x2​只能取0,10,10,1两种条件,而求解目标是抑或问题
    x1⊕x2={1x1≠x20x1=x2x_1 \oplus x_2 = \begin{cases} 1 \quad x_1 \neq x_2 \\ 0 \quad x_1 = x_2 \end{cases}x1​⊕x2​={1x1​=x2​0x1​=x2​​
  • 亦或问题分解为基本运算,并给予权重信息:包含运算的元素赋权值−1-1−1;不包含运算的元素赋权值111;偏置项统一赋值−0.5-0.5−0.5。而激活函数依然使用符号函数
    sign(a)={1if a>00otherwise\text{sign}(a) = \begin{cases} 1 \quad \text{if } a > 0 \\ 0 \quad \text{otherwise} \end{cases}sign(a)={1if a>00otherwise​
    示例:当x1=1,x2=0x_1 =1,x_2 = 0x1​=1,x2​=0时,验证以下这个前馈神经网络的最终结果:
    step-1 : sign[1×1+0×(−1)−0.5]=1(0.5>0)step-2 : sign[1×(−1)+0×1−0.5]=0(−1.5<0)step-3 : sign[1×1+0×1−0.5]=1(0.5>0)\begin{aligned} \text{step-1 : }\text{sign} \left[1 \times 1 + 0 \times (-1) - 0.5\right] = 1 \quad (0.5 > 0) \\ \text{step-2 : }\text{sign} \left[1 \times (-1) + 0 \times 1 - 0.5\right] = 0 \quad (-1.5 < 0) \\ \text{step-3 : } \text{sign} \left[1 \times 1 + 0 \times 1 - 0.5\right] = 1 \quad (0.5 > 0) \end{aligned}step-1 : sign[1×1+0×(−1)−0.5]=1(0.5>0)step-2 : sign[1×(−1)+0×1−0.5]=0(−1.5<0)step-3 : sign[1×1+0×1−0.5]=1(0.5>0)​
    这完全满足亦或函数的描述,那么这样的模型结构以及对应的模型参数(权值、偏置项)就可以表示亦或分类问题
    其他的情况也可以试验,这里就不多赘述了。

上述针对亦或分类问题构建了一个完整的前馈神经网络
前馈神经网络——亦或问题
该图相比于上面的计算过程存在一些差别。

  • 首先出现了一个新的结点:偏置。
  • 中间的白色点也不在表示与或非产生的运算步骤,取而代之的是包含权重信息、偏置项信息的线性运算,经过激活函数后产生的结果
    也就是说,相比于计算过程图,白色结点不再具有实际的逻辑意义,只有包含抽象意义的计算过程。

这个就是机器学习中层次化的体现。这种网络结构也称为多层感知机,名字也很朴素,就是由若干个感知机堆叠在一起产生的模型结构。也称为前馈神经网络(Feedforward Neural Network)。
从这个点也能看出,前馈神经网络依然是‘频率派’的代表模型。

  • 因为在整个模型结构的构建以及模型参数的赋予(这里的模型参数的试出来的,不是学习出来的,仅是一个简单的例子)和概率没有关联关系。
  • 并且这里的模型参数(权重信息、偏置项)被假设为一个未知的常量。而不是通过后验概率的方式进行求解。
  • 个人认为最有说服力的特征就是h1,h2,h3h_1,h_2,h_3h1​,h2​,h3​所表示的三个结点均不是随机变量。在之前介绍的很多模型。如Sigmoid信念网络、受限玻尔兹曼机中所有的结点,无论是观测变量还是隐变量,它们均是随机变量。

因而区别于概率图,通常称层次化的神经网络图,如MLP,CNN,RNN\text{MLP,CNN,RNN}MLP,CNN,RNN等称为计算图(Computational Graph\text{Computational Graph}Computational Graph)

相关参考:
马文·明斯基——百度百科
非线性问题的三种解决方法

相关内容

热门资讯

用一指流年叙一世沧桑什么意思 用一指流年叙一世沧桑什么意思?一指:一次指点,也指齐是非得失之典实。流年:如水般流逝的光阴、年华。沧...
对与说谎 作者:葛仲君 周佳蕾编译来源:《第一财经周刊》2010年第16期哥伦比亚大学副教授丹·阿卡涅夫(Da...
爱情笔记 作者:成小晟来源:新浪成小晟的博客如果有一天我忘记了你和我们所拥有的一切,如果你给我读了我们爱情的故...
亨特兄弟 从前,在山里打猎的人有一对兄弟。我哥哥很努力。他每天都很贪婪,出没在山林里。他很辛苦,很穷,但是没有...
哲学爱情散文:爱情深埋在心底,... 1.什么是真爱?既不是甜言蜜语,也不是善意的微笑,更不是永恒爱情的誓言。2.恋爱中男人最傻;女人是爱...
看人(节选) 作者:贾平凹来源:《时代青年·月读》2010年3月上我不能厌倦在街上看人们的风景。初来乍到城市的村民...
爱上了柏林 作者:程伟来源:原创稿当时第二次世界大战刚刚结束。一个名叫乌苏尔的德国金发女郎在柏林郊区的一家医院做...
实用调试技巧 个人主页:平行线也会相交 欢迎 点赞👍 收藏✨ 留言✉ 加关注...
安科瑞集中监控,剩余电流监测,... 安科瑞 王晶淼/司红霞 一、电气火灾和爆炸的原因 电气火灾和爆炸在火灾、爆炸事故中占有很大的比例。如...
网络安全基础入门-概念名词 目录 网络安全学习(2022.10.23) 一、基础入门——概念名词 D...