NeuralNetworks(BP算法的实现)

***神经网络 (BP算法的实现)***

1.基础知识

1.1神经元模型

神经网络是由具有适应性的简单单元组成的广泛并行互连的网络

M-P神经网络模型

1.2感知机与多层网络

Perceptron 感知机
感知机只有两层神经元组成,而且只有输出层是M-P神经单元也就是功能神经元

1.3 BP算法(error Back Propagation) 误差逆传播算法,也叫反向传播算法

PesudoCode:
      输入:训练集
           学习率
          过程:
          1.在(0,1)范围内随机初始化网络中所有的连接权值和阈值
          2.repeat
          3. for all (Xk,Yk) do
          4.      根据当前参数和公式,计算当前样本的输出
          5.      根据公式计算出输出层神经元的梯度项
          6.      根据公式计算隐层神经元的梯度项
          7.      根据公式更新连接权和阈值
          8.  end for
          9. until 达到停止条件
          输出:连接权与阈值确定的多层前馈神经网络

注意区分标准BP算法,和累积BP算法(accumulated error backpropagation)
累积BP算法:是将训练集进行读取一遍后才进行更新
标准BP算法:针对一个训练样例进行更新

BP算法容易过拟合,解决过拟合的策略

    早停(early stopping):将数据集分为训练集和验证集,训练集用来计算梯度,更新连接权和阈值.
                 验证集用来估计误当训练集误差减小,但验证集误差升高则停止训练.
    正则化(regularization):在目标误差函数增加一个用于描述网络复杂度的部分
1.4 各种模型的介绍
ART网络,SOM网络,结构自适应网络(级连相关网络),Elman网络(recursive neural networks)递归神经网络
Blotzmann机
还有最牛的深度学习(Deep learning)

2.编程实现BP算法,在西瓜数据集3.0上用算法训练一个单隐层神经网络

# input()函数
# 将西瓜数据集3.0进行读取
def input():
    """
    @param  : none or filepath
    @return : dataSet,dataFrame using pandas
              Random double or random.uniform()
    """
    try:
        import pandas as pd
    except ImportError:
        print("module import error")

    with open('/home/dengshuo/GithubCode/ML/CH05/watermelon3.csv') as data_file:
        df=pd.read_csv(data_file)
    return df
# learningRatio()函数
# 初始化函数的学习率
def learningRatio():
    """
    @ return : learningRatio 
    """
    try:
        import random
    except ImportError:
        print('module import error')
    learningRatio=random.uniform(0,1)
    return learningRatio
ratio=learningRatio()
print(ratio)
input()
0.4410998028070725
.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }
编号 色泽 根蒂 敲声 纹理 脐部 触感 密度 含糖率 好瓜
0 1 青绿 蜷缩 浊响 清晰 凹陷 硬滑 0.697 0.460
1 2 乌黑 蜷缩 沉闷 清晰 凹陷 硬滑 0.774 0.376
2 3 乌黑 蜷缩 浊响 清晰 凹陷 硬滑 0.634 0.264
3 4 青绿 蜷缩 沉闷 清晰 凹陷 硬滑 0.608 0.318
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值