深度学习知识四

        (1)并行计算。并行计算是用来加深深度神经网络训练的最直接方式了。对于深度神经网络来说,最终得到的东西就是一个网络拓扑结构和各个节点上输入的全值矩阵。英伟达的CUDA提供了平台级产品架构,支持复杂的并行计算编程。关于硬件问题,可以找一些专业的公司和人员即可,我们把更多的精力放在针对业务的研究和改进中了。

       (2)随机梯度下降。当样本数据量巨大时,且每个样本的x维度也是数万到数百万不等,这种计算量需要花费大量时间,有一种方法就是随机梯度下降法。利用了统计学中的抽样概念罢了。可以用代表性的一部分样本,来覆盖所有样本,在对此进行归纳就可以了。这种理论可以应用于深度学习中的训练过程中的样本选择。在tensorflow里就是利用数量batch_size来给定,这就是最大的区别了。当然,这样做法会导致每次对权值w更新的时候不一定是向着损失函数最优化的方向前进,但是性价比比较高的方案。

        (3)梯度消失问题。如果Loss函数过早地不再下降,而精确度也过早地不再提高。解决办法有两个:选择适合的w和激励函数,但w怎么算合适呢?过大,就是梯度爆炸。选择合适的激励函数也是一种很好的办法。线性修正单元激励函数ReLU大家都读作热鲁函数。热鲁函数在工程经验中会大量使用,占到至少80%以上呢。

         (4)归一化问题。深度学习中也同样会用到归一化的问题。常见的一种叫Batch Normalization的归一化过程。加入批归一化可以在一定程度上避免过拟合的发生,加强繁华能力。

         (5)参数初始化问题。把整个网络中所有的w初始化成以0为均值、以某个很小的值为标准差的正态分布方式比较好。另外一种方法就是以0位均值,以1为方差的分布生成后除以当前层的神经元个数的算术平方根来获得并初始化。原理恐怕就是中心极限定理。

         (6)正则化问题。L1正则化、L2正则化。一般先不加入正则化项,随着调参慢慢加入。

         (7)超参问题。学习率的值取0.1、0.05、0.01、0.005等小值进行验证。

         (8)不唯一模型。每次训练模型都不一样。原因有:随机梯度下降的根源;权值网络初始化的时候也是随机性初始化的。不同训练过程不同神经元的权重会被初始化成不同的权重。尽管异构的网络,但同样能取得近似解。

         (9)过拟合问题。丢失或者临时关闭部分节点,即不输入也不输出。原则上是随机性的。方法就是一句执行语句即可。

          与深度学习相关技术领域或工程至少20年可干,加油吧,伙计们!!!

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值