Stanford CS224N Lesson5 CNN

Notes

1. history

  • 上一次流行 1980s & 1990s(backpropagation alorithm)

allowed training neural nets with hidden layers

只有一层

  • 2006 Greedy Layer-Wise Training of Deep Neural Networks-Yoshua,Bengio……

当时发现深层的比不上浅层的

2. solution——introduction of new ideas and tweaks of things

doing better regularization of nural nets

L2 regularization:

\[J(\theta)=\frac 1 N \sum_{i=1}^N -\log(\frac {e^{f_{y_i}} {\sum_{c=1}^C e^{f_c}}}) + \lambda \sum_k \theta_k^2 \]

image

有人会说过拟合,经典角度来讲这是一场灾难,因为会不适配其他数据,但是对于现在的大模型,这不是灾难。

只要做好正则化,就能够适应不同的数据

dropout (算是 贝叶斯(基于数据统计来对于每个特征进行加权)和逻辑回归的中间产物)

训练时,随机丢弃一些输入(变成 \(0\))

让模型能够充分利用每一个输出,而不是利用某一个输入向量

测试时,不删除任何东西,但是重新调整比例来弥补之前删除

防止特征自适应
可以认为是一种特征依赖正则化

如何用向量实现?只需要对于单位矩阵对角线的 \(1\) 的其中几个变成 \(0\) 即可

参数初始化(Parameter Initialization)——权重设置为非常小的随机数

如果初始参数不是随机数,那么在开始的时候就会有对称性,可以考虑下图凹下去的中轴线

image

在这条线上的所有点的导数都不会有横向分量,于是训练就会被卡在这条线上

感性理解就是,如果一开始矩阵不随机化,那么一个矩阵对所有向量上的变量的操作都是相同的,由此一来我们得到的不是多个特征,而是一个特征的多个备份

e.g. Xavier initialization、layer normalization

optimizers 优化器

随机梯度下降,理论上可以很好地解决问题,但是前提是我们需要有很好的学习率的调度

image

  • convex optimization 凸优化
  • momentum & nesterov acceleration

实现:

  • 对于每个参数,保存过去的这个参数的梯度值,通过这个指导学习率的调整(Adagrad)
  • 从最小的学习率开始(例如 0.001)

作用:

  • 提供安全边界
  • 自动并且更好地调整学习率

3. language models

  • Language Modeling is the task of predicting what words comes next

\[P(x^{(t+1)}|x^{(t)},\dots,x^{(1)}) \]

\[P(x^{(1)},\dots,x^{(T)}) = \prod_{t=1}^T P(x^{t}|x^{(t-1)},\dots,x^{(1)}) \]

应用:

  • 传统手机输入法
  • 浏览器弹出

n-gram language model(Claude Shannon)

\[P(x^{(t+1)}|x^{(t)},\dots,x^{(1)})=\frac {P(x^{(1)},\dots,x^{(t+1)})}{P(x^{(1)},\dots,x^{(t)})} \]

  • 我们可能有个单词没有出现在句子过(分子为 \(0\)),会导致答案为 \(0\)

solution: 每个计数加一个小增量

  • 分母没有出现过?

回退,缩短 t 的大小(缩短推测中前文的长度)

\(n=5\) 为最优状态极限

限制:

  • 计数存储

fixed-window neural language model

improvements:

  • No sparsity problem
  • 不需要学 \(n\) 元组

problems:

  • 窗口太小了
  • 位置略微不同的时候,意思大致相同,但是却需要重新训这个位置的网络,效率低下

recurrent neural networks(循环神经网络)

架构类型:

  • word2vec(编码器-解码器)
  • feed forward network/fully connected layer classic neural network
  • RNN

有一组权重,会被应用到文本中的一系列位置,同时一点一点更新参数

image

disadvantages:

  • computations are slow(for loop)
  • 记忆长度,越早的信息越模糊(遗忘速度太快了)

训练:

  • 损失函数:\(J^{(t)}(\theta) = CE(y^{(t)},\hat y^{(t)}) = -\sum_{w\in V} y_w^{(t)}\log\hat y_w^{(t)} = -\log \hat y^{(t)}_{x_{t+1}}\)

\[J(\theta) = \frac 1 T \sum_{t=1}^T J^{(t)}(\theta)=-\frac 1 T \sum_{t=1}^T\log \hat y^{(t)}_{x_{t+1}} \]

backpropagation(反向传播):

因为长文本的损失太过消耗算力,所以我们一般对文本切片(100 words)

我们如何计算 \(W_h\) 函数的偏导数?

  • 将不同的位置的 W_h 视为不同的变量,最后把所有偏导相加
    image
posted @ 2026-08-24 13:57  ricky_lin  阅读(14)  评论(0)    收藏  举报