L1E6N0A2

监督自己不断学习

0%

NLP入门

一周速成自然语言处理

最近不忙,学一下机器学习和自然语言处理,主要是《自然语言处理入门》一书和斯坦福公开课吴恩达《机器学习》的学习笔记整理。

第一天(何晗 自然语言处理入门)

第一章 新手上路
  • 语料库:人工标注的结构化文本(样本的集合,在机器学习领域称为数据集)
  • 自然语言处理的层次

层次

中文分词、词性标注和命名实体识别,这3个任务都是围绕词语进行的分析,所以统称词法分析。词法分析的主要任务是将文本分隔为有意义的词语(中文分词),确定每个词语的类别和浅层的歧义消除(词性标注),并且识别出一些较长的专有名词(命名实体识别)。对中文而言,词法分析常常是后续高级任务的基础。

词法分析只能得到零散的词汇信息,计算机不知道词语之间的关系。在一些问答系统中,需要得到句子的主谓宾结构,这就是句法分析得到的结果。

相较于句法分析,语义分析侧重语义而非语法。它包括词义消歧(确定一个词在语境中的含义,而不是简单的词性)、语义角色标注(标注句子中的谓语与其他成分的关系)乃至语义依存分析(分析句子中词语之间的语义关系)。

  • 监督学习:非结构化的数据标注为标注数据,放进模型中进行迭代训练,之后再次输入非结构化数据到模型中,就可以自动预测,得到结构化数据。(数据集附带标准答案 y,则此时的学习算法称作监督学习。)
  • 无监督学习:只给机器做题,却不告诉它参考答案,此时的学习称作无监督学习,而不含标准答案的数据集被称作无标注的数据集。机器只能发现样本之间的联系,无法学习样本与答案之间的关联。无监督学习一般用于聚类和降维,两者都不需要标注数据。
  • 半监督学习:如果我们训练多个模型,然后对同一个实例执行预测,会得到多个结果。如果这些结果多数一致,则可以将该实例和结果放到一起作为新的训练样本,用来扩充训练集。
  • 强化学习:现实世界中的事物之间往往有很长的因果链:我们要正确地执行一系列彼此关联的决策,才能得到最终的成果。这类问题往往需要一边预测,一边根据环境的反馈规划下次决策。\
第二章 词典分词
  • 中文分词:将一段文本拆分为一系列单词。是中文信息处理的第一站。

  • 词典:搜狗实验室发布的互联网词库(SogouW),清华大学开放中文词库(THUOCL)

  • 切分算法:

    • 完全切分:找出一段文本中的所有单词。由于词库中含有单字,所以结果中也出现了单字。
    • 正向最长匹配:在以某个下标为起点递增查词的过程中,优先输出更长的单词。
    • 逆向最长匹配:从后向前扫描,保留最长的单词
    • 双向最长匹配:融合两种匹配方法的复杂规则集:
      • 同时执行正向和逆向最长匹配,若两者的词数不同,则返回词数更少的那一个。
      • 否则,返回两者中单字更少的那一个。
      • 当单字数也相同时,优先返回逆向最长匹配的结果。
  • 字典树:速度又快、内存又省的数据结构。字符串集合常用宇典树(trie树、前缀树)存储,这是一种字符串上的树形数据结构。字典树中每条边都对应一个字, 从根节点往下的路径构成一个个字符串。字符串就是一 条路径,要查询一个单词,只需顺着这条路径从根节点往下走。如果能走到特殊标记的节点,则说明该字符串在集合中,否则说明不存在。

字典树

  • 混淆矩阵:假阳(FP),预测是+,正确是-;假阴(FN),预测是-,正确是+
  • 评价指标:
    • 精确率(P):预测结果中正类数量占全部结果的比率(TP/(TP+FP))
    • 召回率(R):正类样本被找出来的比例(TP/(TP+FN))
    • F1:精确率和召回率的调和平均(2*P*R/(P+R))
第三章 二元语法和中文分词
  • 语言模型:是对语言现象的数学抽象。准确的讲,给定一个句子 w,语言模型就是计算句子的出现概率 p(w) 的模型,而统计的对象就是人工标注而成的语料库。

