斯坦福CS224n NLP课程【五】——反向传播和项目建议

关于习题集1的提示:理解数学和高维向量 设置断点并输入各种参数

 反向传播的第一种解释:

在上节课中,我们定义了这个目标函数 最终把它写成导数的形式 倒数写了两遍是为了说明不一定非要计算函数值 只要在前向传播中记录它的激活值 就可以了 所以把f(Wx+b)定义为隐含激活值然后就可以再次使用它来计算导数

 再增加一层hidden 层 f()这里使用sigmoid函数 最大化s这个分数 通过这个内积来计算最终分数 这里的向量均为列向量

 有关导数的计算 hadamard计算 就是对应的项相乘即可 最底层的δ^(3)

 

 底层δ^(2)传递的错误是什么? 从下而上的更新 基本上可以把它陈为局部梯度 当你乘上顶层传过来的任意误差信号 把它乘上局部误差信号 这里就是f prime然后你就会得到这一层的权重更新 或者更低一层的梯度的中间项

 

 最后的更新梯度为: 同时高层和底部的δ是很简单的

 反向传播的第二种解释:circuits

先看一个简单的loss函数 f=(x+y)z 就像面对复杂的神经网络一样 我们可以定义一些中间项 q=x+y f =qz 从最高层开始 df/df=1 df/dz=q q=x+y x=-2 y= 5 所以 df/dz=3 df/dq =z 假设z=-4 df/dq=-4 df/dy = df/dq*dq/dy=-4

 

 另一个复杂的例子:先前向传播计算最终结果,之后在从后向传播计算各自的局部梯度 例如 f(x)=1/x df/dx=-1/x^2 所以 -1/1.37^2 *1.00=-0.53

 也可以进行合并 可以将线路定义为其他形式 前向传播是计算你在测试时需要的结果 计算你的函数最终输出反向传播 就是用数据集训练模型要更新模型的时候计算所需要的梯度

 反向传播的第三种解释:the high-level flow graph 流动图

多条路径的链式法则

 具体的应用例子 不过现在都是可以自动的计算

 

反向传播的第四种解释:the delta error signals in real nets

将流动图和神经网络图结合在一起

 

 

 

Class Project

 先确定任务 再定义你的数据集 定义自己的评价指标 分割训练集 交叉试验集 测试集 最好这些集合 不重合

 

 先实现一个最简单的模型 可以是最简单的一元或者二元逻辑回归然后在你训练数据和开发数据上计算你的评价指标帮助你知道你是过拟合还是欠拟合

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值