知识图谱基础Part1_机器学习基础

预览:机器学习基础理论与概念、神经网络与深度学习基础、nlp中的深度学习、语义组合模型词表示模型

//2019.05.19

一、机器学习基础

1、概念:机器学习是人工智能的一个分支 机器学习是人工智能的一个分支 ,其目的在于使得机器可以进行自动学习,通过算法使得机器能从大量历史数据中学习规律从而对新的样本做决策。主要研究:如何使计算机从给定的数据中学习规律,即从观测数据(样本)中寻找规律,并利用学习到的规律(模型)对未知或无法观测的数据进行预测。目前主流的ML算法是基于统计的方法(统计机器学习)。

*统计思维 vs 规则思维

规则思维:人总结数据/应用的规律,机器应用这些规律、

统计思维:人提供数据,定义任务,机器自动学习数据中的规律(对应具体任务),然后应用规律。

(理解:即在大数据的世界中,让机器取代人脑去寻找规律,为我们自动处理事物)。

2、ML学习方法分类

  • 监督学习:回归分析和统计
  • 无监督学习:聚类
  • 半监督学习
  • 增强学习

3、ML学习问题分类

  • 分类问题(Classification)
  • 回归问题(Regression)
  • 聚类问题(Clustering):特点是训练数据没有标注,通常使用数据可视化等方式评价结果

4、ML学习三要素(+自己理解)

  • 模型:例如,在监督学习中,模型就是所有要学习的条件概率或决策函数,模型的假设空间包含所有可能的条件概率函数或决策函数。

模型有线性模型、非线性模型;概率模型、非概率模型

 

  • 策略:在模型的假设空间里,通过策略(按照上面的准则学习或者选择)去寻找最优的模型

*损失函数和风险函数(均方差、交叉熵)

*经验风险最小化与结构风险最小化(极大似然估计、最大后验概率)

  • 算法:选定了学习策略,在从假设空间中选择最优的模型的计算方法

迭代学习(EM),梯度下降法等最优化算法

 

方法 = 模型 + 策略 + 算法

狭义上,ML就是给定一些训练样本(x,y),x是输入,y是需要预测的目标,让计算机自动寻找一个决策函数f(·)来建立x与y之间的关系,

4、相关术语以及解释

(1)损失函数&风险函数

 

如何度量错误的程度:

0-1损失函数;平方损失函数;

交叉熵损失函数:

 

 

*one-hot向量:将类别变量转换为机器学习算法易于利用的一种形式过程,这个向量的表示为一项属性的特征向量,也就是同一时间只有一个激活点(不为0),这个向量只有一个特征是不为0的,其它都是0,特别稀疏,例如,一个特征“性别”,具有“男”、“女”两个特征值,那么可用one-hot编码,男为10,女为01。

 

Hinge损失函数

 

(2)过拟合

--->解决方案:结构风险最小化原则,即在急眼风险最小化的原则上加参数的正则化

(3)学习率

(4)梯度下降法

(5)随机梯度下降法(增量梯度下降):SGD

(6)线性分类

(7)逻辑回归

(8)分类问题、多类分类

(9)开发集(也叫验证集)-->交叉验证

(10)Softmax分类:是逻辑回归的多类推广

(11)评价标准:正确率、准确率、召回率、F值

  • 正确率:就是预测正确的个数比上总训练个数,它衡量平均的整体性能,相对应的是错误率。
  • 准确率:是识别出的个体总数中真确识别的个体总数的比例,对于类别c来说,正确识别出c的个数比上c的总个数
  • 召回率:也叫查全率,是测试集中存在的个体总数中,正确识别的个体总数的比例。
  • F值:

(12)机器学习工具包:WEKA

*大众化的数据挖掘工作平台,集成了大量能承担数据挖掘任务的机器学习算法,包括数据预处理、分类、回归、聚类、关联分析以及在新的交互式界面上的可视化等等,通过其接口实现自己的数据挖掘算法。

二、神经网络与深度学习基础

1、传统机器学习:人工特征工程+分类器

      在大数据环境下的机器学习,自动学习多尺度的特征表示

2、相关模型

(1)感知机:最简单的神经网络,只有一个神经元。

(2)前馈神经网络

(3)反向错误传播

3、深度学习的发展历史

4、常用的深度学习工具包

*TensorFlow:Python工具包,linux环境,可以在任意具备CPU或者GPU的设备上运行

*(Py)Torch:lua工具包

*Caffe:计算CNN先关算法的框架

*Keras:一个极简的和高度模块化的神经网络库

*DyNet:

*MXNet

 

三、nlp中的深度学习

1、nlp:使用计算机表示和处理自然语言(中的语言单元)

*分类:内容-->类标

*生成:结构-->内容

*匹配:<内容,内容> -->类标(数值)

*翻译:内容-->内容

*结构预测:内容-->结构

 

2、组合语义原则

一个复杂对象的意义是由其各组成部分的意义以及它们的组合规则来决定的。

3、词的分布表示

*分布假说:上下文相似的词--->词义相似

那么可以根据语义统计获得;相似度可以度量

4、语义组合模型:

基于词、短语等基本语义单元表示句子等更大语义单元的过程

*建模句子的语法/语义信息

|

|

 

 

四、语义组合模型(扩展以上内容)

