看了文章《Understanding the difficulty of training deep feedforward neural networks》,里面提出了两种参数初始化的方法:

以及normalized initialization——xavier方法:

最近做实验,发现网络的初始化太重要!其实神经网络本身就是一个dark box, 但是每一个参数怎么设置怎么调节是最有技术的。

几种可行的初始化方式:

1. pre-training+fine-tuning

如:先使用greedy layerwise auto-encoder做unsupervised pre-training,然后再做fine-tuning。

① pretraining: 将神经网络中的每一层取出,构造一个auto-encoder做训练,使得输入层和输出层保持一致。在这一过程中,参数得以更新,形成初始值

② fine-tuning:将pre-train过的每一层放回神经网络,利用pre-train阶段得到的参数初始值和训练数据对模型进行整体调整。在这一过程中,参数进一步被更新,形成最终模型。

2. random initialization: np.random.randn(m,n)

最常用的方法,但是也有弊端,一旦随机分布选择不当,就会陷入困境

3. Xavier initialization:

基本思想:保证输入和输出的方差一致,这样就可以避免所有输出值都趋向于0。虽然刚开始的推导基于线性函数,但是在一些非线性神经元也很有效。

tf.Variable(np.random.randn(node_in,node_out))/np.sqrt(node_in)

比较适合tanh

4. He initialization

RELU中非常适合:

tf.Variable(np.random.randn(node_in,node_out))/np.sqrt(node_in/2)

5. bengio还提出了一种

tf.Variable(np.random.randn(node_in,node_out))/np.sqrt((node_in+node_out)/2)

其实3、4、5三种方法都是Xavier的变体。

6. BN 其实不是初始化方法了,是一种巧妙而粗暴的削弱bad initialization的影响。

bn层初始化参数_神经网络参数初始化方式相关推荐

  1. 神经网络的输出层有哪些_神经网络算法—总结篇

    本文是吴恩达<机器学习>视频笔记第57篇,对应第5周第7个视频. "Neural Networks Learning:--Putting it together" 前面 ...

  2. 深度神经网络调参数技巧,神经网络参数调节方法

    1.神经网络算法中,参数的设置或者调整,有什么方法可以采用 若果对你有帮助,请点赞. 神经网络的结构(例如2输入3隐节点1输出)建好后,一般就要求神经网络里的权值和阈值.现在一般求解权值和阈值,都是采 ...

  3. js有默认参数的函数加参数_函数参数:默认,关键字和任意

    js有默认参数的函数加参数 PYTHON开发人员的提示 (TIPS FOR PYTHON DEVELOPERS) Think that you are writing a function that ...

  4. powerbuilder TriggerEvent 参数_静态参数-输入失调电压

    对于运放的认知,初学者可能只记得虚短虚断.输入阻抗/开环增益无穷大,但是若要设计一个性能优良的放大器,熟悉运放其他一些参数指标必不可少.这些参数可分成两大类:静态参数和动态参数.静态参数主要描述运放的 ...

  5. python神经网络调节参数_神经网络进阶-用python实现一个完整的神经网络框架并在CIFAR10数据集上调参...

    上一个博客中讲解了用python实现一个简单的两层神经网络,我们是把所有的网络层都直接写在了类中.但是作为一个神经网络框架,网络的结构应该是可以由使用者自定义的,这样一来也就不用为每个网络结构都重写所 ...

  6. 吴恩达《机器学习》课程总结(8)_神经网络参数的反向传播算法

    Q1代价函数 (1)假设神经网络的训练样本有m个,每一个包含一组输入x和一组输出信号y,L表示神经网络的层数,Sl表示每一层的神经元个数,SL代表最后一层中处理单元的个数. 则代价函数为(同样不对θ0 ...

  7. 连接mysql所必须参数_数据库连接参数使用方法详解

    在设计数据库应用程序的时候,经常需要将一些信息从程序中独立出来,以保证程序的可移植性.其中最重要的信息就是数据库的连接参数. 在Delphi中,获得正确的数据库连接参数的方法十分简单,你只需要建立一个 ...

  8. python代码设置超参数_超参数调优总结,贝叶斯优化Python代码示例

    本文介绍超参数(hyperparameter)的调优方法. 神经网络模型的参数可以分为两类,模型参数,在训练中通过梯度下降算法更新: 超参数,在训练中一般是固定数值或者以预设规则变化,比如批大小(ba ...

  9. cmd.exe_参数_启动参数

    启动命令解释程序 Cmd.exe 的新范例.如果在不含参数的情况下使用,cmd 将显示操作系统的版本和版权信息. 语法 cmd [{/c | /k}] [/s] [/q] [/d] [{/a | /u ...

最新文章

  1. R语言ggpubr包ggsummarystats函数可视化分组条形图(自定义分组颜色、添加抖动数据点jitter、误差条)并在X轴标签下方添加分组对应的统计值(样本数N、中位数、四分位数的间距iqr)
  2. 不同于NLP,数据驱动方法与机器学习无法攻克NLU,原因有三点
  3. android中Listview的优化技巧
  4. hud 5929.Basic Data Structure
  5. python可以做什么系统-用python做推荐系统(一)
  6. 启明云端分享 | sigmastar SSD201开发板网口直连PC升级
  7. 双11技术分享 | “喵糖”背后的商业化流量投放算法
  8. 图管够!灌篮高手、女儿国…阿里日_这帮程序员太会玩了!
  9. 二、操作系统——用信号量机制实现进程互斥、同步、前驱关系(详解)
  10. 迭代器的简单应用实践
  11. 聚类效果评价——Silhouette Coefficient(轮廓系数)——内部评估标准(1)
  12. 腾讯安全发布十大产业互联网安全议题:聚焦5G、数据加密等
  13. java注解 @SuppressWarnings注解用法
  14. kmeans不足举例(code)
  15. matlab db函数_图灵斑图与反应扩散方程——Matlab的实现
  16. 基于avr atmega16单片机定时器的 pwm调宽调占空比以及调频率
  17. 四大金融资产管理公司的起起伏伏
  18. C# Socket简单例子(服务器与客户端通信)【转】
  19. 看完这篇文章,线上再遇到Jedis「Redis客户端」异常相信你不再怕了!
  20. 英语 语义分割_语义分割细度的文化成因与英语词语搭配

热门文章

  1. php单文件短链接,php实现的短网址算法分享
  2. 2020教资高频考点作文素材汇总
  3. USTC English Club Note20211110
  4. 一文详解SVM的Soft-Margin机制
  5. 协同滤波模型的推荐算法(ACM暑校-案例学习)
  6. Python类与对象技巧(1):字符串格式化、封装属性名、可管理的属性、调用父类方法
  7. DCFNET: DISCRIMINANT CORRELATION FILTERS NETWORK FOR VISUAL TRACKING
  8. 面绘制经典算法:MarchingCube实现(C++ OpenGl代码篇)
  9. 利用Sql Server2005发送邮件
  10. 谈谈网站设计时图片的使用