神经网络算法(Neural Network)

1.背景:
   1.1以人脑中的神经网络为启发,历史上出现过很多不同版本
   1.2最著名的算法是1980年的backpropagation
2.多层向前神经网络(Multilayer Feed-Forward Neural Network)
   2.1Backpropagation被使用多层向前神经网络上
   2.2多层向前神经网络由以下部分组成:
        输入层(input layer),隐藏层(hidden layers),输出层(output layers)
        
  2.3 每层由单元(units)组成
  2.4 输入层(input layer)是由训练集的实例集的实例特征向量传入
  2.5 经过连接结点的权重(weight)传入下一层,一层的输出是下一层的输入
  2.6 隐藏层的个数是可以是任意的,输入层有一层,输出层有一层
  2.7 每个单元(unit)也可以被称作神经结点,根据生物学来源定义
  2.8 一层中加权的求和,然后根据非线性方程转化输出
  2.9 作为多层向前神经网络,理论上,如果有足够多的隐藏层(hidden layers)和足够大的训练集,可以模拟出任何方程
3.设计神经网络结构
  3.1 使用神经网络训练数据之前,必须确定神经网络的层数,以及每层单元的个数
  3.2 特征向量在被传入输入层时通常被先标准化(normalize)到0和1之间(为了加速学习过程)
  3.3 离散型变量可以被编码成每一个输入单元对应一个特征值可能赋的值
        比如:特征值A可能取三个值(a0,a1,a2),可以使用3个输入单元来代表A。
                  如果A=a0 ,那么代表a0的单元值就取1,其他取0
                  如果A=a1,那么代表a1de单元值就取1,其他取0,以此类推
  3.4 神经网络即可以用来做分类(classification)问题,也可以解决回归(regression)问题
       3.4.1 对于分类问题,如果是2类,可以用一个输出单元表示(0和1分别代表2类)
                所以输入层的单元数量通常等于类别的数量
       3.4.2 没有明确的规则来设计最好有多少个隐藏层
               3.4.2.1 根据实验测试和误差,以及准确度来实验并改进
 4.交叉验证方法(Cross-Validation)
      
       K-fold cross validation
       4.1 将数据集分成k份
       4.2 每次运算取其中一份(依次)作为测试数据集,其它k-1份作为训练数据集
       4.3 每次训练好数据模型后根据测试集计算出准确度evaluation
       4.4 最终计算出的k个准确度的平均值,求出最终准确度作为验证结果
5.Backpropagation算法
  5.1 通过迭代性的处理训练集中的实例
  5.2 对比经过神经网络后输入层预测值(predcted value)与真实值(target value)之间差异
  5.3 反方向(从输出层=》隐藏层=》输入层)来以最小化误差(error)来更新每个连接的权重(weight)
  5.4 算法详细介绍
        输入:D:数据集,l:学习率(learning rate),一个多层向前神经网络
        输出:一个训练好的神经网络(a trained neural network)
       5.4.1 初始化权重(weight)和偏向(bias):随机初始化在-1到1之间,或者-0.5到0.5之间,每个单元有一个偏向
       5.4.2 对于每一个训练实例X,执行以下步骤:
              5.4.2.1:由输入层向前传送
                        
                        
               5.4.2.2 根据输出层计算出误差值(error)反向更新权重值、偏向值
                          对于输出层:
                                             
                          对于隐藏层:
                                                
                          权重更新:
                                                
                          偏向更新:
                                               
               5.4.3 终止条件(阈值)
                      5.4.3.1 权重的更新低于某个阈值
                      5.4.3.2 预测错误率低于某个阈值
                      5.4.3.3 达到预设一定的循环次数
6.Backpropagation算法举例
                  

              对于输出层:
                           
              对于隐藏层:
                             
              权重更新:
                               
              偏向更新:
                                
              计算如下
                  

About the Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注