WDK李宏毅学习笔记第四周01_Unpervised Learning


摘要

本章学到了无监督学习即只需要给机器input,机器就可自己学习,无监督学习的关键就是如何让机器得到合适的word vector,有三种方法分别是1-of-N ENcoding、Word Class、Word Encoding,前两种表示word vector时都会或多或少的丢失word之间的联系,最合适的是Word Encoding。有两种体系可以实现Word Encoding,第一种是Count based,它主要是通过共现矩阵来求得word vector,第二种是Prediction based,它的做法就是将句子的一个或者多个word vector(1-of-N Encoding)作为输入,将这些word的下一个word vector(1-of-N Encoding)作为label,反复迭代进行训练,训练好的model可以预测下一个word。还可以通过这个model间接实现类似翻译、影像分类等功能。


一、如何用vector表示word

1. 1-of-N Encoding

First: 可用1-of-N Encoding(独热码)来表示,如下图,每一个vector的维度,都代表一个word。
1-of-N Encoding有个大的缺点,就是没办法通过vector找到各个word之间的联系。
在这里插入图片描述

2. Word Class

Word Class是建立Class,将相同类型的word放在同一Class中,这样就可解决1-of-N Encoding的部分问题,但是光用Class是不够的,光用Class会丢失一些联系,如下图class1和class3都是属于生物的联系会丢失。
在这里插入图片描述

3. Word Embedding

把每一个word都投映到high dimension space中,这个space每一个dimension可能都有其特别含义,如某个维度代表着会动的和不会动的区别。在Word Embedding中,有联系的Word,距离会比较近,这样就可解决联系丢失的问题了。
在这里插入图片描述

二、如何做Word Embedding

就是让mechine阅读大量的文章,用一定的办法让它就知道每一个word的vector长什么样子,我们没有给它labels,所以这是一个无监督的学习。用什么方法让它知道word 的 vector,有以下两种:

1. Count based

如果word wi和wj经常一起出现,那么就让Vector(wi)和Vector(wj)比较接近。这个方法的原则就是假设N是wi和wj是它们出现在同样document的次数,我们希望找一组Vector(wi)和Vecter(wj)使得它们的内积与N越接近越好。

2. Prediction based

根据前面的一个或者多个word,预测下一个word是什么。它的neural network的input是word的vector,output是某一个word的概率。

2.1 Prediction based—Sharing Parameters

在training时,同时input多组word的vector时,为了减少参数及保证相同的word的vector经过wi,wj的转换后结果相同,所以需要让它们共用w,即wi=wj,为了保证更新参数后wi=wj,在参数更新时,如下图右下角所示:
在这里插入图片描述

2.2. Prediction-based—Training

在Training模型时,把一句话中的一个或多个word的vector作为Input,把这些word的下一个词作为label,如此反复迭代,完成训练,如下图所示,让前两个词”潮水”、”退了”,作为Input,”就”作为label,然后在让”退了”、”就”作为Input,”知道”作为label,反复迭代。
在这里插入图片描述

2.3. Prediction-based—Various Architectures

上面只是Prediction-based最基本的型态,还有种种变形,如下:
CBOW: 拿某一个句子两边的word来predict中间的word。
在这里插入图片描述
Skip-gram: 这个和CBOW相反,是拿句子中间的word来predict周围的word。

三、Multi-lingual Embedding

如果有一个中文和英文的corpros,将它们分别train一组中文的word vector和英文的vector,会发现它两没有任何关系,它们每一个dimension对应的含义是没有关系的,可是如果你将它们的一部分中英文词汇拿出来train一个模型,使得中英文vector对应在同一个space,例如使”加大”对应”enlarge”、”下跌”对应到”fall”等,再用这个模型,就可将corpros中其它的中文vector和英文vector相互对应,就可以实现类似翻译的功能。
在这里插入图片描述

四、 Multi-domain Embedding

这个Embedding不止限于文字,也可以对影像做Embedding,例如,先找一组word vector,比如dog、horse、auto、cat等的vector,这时候我们learning一个model,这个model的input是一张图片,output是一个跟word vector一样维度的vector,这时候我们只需要将一部分图片进行训练使得狗的图片对应dog的word vector,车的图片对应car的word vector这样,这时候,当新的图片加入时,如猫的图片,用以上训练好的model时,会发现输出的vector正好是在cat的word vector周围。这个办法能解决影像分类时mechine很难处理没见过的image的问题。
在这里插入图片描述

展望

本章主要学习了无监督学习的基本原理及一些运用,后续还需要加强代码实现细节方面的理解,如在做Predict based的时候,input 时word的vector是独热码形式的,如果用count based得到的word vector作为Predict based时的word vector效果会是怎样的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值