目录

一、复习(BP算法)

二、训练模型的建议

三、参数设置内容

1、随机梯度下降(SGD)

2、激活函数的选择

(1)sigmoid

(2)tanh双曲正切函数

3、训练数集初始化

4、(w,b)的初始化

1)什么是梯度消失现象?

2)什么是梯度爆炸现象?

3)如何对w,b进行初始化来避免梯度消失?

>>>问题1:怎么从区间中均匀随机取值?

5、Batch Normalization(不懂)

6、目标函数的选择处理

1)加正则项

2)对目标函数进行改造

7、参数更新策略

(1)常规的更新

2)SGD的问题

​ 3)解决SGD问题的方法

8、训练建议

四、神经网络相较于SVM算法的优劣势



一、复习(BP算法)

二、训练模型的建议

第2点意思是从训练集中分出一部分样本来作为验证数集来验证模型,一般是将训练集分成多组,每一次一组数据集作为验证集,每一组数据集轮换作为验证数集,直到所有训练数据都被验证过为止,类似于《SVM——交叉验证》

三、参数设置内容

1、随机梯度下降(SGD)

 

2、激活函数的选择

(1)sigmoid

(2)tanh双曲正切函数

3、训练数集初始化

常用的初始化

4、(w,b)的初始化

1)什么是梯度消失现象?

答:当取sigmoid函数作为激励函数(上图fai函数)时,因为sigmoid函数的导数小于等于0.25,所以当w很小时,目标函数E对w的偏导后向传播不断地由输出层反向向输入层传播训练,随着神经网络层数的增多,导数很容易再传播的过程中变为0,使得新一轮的w,b无法进行更新,导致神经网络无法被优化,训练无法收敛,这称为梯度收敛问题。

不管是用sigmoid函数还是tanh函数作为激活函数,当激活函数的自变量很小或者很小时,都会出现激活函数的导数趋于0,这种现象会使得目标函数对参数w,b偏导即梯度趋于0,即梯度消失

一般情况下将w称为权重,b叫做偏置参数

以一个例子来说明:

以下摘自:《https://blog.csdn.net/junjun150013652/article/details/81274958》

当神经网络有很多层,每个隐藏层都使用Sigmoid函数作为激励函数时,很容易引起梯度消失的问题

我们知道Sigmoid函数有一个缺点:当x较大或较小时,导数接近0;并且Sigmoid函数导数的最大值是0.25

我们将问题简单化来说明梯度消失问题,假设输入只有一个特征,没有偏置单元,每层只有一个神经元:

我们先进行前向传播,这里将Sigmoid激励函数写为s(x):

z1 = w1*x

a1 = s(z1)

z2 = w2*a1

a2 = s(z2)

...

zn = wn*an-1 (这里n-1是下标)

an = s(zn)

根据链式求导和反向传播,我们很容易得出,其中C是代价函数

如果我们使用标准方法来初始化网络中的权重,那么会使用一个均值为0标准差为1的高斯分布。因此所有的权重通常会满足|wj|<1,而s‘是小于0.25的值,那么当神经网络特别深的时候,梯度呈指数级衰减,导数在每一层至少会被压缩为原来的1/4,当z值绝对值特别大时,导数趋于0,正是因为这两个原因,从输出层不断向输入层反向传播训练时,导数很容易逐渐变为0,使得权重和偏差参数无法被更新,导致神经网络无法被优化,训练永远不会收敛到良好的解决方案。 这被称为梯度消失问题。

2)什么是梯度爆炸现象?

以下摘自:《https://www.cnblogs.com/pinking/p/9418280.html》

对于目标函数,通常存在梯度变化很大的一个“悬崖”,在此处求梯度,很容易导致求解不稳定的梯度爆炸现象。

3)如何对w,b进行初始化来避免梯度消失?

>>>问题1:怎么从区间中均匀随机取值?

答:均匀随机数是服从均匀分布的随机

参考:《均匀分布的随机数》

均匀分布的概率密度函数:

产生均匀分布随机数的方法如下:

首先,由给定的初值x0,用混合同余法:

产生(0, 1)区间上的随机数yi。其中:a=2045,c=1,M=2^20;

然后,通过变换zi=a+(b−a)yi产生(a,b)区间上的随机数zi

使用:

/************************************a       ---给定区间下限b      ---给定区间上限seed   ---随机数种子
************************************/
double uniform(double a, double b, long int *seed)
{double t;*seed = 2045 * (*seed) + 1;*seed = *seed - (*seed / 1048576);t = (*seed) / 1048576.0;t = a + (b - a) * t;return(t);
}

5、Batch Normalization(不懂)

 

 

6、目标函数的选择处理

1)加正则项

2)对目标函数进行改造

 

7、参数更新策略

(1)常规的更新

2)SGD的问题

3)解决SGD问题的方法

 

8、训练建议

四、神经网络相较于SVM算法的优劣势

