RBF神经网络详解

一、 背景知识

1988年,Broomhead、Lowe以及Moody和Darken最早将径向基函数用于神经网络设计。径向基函数神经网络(Radial Basis Function Neural Network,RBF神经网络)是一类常用的三层前馈网络,既可用于函数逼近,也可用于模式分类。与其他类型的人工神经网络相比,RBF网络有生理学基础,结构简单,学习速度快,优良的逼近性能和泛化能力等特点。
RBF network
简单说明一下为什么RBF网络收敛得比较快。当网络中的一个或多个可调参数(权值或阈值)对任何一个输出都有影响时,这样的网络称为全局逼近网络。由于对于每次输入,网络上的权值都要调整,从而导致全局逼近网络的学习速度很慢。BP神经网络就是一个典型的例子。常见的局部逼近网络有RBF网络、CMAC网络、B样条网络。

二、什么是径向基函数

径向基函数是一个取值仅仅依赖于离原点距离的实值函数(RBF)方法。也就是 Φ ( x , c ) = Φ ( ∣ ∣ x − c ∣ ∣ ) \Phi(x, c)=\Phi(||x-c||) Φ(x,c)=Φ(xc)。任意一个满足 Φ ( x ) = Φ ( ∣ ∣ x ∣ ∣ ) \Phi(x)=\Phi(||x||) Φ(x)=Φ(x)特性的函数 Φ \Phi Φ都叫做径向基函数,标准的一般使用欧式距离(也叫做欧式径向基函数)。最常用的径向基函数是高斯核函数,形式为 k ( ∣ ∣ x − x c ∣ ∣ ) = e − ∣ ∣ x − x c ∣ ∣ 2 2 σ 2 k(||x-x_c||)=e^{\frac{-||x-x_c||^2}{2\sigma^2}} k(xxc)=e2σ2xxc2。其中 x c x_c xc为核函数中心, σ \sigma σ为函数的宽度参数,控制了函数的径向作用范围。

重要的径向基函数主要有如下三种:

  1. Gauss(高斯)函数
    φ ( r ) = e − r 2 2 σ 2 \varphi(r)=e^{-\frac{r^2}{2\sigma^2}} φ(r)=e2σ2r2
  2. 反常S型函数
    φ ( r ) = 1 1 + e r 2 σ 2 \varphi(r)=\frac{1}{1+e^\frac{r^2}{\sigma^2}} φ(r)=1+eσ2r21
  3. 拟多二次函数
    φ ( r ) = 1 ( r 2 + c 2 ) 1 / 2 \varphi(r)=\frac{1}{(r^2+c^2)^{1/2}} φ(r)=(r2+c2)1/21
三、什么是RBF神经网络

RBF神经网络是一种三层神经网络,包括输入层、隐层、输出层。从输入空间到隐层空间的变换是非线性的,而从隐层空间到输出层空间的变换是线性的。
RBF神经网络解决插值问题
完全内插法要求插值函数经过每个样本点,即 F ( X n ) = d n F(X^n)=d^n F(Xn)=dn。样本点总共有k个。
RBF的方法是要选择k个基函数,每个基函数对应一个训练数据,各基函数形式为 φ ( ∣ ∣ X − X k ∣ ∣ ) \varphi(||X-X^k||) φ(XXk),由于距离是径向同性的,因此称为径向基函数。 ∣ ∣ X − X k ∣ ∣ ||X-X^k|| XXk表示差向量的模,或者叫2范数。
基于径向基函数的插值函数为:
F ( x ) = ∑ k = 1 n w k φ k ( ∣ ∣ X − X k ∣ ∣ ) = w 1 φ 1 ( ∣ ∣ X − X 1 ∣ ∣ ) + ⋯ + w n φ n ( ∣ ∣ X − X n ∣ ∣ ) F(x)=\sum_{k=1}^nw_k\varphi_k(||X-X^k||)=w_1\varphi_1(||X-X^1||)+\cdots+w_n\varphi_n(||X-X^n||) F(x)=k=1nwkφk(XXk)=w1φ1(XX1)++wnφn(XXn)
RBF Network2
输入X是个m维的向量,隐层大小为n,n>m。

