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

原文地址:https://www.cnblogs.com/coldyan/p/8309014.html