设计好神经网络结构以及loss function 后,训练神经网络的步骤如下:

  1. 初始化权值参数
  2. 选择一个合适的梯度下降算法(例如:Adam,RMSprop等)
  3. 重复下面的迭代过程:
    1. 输入的正向传播
    2. 计算loss function 的值
    3. 反向传播,计算loss function 相对于权值参数的梯度值
    4. 根据选择的梯度下降算法,使用梯度值更新每个权值参数

初始化

神经网络的训练过程是一个迭代的过程,俗话说:好的开始就是成功的一半,所以的权值参数的初始化的值对网络最终的训练结果有很大的影响。 过大或者过小的初始值,对网络收敛的结果都会有不好的结果。

所有的参数初始化为0或者相同的常数

最简单的初始化方法就是将权值参数全部初始化为0或者一个常数,但是使用这种方法会导致网络中所有的神经元学习到的是相同的特征,会导致网络退化!

假设神经网络中只有一个有2个神经元的隐藏层,现在将偏置参数初始化为:bias=0,权值矩阵初始化为一个常数α。 网络的输入为(x1,x2),隐藏层使用的激活函数为ReLU,则隐藏层的每个神经元的输出都是。 这就导致,对于loss function的值来说,两个神经元的影响是一样的,在反向传播的过程中对应参数的梯度值也是一样,也就说在训练的过程中,两个神经元的参数一直保持一致,其学习到的特征也就一样,相当于整个网络只有一个神经元。

过大或者过小的初始化

如果权值的初始值过大,则会导致梯度爆炸,使得网络不收敛;过小的权值初始值,则会导致梯度消失,会导致网络收敛缓慢或者收敛到局部极小值。

如果权值的初始值过大,则loss function相对于权值参数的梯度值很大,每次利用梯度下降更新参数的时,参数更新的幅度也会很大,这就导致loss function的值在其最小值附近震荡。

而过小的初值值则相反,loss关于权值参数的梯度很小,每次更新参数时,更新的幅度也很小,着就会导致loss的收敛很缓慢,或者在收敛到最小值前在某个局部的极小值收敛了。

Xavier初始化和He初始化(MSRA)见下连接

https://www.cnblogs.com/wangguchangqing/p/11013698.html

权值初始化 - Xavier和MSRA方法相关推荐

  1. caffe中权值初始化方法

    参考:https://www.cnblogs.com/tianshifu/p/6165809.html 首先说明:在caffe/include/caffe中的 filer.hpp文件中有它的源文件,如 ...

  2. 深度学习--权值初始化

    什么是权值初始化 在神经网络的前向传播的过程中,需要设置输入到输出的权重. 为什么要权值初始化 正确的权值初始化可以促进模型的快速收敛,不正确的权值初始化可能使得模型在前向传播是发生发生信息消失,或在 ...

  3. PyTorch框架学习十一——网络层权值初始化

    PyTorch框架学习十一--网络层权值初始化 一.均匀分布初始化 二.正态分布初始化 三.常数初始化 四.Xavier 均匀分布初始化 五.Xavier正态分布初始化 六.kaiming均匀分布初始 ...

  4. Pytorch —— 权值初始化

    1.梯度消失与爆炸 这里使用一个三层的全连接网络,现在观察一下第二个隐藏层W2W_2W2​的权值的梯度是怎么求取的. 根据链式求导法则可以知道,W2W_2W2​的求导如下: H2=H1∗W2\math ...

  5. Lecture6:激活函数、权值初始化、数据预处理、批量归一化、超参数选择

    目录 1.最小梯度下降(Mini-batch SGD) 2.激活函数 2.1 sigmoid 2.2 tanh 2.3 ReLU 2.4 Leaky ReLU 2.5 ELU 2.6 最大输出神经元 ...

  6. 权值初始化的常用方法

    为什么要进行权值初始化 深度神经网络经常会遇到梯度消失或者梯度爆炸现象.为什么会出现这种现象呢?熟悉链式求导法则的大家都知道,梯度是一些量的连乘,这些当中最重要的就是模型的输出.如果这时,模型的输出过 ...

  7. Tensorflow:BP神经网络权值初始化

    一.Tensorflow入门 1.计算图: 每一个计算都是计算图上的一个结点,而节点之间的边描述了计算之间的依赖关系. 支持通过tf.Graph生成新的计算图,不同计算图上的张量和运算不会共享. Te ...

  8. 3.6 权值初始化-机器学习笔记-斯坦福吴恩达教授

    权值初始化 0值初始化 在逻辑回归中,我们通常会初始化所有权值为 0 ,假如在如下的神经网络也采用 0 值初始化: 则可以得到: a1(1)=a2(2)a^{(1)}_1=a^{(2)}_2a1(1) ...

  9. 卷积核权值初始化_Pytorch卷积层手动初始化权值的实例

    由于研究关系需要自己手动给卷积层初始化权值,但是好像博客上提到的相关文章比较少(大部分都只提到使用nn.init里的按照一定分布初始化方法),自己参考了下Pytorch的官方文档,发现有两种方法吧. ...

最新文章

  1. pycharm专业版使用jupyter notebook并且进行调试
  2. C# MD5加密工具方法
  3. 修改归档模式的存档终点 archive log list
  4. Oracle启用、禁用角色
  5. jvm 参数-server_JVM选项:-client vs -server
  6. 「雕爷学编程」Arduino动手做(36)——WS2812B 4位彩灯模块
  7. 一张图读懂哔哩哔哩2019Q1财报
  8. python从入门到精通需要多久-python学习从入门到精通要多久
  9. 大学生恋爱交友软件03(小幸运)——痛点分析
  10. Oracle 数据库常用操作总结一之用户的创建、删除和赋权
  11. 基于Java的卡诺图化简
  12. 关于方法A调用方法B的事务控制问题
  13. java图片无损压缩_java无损压缩Thumbnailator(google)
  14. 百度智能云“护航”度小满金融 实现“两地三中心项目”落成
  15. 苏州市区公积金与园区公积金新政策-乙类对比 (包括住房公积金)
  16. Python使用Eel和HTML开发桌面应用
  17. 骨传导耳机到底怎么样,五款好用的骨传导耳机推荐
  18. 终端命令-文件操作、编辑操作
  19. Ubuntu 18.04 Mellanox ConnectX 网络适配器驱动安装
  20. python历史波动率_【BSM模型】用实际市场数据计算隐含波动率并验证波动率微笑...

热门文章

  1. win10下装win7双系统_B360主板装win7+win10双系统失败经历分享
  2. 比例阀测试仪RT-T101
  3. v18.02 鸿蒙内核源码分析(源码结构) | 内核文件各自含义 | 百篇博客分析HarmonyOS源码
  4. html5黑板源码,HTML5/Canvas黑板涂鸦动画
  5. froyo 新的多媒体框架 stagefright与opencore对比
  6. oracle预收核销,Oracle EBS AP取消核销
  7. 声网Agora Lipsync技术剖析:通过实时语音驱动人像模拟真人说话
  8. 我的世界服务器回到死亡位置,我的世界返回死亡地点指令是什么
  9. 问题分析报告--简单SQL启动MR
  10. 国家市场监督管理总局公布《国家标准管理办法》