台大DL-week2笔记

用心努力

  • 反向传播
  • 语义表达
  • 序列建模

一、反向传播

1、前情提要

神经网络的模型:
y=f(x)=σ(WL...σ(W2σ(W1x+b)))
不同的W,b对应着不同的模型,重新定义模型为 f(x,θ)
θ={W1,b1,W2,b2,...WL,bL}
Wl=wl11wl21...wl12wl22............
bl=bl1bl2...
最好的模型参数: θ=argminθC(θ)
θ0 开始迭代:

θ1θ0ηC(θ0)θ

θi+1θiηC(θi)θ
Mini-Batch SGD

现在模型,损失函数,算法都有,那要怎么求偏导,太麻烦了,引出backprogation方法。

2、引言

a) 什么是forward progation呢?

信息从input X通过神经网络流向output Y的过程就是forward progation,所以在训练的时候,有一层一旦发生变化就会影响下一层,直到影响到最后的输出 C(θ)
总得来说就是从Input来,最终通过网络层流向最后output。

b) 什么是back progation呢?

刚好和forward相反,信息从最后的output C(θ) 回推到前面,用于计算偏导。

c) chain rule

Δw Δx Δy Δz
zw=zyyxxw

公式太长了不写了。记点重要的。

C(θ)wlij=C(θ)zlizliwlij
δli C(θ)zli 表明损失函数往上传播给第l层的相应梯度。每一层都有相应的该值。
有效率的方法应当是先算出最后层梯度然后一个往前推。

这里写图片描述

算法:

  • 从L到1来算 δ
  • 初始化:计算 δL δLi=CzLi=Cyiσ(zLi) ,其中 Cyi 由损失函数决定。 δL=σ(zLi)Cy
  • 基于 δl 计算 δl+1 : δli=σ(zi)Σwl+1kiσl+1k δl=σ(zl)(Wl+1)Tδl+1

小结:
这里写图片描述

这里写图片描述

二、语义表达

我们怎么表示文字上的语义呢?
1、什么叫语义?

  • 由词语、短语等表达的想法
  • 一个人用言语,叹息等来表达的想法
  • 写作、艺术作品等要表达的想法

word representations:捕获词语之间的关系

  • Knowledge-based representation
  • Corpus-based representation
    • Atomic symbol
    • Neighbors
      • High-dimensional sparse word vector
      • Low-dimensional dense word vector
        • Method 1 – dimension reduction
        • Method 2 – direct learning

2、Knowledge-based representation

非常传统的word representation。Hypernyms (is-a上位词) relationships of WordNet,类似于分类吧。

这里写图片描述

这种方法有很多问题:

  • 每天都有很多新的词汇诞生,这种方法很不实际
  • 太过主观
  • 注释开销太大
  • 难于计算词语间的相似性

3 、Atomic symbol

one-hot编码不就是这样的嘛。
这种方法也有问题:难于计算词语间的相似性。因为从设计层面讲,两个词语就已经完全独立的了。

4、 High-dimensional sparse word vector

Neighbors这种方法类似于做阅读理解,根据上下文去猜这个词到底什么意思,因此将统计的邻近词个数作为非常传统的word representation。Hypernyms (is-a上位词) relationships of WordNet,类似于分类吧。可以构造一个co-occurrence matrix。
有两种Neighbors方法:

  • full document:从全文构造co-occurrence matrix,给出一般主题,像财经,科技,政治等与词语之间的关系
  • windows:从一定段落构造co-occurrence matrix,给出语义、语法等与词语之间的关系,焦点在这个词的本身

co-occurrence matrix的例子:

这里写图片描述

co-occurrence matrix可以看做:词语(n样本个数)*邻近词(m特征数)
这种方法也有很多问题:

  • 词越多矩阵递增
  • 高维度
  • 注释开销太大
  • 矩阵稀疏
    总的来说,产生了一个值相对较多,但分布十分散乱的矩阵,这种矩阵计算复杂度要增加。

5、 Low-dimensional dense word vector – dimension reduction

利用SVD分解co-occurrence matrix,然后取前K个奇异值和其相应的特征向量,再重新相乘并相加,构造一个由前K个重要奇异值组成的co-occurrence matrix,这样矩阵就能从High-dimensional sparse变成Low-dimensional dense。

这里写图片描述

这种方法也有很多问题:

  • 一次SVD的复杂度为 o(mn2)
  • 每个新的词汇诞生,都要SVD一次

6、Low-dimensional dense word vector – direct learning

既然先学到一个high-dimensional的路那么不好走,那就直接学一个Low-dimensional的word vectors吧。
具有代表性的方法有word2vec和glove,统称word embedding词嵌入。

word2vec的目的:能够预测给定词的周围会出现的词语。
word2vec的优点:快,能轻易的加入新词汇或新句子。
word2vec的目标函数:最大化这个给定词汇,周围文中出现词分布的似然率
这里写图片描述

这里写图片描述

利用相似度来表征center word周围的outside word出现的条件概率。相似度有很多理解,不能太片面,比如说,给定一组词汇也就是context,判断它的主题,那么日本、中国和守卫、南海的相似度就很大,但判断的是词性,相似度就变小了。相似度是由内积再求平均得到,该相似度的定义也很形象了。相似度来代表某词出现的概率,将已有context结构的似然率最大化。
因此模型也是动态的,会随着context的不同,model要随时更新。神经网络的原理刚好符合,信息前向传播,误差后向传播,信息不同,模型不同。

三、序列建模

a) network能随便选?

network也是需要根据input和output的domain来进行选择的,并且很影响最后的效果

b) 长一点的语句怎么表达?

那么我们肯定是希望把这个长一点的语句也映射到之间建立的word vector 空间里去。

c) Word Embedding的优点

词库可以是unlabel的,但是最后能为每一个词生成一个vector来表征语义信息。这个vector也是很有用的:

  • 计算词的相似度
  • 为NLP打基础
  • 实时更新

d) Sequence Modeling

  • 一般方法: average, sum
  • Neural combination
    • Recursive neural network (RvNN)
    • Recurrent neural network (RNN)
    • Convolutional neural network (CNN)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值