机器学习之神经网络

  1. M-P神经元模型机器学习之神经网络机器学习之神经网络

  2. 网络概念
    多层网络:包含隐层的网络
    前馈网络:神经元之间不存在同层连接也不存在跨层连接
    功能单元:隐含层和输出层神经元
    只需一个包含足够多神经元的隐层,多层前馈神经网络可以以任意精度逼近任意复杂度的连续函数。
    实际常用“试错法”设置神经网络隐层神经元个数。
    神经网络的学习过程,就是根据训练数据来调整神经元之间的"连接权" (connection weight) 以及每个功能神经元的阑值;换言之,神经网络"学"到的东西,蕴涵在连接权与阙值中。

  3. BP算法(误差逆传播算法、反向传播算法)
    输入层:x1,x2,,xi,,xdx_1,x_2,\cdots,x_i,\cdots,x_d
    隐含层:b1,b2,,bh,,bqb_1,b_2,\cdots,b_h,\cdots,b_q
    输出层:y1,y2,,yj,,yly_1,y_2,\cdots,y_j,\cdots,y_l
    **函数:f(x)=11+exf(x)=\frac{1}{1+e^{-x}},f(x)f(x)满足f(x)=f(x)(1f(x))f'(x)=f(x)(1-f(x)) 第h个隐含层神经元的输入为:αh=i=1dvihxi\alpha_h=\sum\limits_{i=1}^{d}v_{ih}x_i
    第j个输出层神经元的输入为:βj=h=1qωhjbh\beta_j=\sum\limits_{h=1}^{q}\omega_{hj}b_h
    网络在第k个样例(xk,yk)(x_k,y_k)上的均方误差为:
    E(k)=12j=1l(y^jkyjk)2E(k)=\frac{1}{2}\sum\limits_{j=1}^{l}(\hat{y}^k_j-y^k_j)^2 广义感知机学习规则:vv+Δvv\leftarrow v+\Delta v
    权重梯度更新公式:Δωhj=ηEkωhj=ηgjbh\Delta\omega_{hj}=-\eta\frac{\partial E_k}{\partial \omega_{hj}}=\eta g_jb_h
    Δθj=ηgj\Delta\theta_{j}=-\eta g_j
    Δvih=ηEkvih=ηehxi\Delta v_{ih}=-\eta\frac{\partial E_k}{\partial v_{ih}}=\eta e_hx_i
    Δγ=ηeh\Delta \gamma=\eta e_h
    其中,Ekωhj=Eky^jky^jkβjβjωhj-\frac{\partial E_k}{\partial \omega_{hj}}=-\frac{\partial E_k}{\partial \hat{y}^k_j}\frac{\partial \hat{y}^k_j}{\partial \beta_j}\frac{\partial \beta_j}{\partial \omega_{hj}},
    βjωhj=bh\frac{\partial \beta_j}{\partial \omega_{hj}}=b_hy^jkβj=f(βjθj)=f(βjθj)(1f(βjθj))=y^jk(1y^jk)\frac{\partial \hat{y}^k_j}{\partial \beta_j}=f'(\beta_j-\theta_j)=f(\beta_j-\theta_j)(1-f(\beta_j-\theta_j))=\hat{y}^{k}_j(1-\hat{y}^{k}_j)Eky^jk=y^jkyjk\frac{\partial E_k}{\partial \hat{y}^k_j}=\hat{y}^{k}_j-y_j^k 故:gj=Ekβj=y^jk(1y^jk)(yjky^jk)g_j=-\frac{\partial E_k}{\partial \beta_j}=\hat{y}^{k}_j(1-\hat{y}^{k}_j)(y_j^k-\hat{y}^{k}_j)
    Ekvih=Ekbhbhαhαhvih-\frac{\partial E_k}{\partial v_{ih}}=-\frac{\partial E_k}{\partial b_h}\frac{\partial b_h}{\partial \alpha_{h}}\frac{\partial \alpha_{h}}{\partial v_{ih}}而:αhvih=xi\frac{\partial \alpha_{h}}{\partial v_{ih}}=x_ibhαh=f(αhγh)=bh(1bh)\frac{\partial b_h}{\partial \alpha_{h}}=f'(\alpha _h-\gamma_h)=b_h(1-b_h)Ekbh=j=1lEkβjβjbh=j=1lωhj(gj)\frac{\partial E_k}{\partial b_h}=\sum\limits_{j=1}^{l}\frac{\partial E_k}{\partial \beta_j}\frac{\partial \beta_j}{\partial b_h}=\sum\limits_{j=1}^l\omega_{hj}(-g_j)eh=Ekαh=bh(1bh)j=1lωhjgje_h=-\frac{\partial E_k}{\partial \alpha_h}=b_h(1-b_h)\sum\limits_{j=1}^l\omega_{hj}g_j

  4. RBF(径向基函数)网络
    分类任务中除BP之外最常用;
    单隐层前馈神经网络;
    使用径向基函数作为隐层神经元**函数,例如高斯径向基函数:ρ(x,ci)=eβixci2\rho(x,c_i)=e^{-\beta_i||x-c_i||^2}
    其中,cic_iωi\omega_i是第ii个隐藏层神经元所对应的中心和权重。
    输出层是隐含层神经元输出的线性组合ψ(x)=i=1qωiρ(x,ci)\psi(x)=\sum\limits_{i=1}^q\omega_i\rho(x,c_i)训练:step 1,确定神经元中心;step 2,采用BP算法确定参数。

  5. SOM网络
    最常用的聚类方法之一;
    竞争型学习(competitive learning) 是神经网络中一种常用的无监督学习策略,在使用该策略时,网络的输出神经元相互竞争,每一时刻仅有一个竞争获胜的神经元被**,其他神经元的状态被抑制。这种机制亦称"胜者通吃“原则。
    能将高维输入数据映射到低维空间(通常为二维) ,同时保持输入数据在高维空间的拓扑结构,即将高维空间中相似的样本点映射到网络输出层中的邻近神经元。
    SOM 网络中的输出层神经元以矩阵方式排列在二维空间中,每个神经元都拥有一个权向量,网络在接收输入向量后,将会确定输出层获胜神经元,它决定了该输入向量在低维空间中的位置.。SOM 的训练目标就是为每个输出层神经元找到合适的权向量,以达到保持拓扑结构的目的。