其中,隐含层的作用是把向量从低维度m映射到高维度n,这样低维度线性不可分的情况到高维度就变得线性可分了,实际上是核函数的思想。

将插值条件代入:
{ w 1 φ 1 ( ∣ ∣ X 1 − X 1 ∣ ∣ ) + w 2 φ 2 ( ∣ ∣ X 1 − X 2 ∣ ∣ ) + ⋯ + w p φ p ( X 1 − X p ) = d 1 w 1 φ 1 ( ∣ ∣ X 2 − X 1 ∣ ∣ ) + w 2 φ 2 ( ∣ ∣ X 2 − X 2 ∣ ∣ ) + ⋯ + w p φ p ( X 2 − X p ) = d 2 ⋮ w 1 φ 1 ( ∣ ∣ X p − X 1 ∣ ∣ ) + w 2 φ 2 ( ∣ ∣ X p − X 2 ∣ ∣ ) + ⋯ + w p φ p ( X p − X p ) = d p \left\{ \begin{gathered} w_1\varphi_1(||X^1-X^1||)+w_2\varphi_2(||X^1-X^2||)+\cdots+w_p\varphi_p(X^1-X^p)=d^1 \\w_1\varphi_1(||X^2-X^1||)+w_2\varphi_2(||X^2-X^2||)+\cdots+w_p\varphi_p(X^2-X^p)=d^2 \\\vdots \\w_1\varphi_1(||X^p-X^1||)+w_2\varphi_2(||X^p-X^2||)+\cdots+w_p\varphi_p(X^p-X^p)=d^p \end{gathered} \right. w1φ1(X1X1)+w2φ2(X1X2)++wpφp(X1Xp)=d1w1φ1(X2X1)+w2φ2(X2X2)++wpφp(X2Xp)=d2w1φ1(XpX1)+w2φ2(XpX2)++wpφp(XpXp)=dp

写成向量的形式为 Φ W = d \Phi W=d ΦW=d,当 Φ \Phi Φ可逆时,有 W = Φ − 1 d W=\Phi^{-1}d W=Φ1d

径向基函数神经网络的激活函数:
R ( x m − c i ) = e − ∣ ∣ x m − c i ∣ ∣ 2 2 σ 2 R(x_m-c_i)=e^\frac{-||x_m-c_i||^2}{2\sigma^2} R(xmci)=e2σ2xmci2
其中 x m x_m xm通过RBF神经网络可得到网络的输出为:
y j = ∑ i = 1 h w i j e − ∣ ∣ x p − c i ∣ ∣ 2 2 σ 2 j = 1 , 2 , . . . , n y_j=\sum_{i=1}^hw_{ij}e^-\frac{||x_p-c_i||^2}{2\sigma^2} j = 1,2,...,n yj=i=1hwije2σ2xpci2j=1,2,...,n

采用最小二乘的损失函数:
σ = ∑ j = 1 h ∣ ∣ d j − y j c i ∣ ∣ 2 \sigma=\sum_{j=1}^h||d_j-y_jc_i||^2 σ=j=1hdjyjci2

四、高斯核函数怎么映射高维空间

高斯核函数的定义公式如下:
k ( x , x ′ ) = e − ∣ ∣ x − x ′ ∣ ∣ 2 σ 2 k(\textbf{x},\textbf{x}')=e^{-\frac{||\textbf{x}-\textbf{x}'||}{2\sigma^2}} k(x,x)=e2σ2xx
这个公式可以化简为:
k ′ ( x , x ′ ) = e − x ⋅ x ′ σ 2 k'(\textbf{x},\textbf{x}')=e^{-\frac{\textbf{x}\cdot \textbf{x}'}{\sigma^2}} k(x,x)=eσ2xx
然后通过幂级数进行展开:
k ′ ( x , x ′ ) = ∑ n = 0 + ∞ ( x ⋅ x ′ ) n σ n n ! k'(\textbf{x},\textbf{x}')=\sum\nolimits_{n=0}^{+\infty}\frac{(\textbf{x}\cdot \textbf{x}')^n}{\sigma^nn!} k(x,x)=n=0+σnn!(xx)n
可以看出,向量X会生成类似多项式核展开的形式。

五、计算例子

用RBF神经网络实现异或
在这里插入图片描述

  • 27
    点赞
  • 332
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值