网资酷

用户名  找回密码
 立即注册
帖子
热搜: 活动 交友 discuz
查看: 82|回复: 0

BP神经网络(1)------基础篇

[复制链接]

2

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2023-1-1 16:59:25 | 显示全部楼层 |阅读模式
学习笔记嗷

一.概述

属于前向型神经网络,但名字容易产生误解:Backpropagation(反向传播:指误差的反向传播),BP只是学习训练的一个方法。属于有导师学习的方法,他要求激活函数必须可导(上一篇文章,给出了一些导数)。
二.学习算法

包括两大步骤:
1.传播(正向和反向):
①正向传播:把需要学习的样本输入到神经网络,经过每一层加权和,再经过激活函数的映射,得到输出的结果
②反向传播:把计算出来的输出跟理想目标的输出,两者计算误差,把误差再反向传播到每一层神经元中(BP神经网络认为,若误差较大,一定是学习过程中每一层神经元的权值设置的不合理导致,所以需要把误差返回去,根据误差来调整权值和阈值,这也是BP神经网络的基本思想)
2.权重的修正
利用梯度下降法的原则,权值修正要沿着最快的方向进行修正
<hr/>实际例子:四层的一个神经网络:一个输入层,两个隐含层,一个输出层


每一个神经元:包含两部分:加权和+映射


①从输入层到隐含层


②从第一个隐含层到第二个隐含层:此时把第一个隐含层看做输入


③从第二个隐含层到输出层


④将输出结果y与理想目标值z进行对比,计算误差:


这个例子里误差只是简单地做了差,实际中,经常使用误差平方和 \frac{1}{2}(z-y)^{2} ,系数二分之一是为了求导后, 系数为1.
⑤把误差返回到每一层神经元




<hr/>

<hr/>一直到第一层的权值,由梯度下降法,等于原来的权值+误差项(误差项由学习率,返回的误差,激活函数求导和输入四部分组成)






此时第一层的六个连接权值修正完,再修正后面的连接权值,不再详细阐述:






至此,第一次权重均修正完毕,之后循环往复,直至输出结果满足要求。
三.数据归一化

1.是什么

– 将数据映射到[0, 1]或[-1, 1]区间或其他的区间。
2.为什么

– 输入数据的单位不一样,有些数据的范围可能特别大,导致的结果是神经网络收敛慢、训练时间长。
– 数据范围大的输入在模式分类中的作用可能会偏大,而数据范围小的输入作用就可能会偏小。
– 由于神经网络输出层的激活函数的值域是有限制的,因此需要将网络训练的目标数据映射到激活函数的值域。例如神经网络的输出层若采用S形激活 函数,由于S形函数的值域限制在(0,1),也就是说神经网络的输出只能限制在(0,1),所以训练数据的输出就要归一化到[0,1]区间。
– S形激活函数在(0,1)区间以外区域很平缓,区分度太小。例如S形函数f(X)在参数a=1时,f(100)与f(5)只相差0.0067。
举个例子:


比如x1的范围是0-1,x2范围是100-1000,若w1,w2的范围均是0-1,那么加权和后,x1对应部分基本上就可忽略不计,所以调整权值时,w1的影响会被忽略掉,不利于后面学习的过程。
3.归一化算法

– y = ( x - min )/( max - min )    -------  [0,1]
– y = 2 * ( x - min ) / ( max - min ) - 1     --------  [-1,1]
四.重点函数


  • mapminmax 归一化函数



  • newff



  • train



  • sim


下一篇,举一个实际例子(代码篇)
回复

举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|网资酷

GMT+8, 2025-3-15 15:38 , Processed in 0.119459 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表