一、 背景知识
1988年,Broomhead、Lowe以及Moody和Darken最早将径向基函数用于神经网络设计。径向基函数神经网络(Radial Basis Function Neural Network,RBF神经网络)是一类常用的三层前馈网络,既可用于函数逼近,也可用于模式分类。与其他类型的人工神经网络相比,RBF网络有生理学基础,结构简单,学习速度快,优良的逼近性能和泛化能力等特点。
简单说明一下为什么RBF网络收敛得比较快。当网络中的一个或多个可调参数(权值或阈值)对任何一个输出都有影响时,这样的网络称为全局逼近网络。由于对于每次输入,网络上的权值都要调整,从而导致全局逼近网络的学习速度很慢。BP神经网络就是一个典型的例子。常见的局部逼近网络有RBF网络、CMAC网络、B样条网络。
二、什么是径向基函数
径向基函数是一个取值仅仅依赖于离原点距离的实值函数(RBF)方法。也就是 Φ ( x , c ) = Φ ( ∣ ∣ x − c ∣ ∣ ) \Phi(x, c)=\Phi(||x-c||) Φ(x,c)=Φ(∣∣x−c∣∣)。任意一个满足 Φ ( 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(∣∣x−xc∣∣)=e2σ2−∣∣x−xc∣∣2。其中 x c x_c xc为核函数中心, σ \sigma σ为函数的宽度参数,控制了函数的径向作用范围。
重要的径向基函数主要有如下三种:
- Gauss(高斯)函数
φ ( r ) = e − r 2 2 σ 2 \varphi(r)=e^{-\frac{r^2}{2\sigma^2}} φ(r)=e−2σ2r2 - 反常S型函数
φ ( r ) = 1 1 + e r 2 σ 2 \varphi(r)=\frac{1}{1+e^\frac{r^2}{\sigma^2}} φ(r)=1+eσ2r21 - 拟多二次函数
φ ( 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||) φ(∣∣X−Xk∣∣),由于距离是径向同性的,因此称为径向基函数。 ∣ ∣ X − X k ∣ ∣ ||X-X^k|| ∣∣X−Xk∣∣表示差向量的模,或者叫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=1∑nwkφk(∣∣X−Xk∣∣)=w1φ1(∣∣X−X1∣∣)+⋯+wnφn(∣∣X−Xn∣∣)
输入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(∣∣X1−X1∣∣)+w2φ2(∣∣X1−X2∣∣)+⋯+wpφp(X1−Xp)=d1w1φ1(∣∣X2−X1∣∣)+w2φ2(∣∣X2−X2∣∣)+⋯+wpφp(X2−Xp)=d2⋮w1φ1(∣∣Xp−X1∣∣)+w2φ2(∣∣Xp−X2∣∣)+⋯+wpφp(Xp−Xp)=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(xm−ci)=e2σ2−∣∣xm−ci∣∣2
其中 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=1∑hwije−2σ2∣∣xp−ci∣∣2j=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=1∑h∣∣dj−yjci∣∣2
四、高斯核函数怎么映射高维空间
高斯核函数的定义公式如下:
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′)=e−2σ2∣∣x−x′∣∣
这个公式可以化简为:
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−σ2x⋅x′
然后通过幂级数进行展开:
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!(x⋅x′)n
可以看出,向量X会生成类似多项式核展开的形式。
五、计算例子
用RBF神经网络实现异或
今天的文章rbf神经网络介绍_mlp神经网络[通俗易懂]分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/73869.html