算法是人工智能(AI)核心领域之一。

本文整理了算法领域常用的39个术语,希望可以帮助大家更好地理解这门学科。

1.Attention 机制

Attention的本质是从关注全部到关注重点。将有限的注意力集中在重点信息上,从而节省资源,快速获得最有效的信息。

2.Encoder-Decoder 和 Seq2Seq

Encoder-Decoder 模型主要是 NLP 领域里的概念。它并不特指某种具体的算法,而是一类算法的统称。Encoder-Decoder 算是一个通用的框架,在这个框架下可以使用不同的算法来解决不同的任务。

Encoder-Decoder 这个框架很好的诠释了机器学习的核心思路:

将现实问题转化为数学问题,通过求解数学问题,从而解决现实问题。

Seq2Seq(是 Sequence-to-Sequence 的缩写),就如字面意思,输入一个序列,输出另一个序列。这种结构最重要的地方在于输入序列和输出序列的长度是可变的。

3.Q-Learning

Q学习是强化学习中基于价值的学习算法。

4.AdaBoost

AdaBoost是Adaptive Boosting的缩写。

AdaBoost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。

5.随机森林(Random Forest)

随机森林属于集成学习中Bagging(Bootstrap Aggregation的简称)的方法。

在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。

☆随机森林可以在很多地方使用:

对离散值的分类;

对连续值的回归;

无监督学习聚类;

异常点检测。

7.学习向量量化( Learning Vector Quantization)

在计算机科学中,学习向量量化 (LVQ)是一种基于原型的监督学习统计学分类算法。 LVQ是向量量化的监督版本。

学习向量量化(Learning Vector Quantization,简称LVQ)属于原型聚类,即试图找到一组原型向量来聚类,每个原型向量代表一个簇,将空间划分为若干个簇,从而对于任意的样本,可以将它划入到它距离最近的簇中,不同的是LVQ假设数据样本带有类别标记,因此可以利用这些类别标记来辅助聚类。

8.K邻近(K-Nearest Neighbors)

K最近邻(K-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。

该方法的思路是:在特征空间中,如果一个样本附近的K个最近(即特征空间中最邻近)样本的大多数属于某一个类别,则该样本也属于这个类别。

用官方的话来说,所谓K近邻算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例(也就是上面所说的K个邻居), 这K个实例的多数属于某个类,就把该输入实例分类到这个类中。

☆优点:

理论成熟,思想简单,既可以用来做分类也可以用来做回归;

可用于非线性分类;

训练时间复杂度为O(n);

对数据没有假设,准确度高,对outlier不敏感;

KNN是一种在线技术,新数据可以直接加入数据集而不必进行重新训练;

KNN理论简单,容易实现;

☆缺点:

样本不平衡问题(即有些类别的样本数量很多,而其它样本的数量很少)效果差;

需要大量内存;

对于样本容量大的数据集计算量比较大(体现在距离计算上);

样本不平衡时,预测偏差比较大。如:某一类的样本比较少,而其它类样本比较多;

KNN每一次分类都会重新进行一次全局运算;

K值大小的选择没有理论选择最优,往往是结合K-折交叉验证得到最优K值选择。

9.线性判别分析(Linear Discriminant Analysis)

线性判别分析(LDA)是对费舍尔的线性鉴别方法的归纳,这种方法使用统计学,模式识别和机器学习方法,试图找到两类物体或事件的特征的一个线性组合,以能够特征化或区分它们。所得的组合可用来作为一个线性分类器,或者,更常见的是,为后续的分类做降维处理。

应用于面部识别领域(在计算机化的脸部识别中,每一张脸由大量像素值表达。 LDA在这里的主要作用是把特征的数量降到可管理的数量后再进行分类。每一个新的维度都是模板里像素值的线性组合。使用费舍尔线性判别得到的线性组合称为费舍尔脸,而通过主成分分析得到称为特征脸。)

9.TF-IDF

简单来说,向量空间模型就是希望把查询关键字和文档都表达成向量,然后利用向量之间的运算来进一步表达向量间的关系。比如,一个比较常用的运算就是计算查询关键字所对应的向量和文档所对应的向量之间的 “相关度”。

10.元学习(Meta Learning)

元学习的思想是学习「学习(训练)」过程。

元学习是人工智能领域里一个较新的方向,被认为是实现通用人工智能的关键。

元学习的核心是具备自学能力。

元学习通常被用在:优化超参数和神经网络、探索好的网络结构、小样本图像识别和快速强化学习等。

11.遗传算法(Genetic Algorithm | GA)

遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。

遗传算法是从代表问题可能潜在的解集的一个种群(population)开始的,而一个种群则由经过基因(gene)编码的一定数目的个体(individual)组成。

遗传算法借鉴了生物学中的遗传原理,是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。

其本质是一种高效、并行、全局搜索的方法,能在搜索过程中自动获取和积累有关搜索空间的知识,并自适应地控制搜索过程以求得最佳解。

12.判别式模型(Discriminative Model)

在机器学习领域判别模型是一种对未知数据 y 与已知数据 x 之间关系进行建模的方法。判别模型是一种基于概率理论的方法。已知输入变量 x ,判别模型通过构建条件概率分布 P(y|x) 预测 y 。

13.产生式模型(Generative Model)

在机器学习中,生成模型可以用来直接对数据建模(例如根据某个变量的概率密度函数进行数据采样),也可以用来建立变量间的条件概率分布。条件概率分布可以由生成模型根据贝叶斯定理形成。

14.Latent Dirichlet Allocation|LDA

LDA(Latent Dirichlet Allocation)是一种文档主题生成模型,也称为一个三层贝叶斯概率模型,包含词、主题和文档三层结构。

LDA是一种非监督机器学习技术,可以用来识别大规模文档集(document collection)或语料库(corpus)中潜藏的主题信息。

15.启发式算法(Heuristic)

一个基于直观或经验构造的算法,在可接受的花费(指计算时间和空间)下给出待解决组合优化问题每一个实例的一个可行解,该可行解与最优解的偏离程度一般不能被预计。

现阶段,启发式算法以仿自然体算法为主,主要有蚁群算法、模拟退火法、神经网络等。

16.粒子群算法(Particle Swarm Optimization | PSO)

PSO 算法属于进化算法的一种,和模拟退火算法相似,它也是从随机解出发,通过迭代寻找最优解,它也是通过适应度来评价解的品质,但它比遗传算法规则更为简单,它没有遗传算法的“交叉”(Crossover) 和“变异”(Mutation) 操作,它通过追随当前搜索到的最优值来寻找全局最优。

17.深度学习(Deep Learning)

深度学习是机器学习中一种基于对数据进行表征学习的方法。

其属于机器学习的范畴,可以说是在传统神经网络基础上的升级,约等于神经网络。它的好处是用非监督式或半监督式的特征学习和分层特征提取高效算法来替代手工获取特征。

深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。

18.人工神经网络(Artificial Neural Network | ANN)

ANN从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同的连接方式组成不同的网络。

未完待续...