当前位置:   article > 正文

深度学习-3.深度学习基础_机器学习的通用近似定理怎么证明

机器学习的通用近似定理怎么证明

基本概念

深度前馈网络

  • 又名前馈神经网络、多层感知机(MLP),是典型的深度学习模型。
  • 其目标是近似某个函数 f f f,使得对于一个输入 x x x,经过 f f f变换之后可以得到输出 y = f ( x ) y=f(x) y=f(x),在 f ( x ) f(x) f(x)中不仅有函数的形式(如二次函数还是一次函数等的选择),还有各项的参数 θ \theta θ
  • 由于数据是从x正向传递到y,因此该模型被称为前馈神经网络。
  • 网络之所以被称为网络,是因为他们通过不同的函数复合在一起,从前到后被称为输入、隐藏层、输出。

例如在神经网络模型 x → f 1 ( x ) h 1 ( x ) → f 2 ( x ) h 2 ( x ) → f 3 ( x ) y x\xrightarrow{f_1(x)} h_1(x)\xrightarrow{f_2(x)}h_2(x)\xrightarrow{f_3(x)} y xf1(x) h1(x)f2(x) h2(x)f3(x) y中, x x x被称为输入, y y y被称为输出。 f 1 f_1 f1被称为第一层, f 2 f_2 f2被称为第二层, f 3 f_3 f3作为最后一层被称为输出层。这条链的全长被称为模型的深度。这些函数 f 1 f 2 f 3 f_1f_2f_3 f1f2f3被称为隐藏层。

  • 显然,要想得到好的模型, f f f的选择至关重要,本文将从最简单的神经网络模型开始说起,介绍神经网络各层之间的连接等。

学习异或问题

异或问题的定义

在逻辑运算中,异或问题是一个很简单的运算,表示为 y = x 1 ⊕ x 2 y = x_1\oplus x_2 y=x1x2

x 0 x_0 x0 x 1 x_1 x1 y y y
000
011
101
110

映射在二维空间中的图像为
请添加图片描述
显然是没有办法使用线性函数进行分类的,即一条直线无法将其准确分类,同时无论做多少次线性变换也都无法将其分类这就要求我们使用非线性函数来描述这四个点的特征。

一种解决方式

本节介绍一种较为简单的解决方式,整个网络模型为
f ( x ; W , c , ω , b ) = ω ⊤ max ⁡ { 0 , W ⊤ x + c } + b f(x;W,c,\omega,b) = \omega^\top\max\{0, W^\top x + c\} + b f(x;W,c,ω,b)=ωmax{0,Wx+c}+b
其中, f 1 ( x ) = W ⊤ x + c f_1(x) = W^\top x + c f1(x)=Wx+c是第一层, f 2 ( x ) = max ⁡ { 0 , f 1 ( x ) } f_2(x)=\max\{0, f_1(x)\} f2(x)=max{0,f1(x)}是第二层, f 3 ( x ) = ω ⊤ f 2 ( x ) + b f_3(x) = \omega^\top f_2(x)+b f3(x)=ωf2(x)+b是第三层。
W = [ 1 1 1 1 ] W =

[1111]
W=[1111]
c = [ 0 − 1 ] c =
[01]
c=[01]

ω = [ 1 − 2 ] \omega =
[12]
ω=[12]

y = f 3 ( f 2 ( f 1 ( x ) ) ) y = f_3(f_2(f_1(x))) y=f3(f2(f1(x)))的计算过程为

x = ( x 0 , x 1 ) x = (x_0,x_1) x=(x0,x1) f 1 ( x ) f_1(x) f1(x) f 2 ( f 1 ( x ) ) f_2(f_1(x)) f2(f1(x)) f 3 ( f 2 ( f 1 ( x ) ) ) f_3(f_2(f_1(x))) f3(f2(f1(x)))
(0,0)(0,-1)(0,0)0
(0,1)(1,0)(1,0)1
(1,0)(1,0)(1,0)1
(1,1)(2,1)(2,1)0

本节我们直接制定了 W , ω , c , b W,\omega,c,b W,ω,c,b,但在实际问题中,由于样本数量特别大,没法使用这种方式猜解,因此需要使用梯度下降法等方式求得近似解,可惜的是梯度下降法没办法找到这么干净这么容易理解还是整数型的解。

