查看原文
其他

Stanford CS224n追剧计划-Week4(附上期精选作业/笔记/答疑/讨论)

夕小瑶 夕小瑶的卖萌屋 2021-02-05

一只小狐狸带你解锁NLP/ML/DL秘籍

简介「Stanford CS224n追剧计划」是由夕小瑶的卖萌屋发起的开源开放NLP入门项目,借助github和微信群为大家提供同期小伙伴打卡讨论、内容沉淀、作业笔记和FAQ共享、连线斯坦福等服务。关于该计划的详请见 这里

1  Github项目地址

https://github.com/xixiaoyao/CS224n-winter-together

2 Stanford CS224n追剧群

扫码添加小夕微信,回复口令「追剧」入群。




课程大纲


课程计划一共持续11周,进度如下:
  • week4:The probability of a sentence? Recurrent Neural Networks and Language Models/ Vanishing Gradients and Fancy RNNs【本周】



本期内容



The probability of a sentence? Recurrent Neural Networks and Language Models (语言模型与循环神经网络)


课后作业:无

 

Vanishing Gradients and Fancy RNNs(梯度弥散与RNN进阶)


注:感谢@gongle提供中文字幕


课后作业:https://github.com/xixiaoyao/CS224n-winter-together/tree/master/Assignments/assignment4


也可订阅号「夕小瑶的卖萌屋」后台回复【week4】获取本周课程ppt、官方笔记、参考资料和课后作业。



上周精选



week3优秀作业链接
@BobOfRiviahttps://github.com/xixiaoyao/CS224n-winter-together/tree/master/Assignments/assignment3/BobOfRivia

@Bryce:https://github.com/xixiaoyao/CS224n-winter-together/tree/master/Assignments/assignment3/Bryce

@Valar丶Morghulis:https://github.com/xixiaoyao/CS224n-winter-together/tree/master/Assignments/assignment3/MakiNaruto

 

week3优秀笔记

感谢群友@体重不到130不... 提供优秀笔记

完整笔记地址:

https://github.com/xixiaoyao/CS224n-winter-together/tree/master/FeatureNotes/geekhch

从这里👆查看群友@体重不到130不... 前三节的笔记哦~~~






课程学习笔记


梯度计算

1-output 和 n-input的函数(标量对向量求导)

m-outputs 和 n-inputs的函数(向量对向量求导)

求导结果就是jacobian矩阵:

链式法则:

只需要将复合函数每一层的jacobian矩阵相乘。


反向传播计算实例

对于如下这个简单的神经网络(其功能是对一个窗口给出一个逻辑回归评分),我们来通过反向传播计算参数梯度:


网络拆解:

现将网络的每一个复合函数都拆分开,那么top-down的计算如下:

局部误差信号和局部输入信号:

其中需要求导的参数为x, W, b, u。运用链式法则我们可以省略掉很多重复计算从而提高效率, 因为参数W, x, b都依赖前面两个复合函数。


这个公共部分通常按照如下表示,称为神经网络中的局部误差信号(local error signal), 这个名称很有意思, 把网络中的误差当做一个信号,从loss函数往输出层反向传播。这里的局部是指当前层。

p.s:小夕也觉得是对于每一层参数,有局部误差信号、局部输入信号、权重W, 对W求偏导的维度如下:

可以用来检查自己的工作,对于每一层的输入到输出, 相当于外积。



答疑汇总Q1: 为什么多层线性神经网络实质上是一层?      A: 感谢群友@体重不到130不... 提供回答多层线性神经网络(不加非线性激活函数)实际上是f=W3(W2(W1x)) = Wx,通过一层的线性神经网络就可以表示。
Q2:激活函数和线性函数之间的关系是什么?怎么理解非线性激活函数?

A: 感谢群友@张诗玉 提供回答

激活函数可以是线性的也可以是非线性的,但是因为在神经网络里用线性激活函数没有意义,所以一半说到神经网络里的激活函数都默认是非线性的。对 ax^3 + bx^2 + cx 这个函数,如果自变量是 x,那不是线性函数,如果自变量是 [x, x^2, x^3] 向量的话就可以看作这个向量的线性函数。


还在等什么,拉上身边的小伙伴,一起上车叭~~

扫码添加好友后,

回复【追剧】入群





夕小瑶的卖萌屋

_

关注&星标小夕,带你解锁AI秘籍

订阅号主页下方「撩一下」有惊喜

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存