• cs231n官方note笔记


    本文记录官方note中比较新颖和有价值的观点(从反向传播开始)

    一 反向传播

    1 “反向传播是一个优美的局部过程。在整个计算线路图中,每个门单元都会得到一些输入并立即计算两个东西:1. 这个门的输出值,和2.其输出值关于输入值的局部梯度。门单元完成这两件事是完全独立的,它不需要知道计算线路中的其他细节。”

    2 反向传播的编程中要学会分段计算,即在前向传播过程中把有用的中间变量缓存下来。

    3 输入的大小对梯度有巨大影响,因此数据预处理很重要。例如乘法门会将大梯度分给小输入,小梯度分给大输入,因此当输入变化时,需要调整学习率。

    二 神经网络介绍

    1 生物动机:神经网络模型与实际的生物神经有一定的相似之处,但只是一个粗糙的近似模型,通常生物中更复杂,表现在突触不是线性的权重,输出的峰值信号的精确时间点很重要,等等。

    2 “正则化损失从生物学角度可以看做逐渐遗忘,因为它的效果是让所有突触权重w在参数更新过程中逐渐向着0变化。”

    3 常见激活函数及其特点:

    sigmoid:饱和性导致梯度消失,非零中心性导致梯度下降低效。

    Tanh:仍然具有饱和性,但是输出是0中心的。

    Relu:计算简单,收敛比tanh快6倍。缺点是会死亡。

    Leaky ReLU,PRelu,elu等Relu变种:克服了Relu会死亡的缺点,但是效果不稳定。

    Maxout:是Relu和Leaky ReLU的一般化归纳,继承了Relu的优点,克服了Relu的缺点,缺点是参数量翻倍。

    选择激活函数的准则:“用ReLU非线性函数。注意设置好学习率,或许可以监控你的网络中死亡的神经元占的比例。如果单元死亡问题困扰你,就试试Leaky ReLU或者Maxout,不要再用sigmoid了。也可以试试tanh,但是其效果应该不如ReLU或者Maxout。”

     4 有研究证明,拥有至少一个隐层的神经网络就可以近似任何连续函数。

    参考文献:

    贺完结!CS231n官方笔记授权翻译总集篇发布  https://zhuanlan.zhihu.com/p/21930884

  • 相关阅读:
    【mysql】添加对emoji的支持
    【mysql】关于innodb中MVCC的一些理解
    【mysql】关于硬件方面的一些优化
    关于php中的spl_autoload_register
    【mysql】高可用集群之MMM
    【mysql】数据库使用的一些规范
    使用sysbench进行压力测试
    【mysql】关于乐观锁
    【linux】spinlock 的实现
    【mysql】关于悲观锁
  • 原文地址:https://www.cnblogs.com/coldyan/p/8309014.html
Copyright © 2020-2023  润新知