语言模型

  • 马尔可夫链:给定时间线上有一串事件顺序发生,假设每个事件的发生概率只取决于前一个事件,那么这串事件构成的因果链被称作马尔可夫链

    马尔可夫链假设每个单词出现的概率只取决于前一个单词

    马尔可夫

  • 二元语法模型:基于马尔科夫假设,每次计算只涉及连续两个单词的二元接续,因此语言模型可以化简为下面的二元语法模型:

二元语法模型

  • n元语法模型:每个单词的概率仅取决于该单词之前的n-1个单词

n元

  • 平滑策略:n越大,数据稀疏的问题越严峻。利用低阶 n 元语法平滑高阶 n 元语法,所谓平滑,就是字面上的意思:使 n 元语法频次的折线平滑为曲线。最简单的一种是线性插值法:

平滑

  • 中文分词语料库:语言模型只是一个函数的骨架,函数的参数需要在语料库上统计才能得到。为了满足实际工程需要,一个质量高、分量足的语料库必不可少。以下是常用的语料库

第二天(吴恩达 机器学习公开课)

  • 监督学习的任务(有正确答案)

    • 回归:预测连续的数值输出(将训练集作为输入,通过机器学习算法输出一个函数h)

    • 分类:预测一个离散值(根据多维特征)

      学习

  • 无监督学习的任务

    • 聚类:分簇,但是不知道每簇的含义
    • 鸡尾酒会算法:声源分离
  • 代价函数与梯度下降——Batch梯度下降算法

    • 线性回归算法中,模型所预测的值与训练集中实际值之间的差距就是建模误差

      • 代价函数也被称作平方误差函数,目的是使得代价函数的值最小

      代价函数

    • 给θ0和θ1设置初始值,梯度下降函数会逐渐向局部最优解靠近,返回局部最优解

      • 不同的初始值也许到达的点不同
    • 梯度下降法可以最小化代价函数,找到使得代价函数最小的θ0和θ1(收敛到全局最优解)

    拱形

  • 多个变量的线性回归(使用梯度下降处理多元线性回归)

    • 特征缩放:对于取值范围差别较大的变量,可以采用均值归一化的方法对其进行缩放

      • 目的是避免收敛过程太曲折
      • 均值归一化:减去平均值,再除以(max-min),使得变量的取值都在-1,1之间
    • 学习率:梯度下降的更新规则(α)

      • 学习率太小,会让收敛速度很慢;学习率太大,可能会跳过最优,不是每一个迭代都会变小,还有可能不会收敛。

      • 对于学习率一般这么选择:0.001~0.003~0.01~0.03~0.1~0.3这样三倍选择。

学习率

  • 特征和多项式回归

  • 正规方程:直接求解出最优解对应的θ值(对代价函数求导)

  • Logistic回归算法——针对离散数值的预测

    • 算法的输出范围[0,1]

    • 函数原型如下图(h函数):其中g函数称为Sigmoid函数或者Logistic函数

    • z=0 —-> h(x) = g(z) = 0.5 ——决策边界 (也可以是曲线)

      • 现在假设我们有一个模型:h(x) = g( θ0 + θ1x1 + θ2x2) ,并且参数θ是向量[-3 1 1]。则当-3+x1+x2 大于等于0,即x1+x2大于等于3 时,模型将预测 y=1。

逻辑

  • 逻辑回归的代价函数

    分开y=1

    代价

    分开y=1

代价2

合起来表示

代价3

  • 逻辑回归的多分类问题

    可以将其看做成二类分类问题:保留其中的一类,剩下的作为另一类。例如,对于下面这个例子,可以分别计算其中一类相对于其他类的概率。最终选择输出最大的那种分类。

    多分类

  • 过拟合(无法泛化到新样本中)

    图一是欠拟合,图二是好的拟合,图三是过拟合

    过拟合

  • 正则化(过拟合的解决办法)

    • 保留所有的特征,但减小参数j的量级

      正则化