http://christophm.github.io/interpretable-ml-book/师兄推荐的一本书:Interpretable Machine Learning
¥
支付方式
请使用微信扫一扫 扫描二维码支付
请使用支付宝扫一扫 扫描二维码支付
http://christophm.github.io/interpretable-ml-book/师兄推荐的一本书:Interpretable Machine Learning
language is hard:语言有很多规则,要分语境,时态,要考虑上下文
解决方案:定义语法规则(不考虑机器学习),时态规则,语义分类,以及偏好
BOW:词袋模型
CBOW:连续词袋模型
了解nlp,自然语言处理中自然的意义
希望ai研习社能找到机器学习的nlp课程
以对nlp内容打好基础
文本分类的简单问题
对每个类别进行打分 取最高分作为分类
构建函数提取组合特征
cbow连续词袋 特征组合应用
基本上这个模型是:取特征加和特征 成权重矩阵+bias 转化成得分
Deep CBOW
模型(提取组合特征 一个消极和积极的单词是否出现在一个句子里)
一句话中特征加和变成特征向量但不是使用特征向里来预测 而是通过一个几层的非线性函数运行这个模型然后基于多重特征层乘权重矩阵在加上偏差求出得分
ps:快通过啊 需要解锁卡看下一节
随堂笔记:
1. 语法规则和语义理解的问难
2. 特征词的存在: 例:情感分类--love, hate;否定词;
3. 词袋模型 -> 连续词袋模型 -> 深度连续词袋
线性组合 -> 非线性表现(可提取组合特征)
4. 神经网络相关
:- 抽象于生物意义上的神经元。输入神经元,接收信号,达到激活程度,产生输出。
:- 计算图表示。
:- 神经网络框架:theano, caffe, mxnet, tensorflow(静态); dynet(适合复杂任务), chainer, pytorch(动态)
:- 过程:创建模型->对每例,创建计算图,训练,反向传播,更新参数
静态和动态的代价取舍
静态:计算快速,移植方便
动态:操作灵活,流程简单
:- 示例(情感分类, stanford情绪):
1)读入训练集,得到单词和标签
2)定义模型(net框架),定义参数(参数=单词数量*标签数量)(权重矩阵,偏置矩阵)
3)训练,反向传播,更新参数
(和之前的基本操作过程相似,只是顺手记录)
:- 调参可以尝试不同的方式计算分数,例如修改单词的embeddings大小;设置不同的权重矩阵;修改隐藏层参数
如何完成句子的分类?这个就是句子分类的任务,将句子分为5个类别,我们可以使用词袋模型来完成这个任务
将每一个单词使用词袋模型表示向量,每个向量的维度都是5(我是这样理解的这个语料库中词的数量只有5个,所以词典大小就是5),然后加起来就是整个句子的向量,然后我们就可以使用这个向量完成softmax的分类了,但是这样的词袋模型完成分类会有一些问题,因为我们是一个词一个词的在向量表示,很有可能出现don‘t like的情况
出现这种情况的原因是don’t‘单独向量化了,然后love单独向量化了,二者并没有结合在一起
而神经网络可以解决这个问题,它可以将元素特征进行组合
我们不对每一个bow向量进行相加,而是把它们放到神经网络中得到score得分,然后进行softmax分类,得到最终该文本的类别
这个是连续词袋模型,将每个词的向量加起来之后,乘以一个矩阵W,假如加起来的词的向量维度是100维,那么w的维度就是5*100,所以最终的输出维度为5维的向量,正好完成分类任务
这样处理只是降低了维度,仍然是线性表示,仍然没有组合特征,如何才能组合特征?
Sentence Classification
the difficult of NLP:
(1) what's the normal sentence?
(2) the past tense of verb
the feature expression
how to use BOW
what's the CBOW
why use Deep CBOW
the prediction of sentiment or sentiment classifier
CBOW
not nothing
Compution graph
forward propogation
static CG: tensorflow
synytatic CG: PyTorch
some examples of code
BOW
CBOW
Structure of this class
models of words
models of sentences
implements debug interpret of DL models
sequence to sequence model
structure prediction models
models of Tree and graph
advanced tech
models of knowledge and context
mutil-task/language learning
advanced search tech
老师会有一些课前阅读材料,也要阅读。
神经网络非常强大!它是一个万能的函数逼近,可以计算任何函数。
但是,语言是很复杂的,数据是有限的!所以需要设计网络结构,训练算法或者引入偏置项
最重要的三个知识点:
1bow
2.cbow
3.deep cbow
同时介绍的computation graph
定义好这个图结构,那么这些开发框架将会自动帮我们执行forward propagation(FP)以及backward propagation(BP)
其中课程的代码在:https://github.com/neubig/nn4nlp-code
其中第一章的数据在data/classes里面
这个课程属于简介,使用了dynet这个神经网络包做了BOW(词袋模型)和CBOW(连续词袋模型)以及Deep CBOW(深度连续模型),还是很轻松的