Py学习  »  机器学习算法

什么是机器学习?通过机器学习方法能解决哪些问题?

新机器视觉 • 17 小时前 • 10 次点击  

“机器学习”最初的研究动机是让计算机系统具有人的学习能力以便实现人工智能。因为没有学习能力的系统很难被认为是具有智能的。目前被广泛采用的机器学习的定义是“利用经验来改善计算机系统自身的性能”。事实上,由于“经验”在计算机系统中主要以数据的形式存在,因此机器学习需要设法对数据进行分析学习,这就使得它逐渐成为智能数据分析技术的创新源之一,并且受到越来越多的关注。

机器学习的核心在于建模和算法,学习得到的参数只是一个结果。

成功训练一个模型需要四个要素:数据、转换数据的模型、衡量模型好坏的损失函数和一个调整模型权重以便最小化损失函数的算法。

机器学习里最重要的四类问题(按学习结果分类):

  • 预测(Prediction):一般用回归(Regression,Arima)等模型。

  • 聚类(Clustering):如K-means方法。

  • 分类(Classification):如支持向量机法(Support Vector Machine,SVM),逻辑回归(Logistic Regression)。

  • 降维(Dimensional reduction):如主成分分析法(Principal Component Analysis,PCA,即纯矩阵运算)。


如果按照学习方法,机器学习又可以分为如下几类

  • 监督学习(SupervisedLearning,如深度学习);

  • 无监督学习(Un-supervised Learning,如聚类);

  • 半监督学习(Semi-supervised Learning);

  • 增强学习(Reinforced Learning)。


几种常用的机器学习方法:

  • 文本分类

  • 特征提取

  • 标注

  • 搜索与排序

  • 推荐系统

  • 序列学习

1、文本分类

文本分类技术在NLP领域有着举足轻重的地位。文本分类是指在给定分类体系,根据文本内容自动确定文本类别的过程。20世纪90年代以来,文本分类已经出现了很多应用,比如信息检索、Web 文档自动分类、数字图书馆、自动文摘、分类新闻、文本过滤单词语义辨析、情感分析等。

分类过程主要分为两个阶段,训练阶段和预测阶段。训练阶段根据训练数据训练得到分类模型。预测阶段根据分类器推断出文本所属类别。训练阶段一般需要先分词,然后提取文本为特征,提取特征的过程称之为特征提取。

一般来说文本分类大致分为如下几个步骤:

  • 1)定义阶段:定义数据以及分类体系,具体分为哪些类别,需要哪些数据

  • 2)数据预处理:对文档做分词、去停用词等准备工作。

  • 3)数据提取特征:对文档矩阵进行降维,提取训练集中最有用的特征。

  • 4)模型训练阶段:选择具体的分类模型以及算法,训练出文本分类器。

  • 5)评测阶段:在测试集上测试并评价分类器的性能。

  • 6)应用阶段:应用性能最高的分类模型对待分类文档进行分类。

2、特征提取

在使用分类器之前,需要对文本提取特征,而一般来说,提取特征有几种经典的方法:

  • Bag-of-words:最原始的特征集,一个单词/分词就是一个特征。往往一个数据集就会有上万个特征;有一些简单的指标可以帮助筛选掉一些对分类没帮助的词语,例如去停词、计算互信息熵等。但不管怎么训练,特征维度都很大,每个特征的信息量太小。

  • 统计特征:包括Termfrequency(TF)、Inverse document frequency(IDF),以及合并起来的TF-IDF。这种语言模型主要是用词汇的统计特征来作为特征集,每个特征都能够说得出物理意义,看起来会比bag-of-words效果好,但实际效果也差不多。

  • N-Gram:一种考虑了词汇顺序的模型,就是N阶Markov链,每个样本转移成转移概率矩阵,也能取得不错的效果。

3、标注

事实上,有一些看似分类的问题在实际中却难以归于分类。例如,把图所示的小女孩与狗这张图无论分类成人还是狗看上去都有些问题。

正如你所见,上图里既有人又有狗。其实还不止这些,里面还有草啊、书包啊、树啊等。与其将上图仅仅分类为其中一类,倒不如把这张图里面我们所关心的类别都标注出来。比如,给定一张图片,我们希望知道里面是否有人、是否有狗、是否有草等。给定一个输人,输出不定量的类别,这个就叫作标注任务。

4、搜索与排序

在这个数据爆炸的时代,在大量数据的场景下,如何用算法帮助人们从这些无序的信息中找到人们需要的信息就成为一个刚需。搜索与排序关注的问题更多的是如何对一堆对象排序。例如在信息检索领域,我们常常关注如何把海量的文档按照与检索条目的相关性进行排序。在互联网时代,由于谷歌和百度等搜索引擎的流行,我们更加关注如何对网页进行排序。互联网时代早期,谷歌研发出一个著名的网页排序算法-PageRank。该算法的排序结果并不取决于特定的用户检索条目,这些排序结果可以更好地为所包含的检索条目的网页进行排序。

5、推荐系统

推荐系统和搜索排序关系紧密,并且被广泛应用于电子商务、搜索引擎、新闻门户等。推荐系统的主要目标是把用户可能感兴趣的东西推荐给用户。推荐算法用到的信息种类非常多,例如用户的自我描述、过往的购物习惯,以及对过往推荐的反馈等。

6、序列学习

序列学习是一类近来备受关注的机器学习问题。在这类问题中,需要考虑顺序问题输入和输出的长度不固定(例如翻译,输入的英文和翻译出来的中文长度都是不固定的)。这类模型通常可以处理任意长度的输人序列,或者输出任意长度的序列。当输入和输出都是不定长的序列时,我们把这类模型称为seq2seq,例如QA问答系统、语言翻译模型和语音转录文本模型。以下列举了一些常见的序列学习案例。

1.语音识别

在语音识别的问题里,输人序列通常都是麦克风的声音,而输出是对通过麦克风所说的话的文本转录。这类问题通常有一个难点,例如声音通常都在特定的采样率下进行采样,因为声音和文本之间不存在一一对应的关系。换言之,语音识别是一类序列转换问题。这里的输出往往比输人短很多。

2.文本转语音

这是语音识别问题的逆问题。这里的输入是一个文本序列,而输出才是声音序列。因此,这类问题的输出比输入长。

3.机器翻译

机器翻译的目标是把一段话从一种语言翻译成另一种语言,例如把中文翻译成英语。目前,机器翻译技术已经很成熟,例如国内的科大讯飞以及百度语音在中文翻译领域都有不错的成绩,不过有的时候也会出现一些尴尬的翻译结果。

机器翻译的复杂程度是非常高的,同一个词在两种不同语言下有时候是多对多的关系。另外,符合语法或者语言习惯的语序调整也令问题更加复杂。

本文仅做学术分享,侵删。


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/175940
 
10 次点击