机器学习基础 之 神经网络

版权声明:转载需注明出处 https://blog.csdn.net/suoxd123/article/details/88900148


转自: https://www.zhenxiangsimple.com/2019/03/29/tech-ml-sjwl/


  不论神经网络的模型是否真的跟生物自身的神经网络相似,也不是特别重要,可以不用太关心,能大概理解它的一个构造思想即可。通常大家不会具体到要去通过代码实现神经网络模型,所以不必太在意其数学公式和具体计算,只需要关心其大概原理,本文就说说相关的一些概念。

M-P神经元模型

  基本原理就是将输入样本数据,通过赋予不同权值后,将各项输入值求和得到输出值,通过数学公式简单表示如下,其中 w i j w_{ij} 为神经元 x i x_i y j y_j 之间的权重。
y j = i = 1 k ( x i × w i j ) y_j=\sum_{i=1}^{k}(x_i\times w_{ij})

感知机

  感知机或者叫感知器是只有单层功能神经元的模型,是最简单的一种神经网络模型,相当于从输入直接到输出,没有中间隐含层神经元。

BP网络

  英文全称是error Back Propagation,中文意思是误差逆传播,其实顾名思义就是有信息可以从输出传递到输入端,而之前简单的感知机是只有输入到输出的计算。核心包含两部分,一部分是从输入到输出对误差的计算,另一部分从输出到输入对神经元之间权重和自身阈值的迭代,其算法流程如下:


输入:训练集 D = ( x k , y k ) k = 1 m D={(x_k,y_k)}_{k=1}^m , 学习率: η \eta
过程:

  1. 在(0,1)范围内随机初始化网络中所有连接权和阈值
  2. repeat
  3.   for all ( x k , y k ) D (x_k,y_k)\in D do
  4.     根据当前参数,计算当前样本输出 y k y_k
  5.     计算输出层神经元的梯度项 g j g_j
  6.     计算隐层神经元的梯度项 e h e_h
  7.     更新连接权 w h j , v i h w_{hj},v_{ih} 和阈值 θ j γ h \theta_j,\gamma_h
  8.   end for
  9. until 达到停止条件

输出:连接权与阈值确定的多层前馈神经网络


全局最小

  对于常规的神经网络模型是使用梯度下降算法进行迭代,但梯度下降可能就会导致达到局部最小值,就好像爬山时候在有多个山头的山脉里,第一次只是先爬到了一个矮的山丘,有一些策略可以跳出局部最优达到全局最优,如下:

  1. 使用多组不同的起始参数值
  2. 一定比例上接受次优解(模拟退火算法)
  3. 对梯度方向加入随机量,即使以及达到了梯度为零,那也因为随机量而还可以继续迭代

其它网络模型

  除了BP网络外,还有一些常用的算法如下,具体我也没了解过,供各位自行参考:

  1. RBF(Radial Basis Function) 径向基函数网络:单隐成前馈神经网络
  2. ART(Adaptive Resonance Theory)自适应谐振理论网络
  3. SOM(Self-Organazing Map)自组织映射网络
  4. 级联相关网络(Cascade-Correlation)
  5. Elman网络
  6. Boltzmann机
  7. 深度学习:很深层的神经网络

点击查看 (人工智能) 系列文章


猜你喜欢

转载自blog.csdn.net/suoxd123/article/details/88900148
今日推荐