机器学习——人工神经网络之参数设置(BP算法)相关推荐

  1. 机器学习——人工神经网络之BP算法编程(python二分类数据集:马疝病数据集)

    目录 一.理论知识回顾 1.神经网络模型 2.明确任务以及参数 1)待估参数: 2)超参数: 3)任务 3.神经网络数学模型定义 1)激活函数 ​ 2)各层权重.阈值定义 3)各层输入输出定义 4.优 ...

  2. 机器学习——人工神经网络之后向传播算法(BP算法)

    目录 一.后向传播算法的本质--梯度下降法求局部极值 1.w迭代公式的合理性 二.后向传播算法的推导(以二层神经网络为例) 1.问题描述(创建目标函数loss函数,求参数) 2.求解参数的流程(四步曲 ...

  3. 机器学习——人工神经网络之发展历史(神经元数学模型、感知器算法)

    目录 一.神经元的数学模型 ​ 二.感知器算法(SVM算法前身) 1.目的 2.流程 >>>问题1:下图w和b的调整是什么意思? 3.算法的有效性验证 1)原算法 2)增广矩阵 3) ...

  4. 机器学习——人工神经网络之多层神经网络(多层与三层)

    目录 一.多层神经网络 1.多层神经网络数学模型 2.数学模型中的非线性函数fai 1)非线性函数fai存在的意义 2)非线性函数fai具体是什么? 3.多层神经网络与单层神经网络的区别与改进 1)单 ...

  5. 吴恩达|机器学习作业4.0神经网络反向传播(BP算法)

    4.0.神经网络学习 1)题目: 在本练习中,您将实现神经网络的反向传播算法,并将其应用于手写数字识别任务.在之前的练习中,已经实现了神经网络的前馈传播,并使用Andrew Ng他们提供的权值来预测手 ...

  6. 【机器学习基础】使用python实现BP算法

    用pytorch跟tensorflow实现神经网络固然爽.但是想要深入学习神经网络,光学会调包是不够的,还是得亲自动手去实现一个神经网络,才能更好去理解. 一.问题介绍 传说中线性分类器无法解决的异或 ...

  7. 神经网络参数个数计算,神经网络的参数设置

    如何通过人工神经网络实现图像识别 . 人工神经网络(ArtificialNeuralNetworks)(简称ANN)系统从20世纪40年代末诞生至今仅短短半个多世纪,但由于他具有信息的分布存储.并行处 ...

  8. python大战机器学习——人工神经网络

    人工神经网络是有一系列简单的单元相互紧密联系构成的,每个单元有一定数量的实数输入和唯一的实数输出.神经网络的一个重要的用途就是接受和处理传感器产生的复杂的输入并进行自适应性的学习,是一种模式匹配算法, ...

  9. RBF神经网络python实践学习(BP算法)

    续上一篇:RBF神经网络学习及实践 RBF神经网络求解方法 RBF网络中需要求解的参数为:径向基函数的中心.方差和隐层到输出层的权值. 对于基函数中心的选取方法主要有:随机选取.聚类选取.有监督学习选 ...

最新文章

  1. python exec
  2. go gdb调试 参数设置 减小执行文件体积
  3. can硬件滤波 stm32cubemx_STM32CubeMX系列教程12:控制器局域网络(CAN)
  4. PHP算法用redis crontab 进行异步邮件队列发送
  5. Spring Cloud-微服务架构集大成者
  6. 单片机定时器_单片机定时器/计数器基本原理
  7. java每轮排序结果_【算法队列面试题】面试问题:java选择题… - 看准网
  8. SAP License:MM模块审批策略问题
  9. win11开机音乐怎么设置
  10. JS的作用域和作用域链
  11. 用RichEditableText做的一个代码编辑器
  12. python——decimal模块
  13. 如何将网页另存为PDF
  14. 用微PE安装KALI LINUX到U盘,【U盘安装kali】U盘+kali+pe三合一教程
  15. “威海海鲜官方旗舰店”揭牌;每日黑巧新一代健康巧克力;麦咖啡全国门店秋季新品 | 食品饮料新品...
  16. MATLAB之M文件
  17. 研究生自然辩证法试题题库及答案
  18. OpenCvSharp人脸识别系统(视频中的人脸)
  19. php html5手机端多张图片上传,PHP+jQuery+html5实现图片选取裁剪上传(兼容手机上传)...
  20. 周易六十四卦——明夷卦

热门文章

  1. 确认类是否可以在运行期使用
  2. 第一个java程序helloworld —(2)
  3. DHCP服务器 出现的故障
  4. 如何给 mongodb 设置密码
  5. ios审核4.3被拒,快速通过IOS4.3问题
  6. 现在也是只能谢谢随笔了,但是在以后收货的日子里会有更多的感想记下
  7. C#= 栈模仿堆的操作
  8. 【转载】程序员技术练级攻略
  9. AppFabric Caching Admin Tool
  10. System variables, logging and the Execute SQL Task...(zz)