基于梯度的学习

代价函数

使用最大似然函数学习条件分布

大多数现代神经网络都是使用最大似然来训练,这种方式的代价函数表示为
J ( θ ) = − E x , y ∼ p d a t a log ⁡ p m o d e l ( y ∣ x ) J(\theta) = -\mathbb{E}_{x,y\sim p_{data}}\log p_{model}(y|x) J(θ)=Ex,ypdatalogpmodel(yx)
代价函数的具体形式随着模型而改变。

学习条件统计量

有时候我们需要学习在给定x时y的某个条件统计量。
这时可以使用变分法,解优化问题:
f ∗ = arg min ⁡ f E x , y ∼ p d a t a ( y ∣ x ) ∣ ∣ y − f ( x ) ∣ ∣ 2 f^* = \argmin_f\mathbb E_{x,y\sim p_{data}(y|x)}||y-f(x)||^2 f=fargminEx,ypdata(yx)yf(x)2

f ∗ = arg min ⁡ f E x , y ∼ p d a t a ( y ∣ x ) ∣ ∣ y − f ( x ) ∣ ∣ 1 f^* = \argmin_f\mathbb E_{x,y\sim p_{data}(y|x)}||y-f(x)||_1 f=fargminEx,ypdata(yx)yf(x)1
等。

输出单元

用于高斯输出分布的线性单元

y = W ⊤ h + b y = W^\top h + b y=Wh+b
线性单元不会饱和,因此更易于采用基于梯度的优化方法,甚至可以采用其他多种算法。

用于伯努利(bernoulli)输出分布的sigmoid单元

y = σ ( ω ⊤ h + b ) y = \sigma(\omega^\top h + b) y=σ(ωh+b)

用于多项(multinoulli)输出分布的softmax单元

y = e z i ∑ j e z j y = \frac{e^{z_i}}{\sum_j e^{z_j}} y=jezjezi
归一化:让向量的和为1

隐藏单元

整流线性单元及其扩展

z i < 0 z_i<0 zi<0时,使用一个非零的斜率 a i a_i ai

  • 绝对值整流:用于图像的对象识别。寻找输入照明极性反转下不变的特征是有意义的。 a i = − 1 a_i = -1 ai=1
  • 渗漏整流线性单元(LeRU): a i a_i ai约为类似0.01的小值
  • 参数化渗漏整流单元(PReLU) a i a_i ai是一个用于学习的参数

maxout单元(Goodfellow e t   a l . et \space al. et al.,2013a)

  • s i s_i si分成了k个小组,每组输出其最大元素。
  • 使用足够大的k,maxout单元可以近似任何凸函数。
  • 由于每个单元有多个过滤器驱动,maxout单元具有一些冗余来帮助它们抵抗一种被称为灾难遗忘的现象。

sigmoid与tanh

在整流线性单元出现以前,大多数网络使用sigmoid函数和tanh函数来激活。

当必须使用到sigmoid函数做激活时,使用tanh的效果可能更好,且训练起来也更加容易。

其他隐藏单元

  • 径向基函数: h i = exp ⁡ ( − 1 σ i 2 ∣ ∣ W : , i − x ∣ ∣ 2 ) h_i = \exp{(-\frac{1}{\sigma^2_i}||W_{:,i} - x||^2)} hi=exp(σi21W:,ix2),其在x接近模板W时更加活跃。因为它对大部分x都饱和到0,因此很难优化。
  • softplus函数: ζ ( a ) = log ⁡ ( 1 + e a ) \zeta(a) = \log(1 + e^a) ζ(a)=log(1+ea),是整流单元的平滑版本。函数图像如下图所示。

请添加图片描述

  • 硬双曲正切函数:函数形状与tanh类似,只不过是值域在[-1,1]上,是有界的。

架构设计

万能近似性质和深度

  • 万能近似定理:一个前馈神经网络如果具有线性输出层和至少一层具有任何一种挤压性质的激活函数的隐藏层,只要给予网络足够数量的隐藏单元,它可以以任意精度来近似任何一个有限维空间到有限维空间的Borel可测函数
  • 更深的网络能够更好的泛化。在相同深度下,增加网络中的参数对模型几乎没有影响。
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/118690
推荐阅读
相关标签
  

闽ICP备14008679号