理解:在这一部分,列出了几种神经网络,应该是通过神经网络,将词或句子输入,然后做处理,做到语义组合,那么相应的该模型(及其处理)则为相应的语义组合模型。

(卷积神经网络、循环神经网络、Transformaer和Seq2Seq Learrning)

1、典型语义组合模型:CNN、RNN(递归神经网络和循环神经网络)、Transformer

(1)CNN:是一种前馈神经网络,卷积神经网络是受生物学上的感受野(Receptive Field)机制而提出的,一个神经元的感受野是指特定区域,只有这个区域内的刺激才能激活该神经元。(局部链接、权值共享、采样)具有平移、缩放、扭曲不变性

a)一维卷积

*相关概念

 

*卷积类型

宽窄是输出相对于原输入!

b)二维卷积

*相关类型

c)其它相关概念

  • 特征映射(FetureMap):卷积神经网络中每一组输出叫做一组特征映射
  • 子采样层

d)CNN在nlp的具体应用(具体怎么去组合语义的)

  • 文本分类(情感分类):给定一个句子,判断其情感倾向的正负性(二分类)

(具体怎么去理解呢????)

(2)循环神经网络(Recurrent Netural Network,RNN),区别于前馈神经网络(输入输出的维度都是固定的,无法处理变长数据),它使用带自反馈的神经元,能够处理任意长度的序列。

a)应用

  • 序列到类别
  • 同步序列到序列:每一时刻都有输入和输出。比如在序列标注问题上,每个时刻的输入都需要有一个输出,输入序列和输出序列长度相同。
  • 异步序列到序列:输入和出不需要有严格的对应关系。比如在机器翻译中,输入为源语言的单词序列,输出为目标语言的单词序列,输入和输出序列并不需要保持相同的长度。

b)基于RNN的语言模型

(3)Seq2Seq:Sequence to Sequence Learning

(4)Transformer:Position-wise Feed-Forward Network

 

他们的意义如何去对应,如何去学习这些神经网络,如果去记住???

--》还是要把神经网络做一定的了解和研究,具体的意义对应要根据具体的某一个应用去对应了解,先把其它了解完,把思想掌握,同时把相关的神经网络弄懂。

*语言模型:目标是计算一个词串的概率!

五、词表示模型

*词是语言处理中最基本的语言单元

  • 如何判定语义相似
  • 如何数值化表示词
  • 如何刻画数值表示的相近

*词以及词间关系的表示和建模是NLP任务中重要的基础工作

(1)词表示学习

分布式假设:上下文相似的词-->词义相似

  • 上下文的表示:文档、词、n元组   --->重点是如何选取上下文
  • 相似度衡量:向量的内积(余弦)

(2)词表示方法

  • 基于预测的方法:给定上下文对目标词进行预测

Word2vec模型

(以下解释参考:http://www.cnblogs.com/pinard/p/7160330.html

   一般分为CBOW(Continuous Bag-of-Words 与Skip-Gram两种模型。

   CBOW模型的训练输入是某一个特征词的上下文相关的词对应的词向量,而输出就是这特定的一个词的词向量。比如下面这段话,我们的上下文大小取值为4,特定的这个词是"Learning",也就是我们需要的输出词向量,上下文对应的词有8个,前后各4个,这8个词是我们模型的输入。由于CBOW使用的是词袋模型,因此这8个词都是平等的,也就是不考虑他们和我们关注的词之间的距离大小,只要在我们上下文之内即可。

 这样我们这个CBOW的例子里,我们的输入是8个词向量,输出是所有词的softmax概率(训练的目标是期望训练样本特定词对应的softmax概率最大),对应的CBOW神经网络模型输入层有8个神经元,输出层有词汇表大小个神经元。隐藏层的神经元个数我们可以自己指定。通过DNN的反向传播算法,我们可以求出DNN模型的参数,同时得到所有的词对应的词向量。这样当我们有新的需求,要求出某8个词对应的最可能的输出中心词时,我们可以通过一次DNN前向传播算法并通过softmax激活函数找到概率最大的词对应的神经元即可。

  Skip-Gram模型和CBOW的思路是反着来的,即输入是特定的一个词的词向量,而输出是特定词对应的上下文词向量。还是上面的例子,我们的上下文大小取值为4, 特定的这个词"Learning"是我们的输入,而这8个上下文词是我们的输出。

  这样我们这个Skip-Gram的例子里,我们的输入是特定词, 输出是softmax概率排前8的8个词,对应的Skip-Gram神经网络模型输入层有1个神经元,输出层有词汇表大小个神经元。隐藏层的神经元个数我们可以自己指定。通过DNN的反向传播算法,我们可以求出DNN模型的参数,同时得到所有的词对应的词向量。这样当我们有新的需求,要求出某1个词对应的最可能的8个上下文词时,我们可以通过一次DNN前向传播算法得到概率大小排前8的softmax概率对应的神经元所对应的词即可。

  • 基于计数的方法:统计词-上下文共现情况,对共现矩阵进行分解

(3)模型改进

(4)技术改进(*归一化方面进行了改进!)

 

(5)总结

 

——————————————————

理解:机器学习还有深度学习,目前已经是一个很普遍的工具,在自然语言处理或者是知识图谱方面,目前的工作即是运用这些动作,去处理这方面的数据,得到更多新的东西。所以还是有必要再去学习使用ML和DL!!!

 

 

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值