一 序
本文属于贪心NLP学习笔记系列。从本节课开始进入机器学习的章节。
之前的两个分支之一:基于概率的系统(Probabilistic),主要是学习出数据与标签之间的映射关系。
二 机器学习
定义:自动从已有的数据里找出一规律,然后把学到的这些规律应用到对未来数据(future data)的预测中,或者在不确定环境下自动地做一些决策。
两大流派:<1>有监督的(Supervised Learning,即我们有一些训练数据,通过训练数据去构建一个模型)、无监督的(unsupervised Learning)
<2>生成模型(generative model)、判别模型(discriminative)
实际工作中,最常见的学习还是有监督学习。(现实中年无监督学习效果没那么好)
监督学习:训练集数据包含x(特征向量),Y(标签label),我们想学出X到Y的对应关系F(),
以情感分析为例,下图解释的有监督训练的模型:
首先,给定一个语料库(即训练数据),该语料库包含文本(x)及其情感倾向判断结果(y),通过训练语料库,得到函数f,用来进行判别用户新的输入的情感倾向
监督学习模型 Supervised Learning Algorithms
·线性回归(Linear Regression)
·逻辑回归(Logistic Regression)
·朴素贝叶斯(Naive Bayes)
·神经网络(Neural Network)
·SVM(Support Vector Machine)
·随机森林(Random Forest)
·Adaboost
·CNN(Convolutional Neural Network)
目前为止,这些经典算法听完还是一堆术语。跟之前不学这个课相比,就是知道属于监督学习模型。
无监督学习
所给的训练数据只包含x,不含有y,所以很显然学不到f(x->y)的过程。
更多的是对数据的分析,通过聚类的方法使数据有个直观的分析。比如再营销上。
常用的无监督学习的算法 Unsupervised Learning Algorithms
·K-means (聚类)
·PCA(Principal Component Analysis) (降维)
·ICA(Independent Component Analysis) (降维)
·MF(Matrix Factorization) 矩阵分解常用再推荐系统
·LSA(Latent Semantic Analysis)
·LDA(Latent Dirichlet Allocation)
使用之前,要深入了解算法的理念是什么,可能会遇到什么问题。
生成模型(generative model)和判别模型(discriminative model)
生成模型通过已经训练好的模型,可以用来生成图片、音乐、文本等,例如生成模型会学习猫、狗的特征,再利用学到的特征去判断用户输入的是猫或狗的概率P。
生成模型是记住细节,而叛逆别模型是记住区别。
从数学角度来看,生成模型是最大化P(X)或者最大化P(X|Y).
而判别模型是,判别模型是最大化
建模流程
经典流程
数据清洗比较耗费时间,影响后面整体的效果。特征工程耗时占比最大,也是模型最重要的部分。如果理想的准确度是100分,那么特征工程决定了系统的准确度的上限,例如90分,那么选择模型,调节参数,也是只能逼近上限。
近几年,这个流程不断优化,变成端到端的流程。由于传统流程中特征工程非常重要,然后又很费时间(需要对业务理解,又要有创新思维)。把特征工程去掉就是端到端的流程。由模型自动完成特征工程提取。
端到端的模型(end to end learning)
如seq2seq.再图像领域 效果较好,在NLP领域,效果通常不好。
模型构建时的数据划分
一般将数据分为训练数据(训练模型)和测试数据(测试模型)。达到预期就可以上线,否则就得重新搭建。