神经网络算法

本文介绍多层向前神经网络,其由输入层、隐藏层和输出层组成,理论上足够多隐藏层和训练集可模拟任何方程。还提及神经网络结构设计要点,如确定层数和单元个数等。介绍交叉验证方法和反向传播算法,最后列举了神经网络算法在非线性转换函数方面的应用。
  1. 多层向前神经网络(Multilayer Feed-Forward Neural Network)
    1.1 Backpropagation被使用在多层向前神经网络上
    1 .2 多层向前神经网络由以下部分组成:
    输入层(input layer), 隐藏层 (hidden layers), 输出层 (output layers)
    1.3 每层由单元(units)组成
    1.4 输入层(input layer)是由训练集的实例特征向量传入
    1.5 经过连接结点的权重(weight)传入下一层,一层的输出是下一层的输入
    1.6 隐藏层的个数可以是任意的,输入层有一层,输出层有一层
    1.7 每个单元(unit)也可以被称作神经结点,根据生物学来源定义
    1.8 以下成为2层的神经网络(通常输入层不算)
    1.8 一层中加权的求和,然后根据非线性方程转化输出
    1.9 作为多层向前神经网络,理论上,如果有足够多的隐藏层(hidden layers) 和足够大的训练集, 可以模拟出任何方程

在这里插入图片描述

  1. 神经网络结构的设计

使用神经网络训练数据之前,必须确定神经网络的层数,以及每层单元的个数
2.2 特征向量在被传入输入层时通常被先标准化(normalize)到0和1之间 (为了加速学习过程)
2.3 离散型变量可以被编码成每一个输入单元对应一个特征值可能赋的值
比如:特征值A可能取三个值(a0, a1, a2), 可以使用3个输入单元来代表A。
如果A=a0, 那么代表a0的单元值就取1, 其他取0;
如果A=a1, 那么代表a1de单元值就取1,其他取0,以此类推
2.4 神经网络即可以用来做分类(classification)问题,也可以解决回归(regression)问
2.4.1 对于分类问题,如果是2类,可以用一个输出单元表示,非黑即白(0和1分别代表2类)
如果多余2类,每一个类别用一个输出单元表示
所以输入层的单元数量通常等于类别的数量
2.4.2 没有明确的规则来设计最好有多少个隐藏层,根据实验测试和误差,以及准确度来实验并改进。

3 交叉验证方法(用来算一个算法的准确度)
主要思想:在一组数据中,变换取训练集和验证集的组合,来达到训练最大化的效果。
在这里插入图片描述

4.Backpropagation(反向传播算法)
4.1 通过迭代性的来处理训练集中的实例
4.2 对比经过神经网络后输出层预测值(predicted value)与真实值(target value)之间
4.3 反方向(从输出层=>隐藏层=>输入层)来以最小化误差(error)来更新每个连接的权重(weight)
4.4 算法详细介绍
输入:D:数据集,l 学习率(learning rate), 一个多层前向神经网络
输出:一个训练好的神经网络(a trained neural network)
4.4.1 初始化权重(weights)和偏向(bias): 随机初始化在-1到1之间,或者-0.5到0.5之间,每个单元有
一个偏向
4.4.2 对于每一个训练实例X,执行以下步骤:
4.4.2.1: 由输入层向前传送
在这里插入图片描述
在这里插入图片描述
上式表示隐藏层某个神经元的输入值
在这里插入图片描述
下式为求和及加上偏差之后的非线性组合过程,sigmold激活函数,activation function在这里插入图片描述
5.4.2.2 根据误差(error)反向传送
对于输出层:
在这里插入图片描述
其中T为真实的值,O为预测输出的值
对于隐藏层:
在这里插入图片描述
权重更新:
在这里插入图片描述
其中(l)为学习率,通俗就是变化的速率

偏向更新
在这里插入图片描述
4.4.3 终止条件
4.4.3.1 权重的调整值低于某个阈值
4.4.3.2 预测的错误率低于某个阈值
4.4.3.3 达到预设一定的循环次数

示例:

在这里插入图片描述
对于输出层:
在这里插入图片描述
对于隐藏层:
在这里插入图片描述
权重更新:
在这里插入图片描述
在这里插入图片描述
偏向更新:
在这里插入图片描述

神经网络算法的应用(一)
非线性转换函数
sigmoid函数(s形函数)

  1. 双曲函数 tanh(x)
  2. 求导 :
    在这里插入图片描述
    在这里插入图片描述
  3. 逻辑函数即下面的表达式
    在这里插入图片描述
    在这里插入图片描述

numpy库,基于矩阵的科学计算库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值