人工智能与机器学习基础知识学习笔记

经过前段时间忙碌的校招和期中考后,终于又有时间提笔写些东西,由于校招后即将从事的工作,涉及广告内容的竞价和分发,这段时间一直在学习AI与博弈论的基础内容,所以接下来将写两篇关于“人工智能“与”博弈论“的学习文章,由于本人是社科出身加之数学基础不够,所以文章内容较浅,更多的是涉及宏观的介绍,仅适合非技术人员(如产品经理)简单地了解,由于本人也是现学现卖,算是对自我学习的总结和分享,今天的主题是关于人工智能/机器学习/深度学习的简单总结,如有不对之处,欢迎指正。

1. 人工智能

1.1. 什么是人工智能

人工智能是研究人类智能活动的规律,构造具有一定智能的人工系统,研究如何让计算机去完成以往需要人的智力才能胜任的工作,也就是研究如何应用计算机的软硬件来模拟人类某些智能行为的基本理论、方法和技术。
需要说明的是,人工智能不一定要与人类用相同的方法和过程解决问题,只需要达到与人类相同的效用即可。

1.2. 人工智能的应用

人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,可以设想,未来人工智能带来的科技产品,将会是人类智慧的“容器”。目前该领域的研究包括机器人、语音识别、自然语言处理(NLP)、图像识别、专家系统等等。

1.3. 人工智能发展的契机

人工智能自理论提出至今已有60年有余,但一直处于不温不火的状态,为何近年来突然大热?这就不得不说下近年来几个人工智能的关键要素的发展——大数据、新模型/算法、强算力。
随着互联网时代的到来,用户在互联网上产生了堪称海量的数据,大量的数据为人工智能的训练和学习提供了重要的原料(经验);同时在学术界和工业界共同的努力下,越来越多新的模型和算法被提出(包括近年来最受关注的深度学习模型),并被不断地应用到实际问题的解决过程中;除此之外,新的芯片架构(从CPU到GPU再到TPU/FGPA)以及新的计算方法(并行计算与分布式计算)的不断进步,也为人工智能的发展添柴加火。

模型是一个具体问题的抽象描述,把实际问题转化成数据问题。
算法是解决问题的方法和流程,是基于数学模型并用于求解数据模型的。

1.4. 人工智能与机器学习/深度学习

我们常说的AI其实是一种相对宽泛的概念,在实际的应用过程中,更多的时候,我们所做的其实是通过机器学习或者深度学习的方式来帮助程序实现所谓的机器智能。三者之间的具体关系如下:

2. 机器学习

2.1. 机器学习是什么

根据Tom Mitchell的定义:一个程序被认为能从经验E中学习,解决任务T,达到性能度量值P,当且仅当,有了经验E后,经过P评判, 程序在处理 T 时的性能有所提升。

2.2. 机器学习的类型

在连接主义学习中,把学习算法分为三种类型,即非监督学习(unsupervised learning)、监督学习(supervised leaning)和强化学习。具体如下


人工智能与机器学习基础知识学习笔记_第1张图片
监督学习/无监督学习/强化学习

监督学习:通过已有的已标记训练样本(即已知数据及其对应的输出),来训练得到一个最优模型以实现对训练样本集外的数据进行预测(这个模型属于某个函数的集合,最优则表示在某个评价准则下的最佳),训练样本的歧义性低
无监督学习: 事先没有标记(分类)的训练样本,而直接对数据进行学习,以发现训练样本集中的结构性知识。这里,所有的标记(分类)是未知的。因此,训练样本的岐义性高。
强化学习:是指智能系统从环境到行为映射的学习,以使奖励信号(强化信号)函数值最大。具体而言,强化学习系统依靠自身的经历进行学习,由环境提供的强化信号是对产生动作的好坏作一种评价,在行动-评价的环境中获得知识,改进行动方案以适应环境。
其中监督学习与无监督学习最大的区别就在于训练数据是否有对应的(标签)输出。强化学习也不同于监督学习与无监督学习,主要表现在教师信号上,强化学习中由环境提供的强化信号是对产生动作的好坏作一种评价(通常为标量信号),而不是告诉系统如何去产生正确的动作,也不是系统自行进行学习。
以幼儿对食物的了解过程为例,监督学习相当于父母手把手教导孩子,什么食物是有营养的,什么食物是不健康的,幼儿根据教导结果在之后的生活中选择食物;无监督学习则相当于幼儿自行根据味道和外观的特征,形成对某些食物的分类,如甜的、辣的;而强化学习则相当于幼儿根据进食后,是否有身体状况的变化、父母的批评等反馈,来得出哪些食物是可以吃的,哪些是不能吃的。

除上述三种学习类型外,在实际应用过程中,还出现了半监督学习(Semi-Supervised Learning,SSL),它是模式识别和机器学习领域研究的重点问题,是监督学习与无监督学习相结合的一种学习方法。半监督学习使用大量的未标记数据,以及同时使用标记数据,来进行模式识别工作。

2.3. 机器学习的发展


2.4. 机器学习的原理

机器学习与人类学习过程的类比


人工智能与机器学习基础知识学习笔记_第2张图片

机器学习具体过程


人工智能与机器学习基础知识学习笔记_第3张图片

实际业务应用流程


人工智能与机器学习基础知识学习笔记_第4张图片

数据抽取:在后台数据中抽取部分历史数据作为样本数据(在模型实际运用后,还需要抽取实时诊断数据进行预测处理);
数据清洗:包括对异常数据、噪声数据、空数据的处理,数据格式的转化等等;
特征工程:对样本数据进行特征提取、整合、降维。(在有监督学习和半监督学习中还需要人工对样本进行标签化处理);
训练模型:选择核实的学习算法、确定损失函数(目标函数),在训练过程中使损失函数最小化;
验证模型:利用测试集进行验证、通过评估函数评价模型表现,对于模型存在的问题进行调整(如过拟合/欠拟合);
模型预测并优化:根据模型的实际应用表现对其进行反馈并优化。
在上述过程中,数据清洗是实现机器学习算法的必要前提,一个可用的训练样本集才能确保模型训练的有效;特征工程是提升模型强度的关键因素,适当的特征维度和特征质量是模型预测准确度和实际应用性的重要保障;多种学习方法让可以机器学习算法的泛化能力增强。

2.5. 机器学习常见的算法

根据算法的功能和形式的类似性,我们可以把算法分类,比如说基于树的算法,基于神经网络的算法等等。当然,机器学习的范围非常庞大,有些算法很难明确归类到某一类。而对于有些分类来说,同一分类的算法可以针对不同类型的问题。这里,我们尽量把常用的算法按照最容易理解的方式进行分类。

2.5.1. 回归算法


人工智能与机器学习基础知识学习笔记_第5张图片

回归算法是试图采用对误差的衡量来探索变量之间的关系的一类算法。回归算法是统计机器学习的利器。在机器学习领域,人们说起回归,有时候是指一类问题,有时候是指一类算法,这一点常常会使初学者有所困惑。常见的回归算法包括:最小二乘法(Ordinary Least Square),逻辑回归(Logistic Regression),逐步式回归(Stepwise Regression),多元自适应回归样条(Multivariate Adaptive Regression Splines)以及本地散点平滑估计(Locally Estimated Scatterplot Smoothing)

2.5.2. 基于实例的算法


人工智能与机器学习基础知识学习笔记_第6张图片

基于实例的算法常常用来对决策问题建立模型,这样的模型常常先选取一批样本数据,然后根据某些近似性把新数据与样本数据进行比较。通过这种方式来寻找最佳的匹配。因此,基于实例的算法常常也被称为“赢家通吃”学习或者“基于记忆的学习”。常见的算法包括 k-Nearest Neighbor(KNN), 学习矢量量化(Learning Vector Quantization, LVQ),以及自组织映射算法(Self-Organizing Map , SOM)

2.5.3. 正则化方法


人工智能与机器学习基础知识学习笔记_第7张图片

正则化方法是其他算法(通常是回归算法)的延伸,根据算法的复杂度对算法进行调整。正则化方法通常对简单模型予以奖励而对复杂算法予以惩罚。常见的算法包括:Ridge Regression, Least Absolute Shrinkage and Selection Operator(LASSO),以及弹性网络(Elastic Net)。

2.5.4. 决策树学习

人工智能与机器学习基础知识学习笔记_第8张图片

决策树算法根据数据的属性采用树状结构建立决策模型, 决策树模型常常用来解决分类和回归问题。常见的算法包括:分类及回归树(Classification And Regression Tree, CART), ID3 (Iterative Dichotomiser 3), C4.5, Chi-squared Automatic Interaction Detection(CHAID), Decision Stump, 随机森林(Random Forest), 多元自适应回归样条(MARS)以及梯度推进机(Gradient Boosting Machine, GBM)

2.5.5. 贝叶斯方法


人工智能与机器学习基础知识学习笔记_第9张图片

贝叶斯方法算法是基于贝叶斯定理的一类算法,主要用来解决分类和回归问题。常见算法包括:朴素贝叶斯算法,平均单依赖估计(Averaged One-Dependence Estimators, AODE),以及Bayesian Belief Network(BBN)。

2.5.6. 基于核的算法


人工智能与机器学习基础知识学习笔记_第10张图片

基于核的算法中最著名的莫过于支持向量机(SVM)了。 基于核的算法把输入数据映射到一个高阶的向量空间, 在这些高阶向量空间里, 有些分类或者回归问题能够更容易的解决。 常见的基于核的算法包括:支持向量机(Support Vector Machine, SVM), 径向基函数(Radial Basis Function ,RBF), 以及线性判别分析(Linear Discriminate Analysis ,LDA)等

2.5.7. 聚类算法


人工智能与机器学习基础知识学习笔记_第11张图片

聚类,就像回归一样,有时候人们描述的是一类问题,有时候描述的是一类算法。聚类算法通常按照中心点或者分层的方式对输入数据进行归并。所以的聚类算法都试图找到数据的内在结构,以便按照最大的共同点将数据进行归类。常见的聚类算法包括 k-Means算法以及期望最大化算法(Expectation Maximization, EM)。

2.5.8. 关联规则学习


人工智能与机器学习基础知识学习笔记_第12张图片

关联规则学习通过寻找最能够解释数据变量之间关系的规则,来找出大量多元数据集中有用的关联规则。常见算法包括 Apriori算法和Eclat算法等。

2.5.9. 人工神经网络


人工智能与机器学习基础知识学习笔记_第13张图片

人工神经网络算法模拟生物神经网络,是一类模式匹配算法。通常用于解决分类和回归问题。人工神经网络是机器学习的一个庞大的分支,有几百种不同的算法。(其中深度学习就是其中的一类算法,我们会单独讨论),重要的人工神经网络算法包括:感知器神经网络(Perceptron Neural Network), 反向传递(Back Propagation), Hopfield网络,自组织映射(Self-Organizing Map, SOM)。学习矢量量化(Learning Vector Quantization, LVQ)

2.5.10. 深度学习


人工智能与机器学习基础知识学习笔记_第14张图片

深度学习算法是对人工神经网络的发展。 在近期赢得了很多关注, 特别是百度也开始发力深度学习后, 更是在国内引起了很多关注。   在计算能力变得日益廉价的今天,深度学习试图建立大得多也复杂得多的神经网络。很多深度学习的算法是半监督式学习算法,用来处理存在少量未标识数据的大数据集。常见的深度学习算法包括:受限波尔兹曼机(Restricted Boltzmann Machine, RBN), Deep Belief Networks(DBN),卷积网络(Convolutional Network, CNN), 循环神经网络(Recurrent Neural Networks, RNN),堆栈式自动编码器(Stacked Auto-encoders)。

2.5.11. 降低维度算法


人工智能与机器学习基础知识学习笔记_第15张图片

像聚类算法一样,降低维度算法试图分析数据的内在结构,不过降低维度算法是以非监督学习的方式试图利用较少的信息来归纳或者解释数据。这类算法可以用于高维数据的可视化或者用来简化数据以便监督式学习使用。常见的算法包括:主成份分析(Principle Component Analysis, PCA),偏最小二乘回归(Partial Least Square Regression,PLS), Sammon映射,多维尺度(Multi-Dimensional Scaling, MDS),  投影追踪(Projection Pursuit)等。

2.5.12. 集成算法:


人工智能与机器学习基础知识学习笔记_第16张图片

集成算法用一些相对较弱的学习模型独立地就同样的样本进行训练,然后把结果整合起来进行整体预测。集成算法的主要难点在于究竟集成哪些独立的较弱的学习模型以及如何把学习结果整合起来。这是一类非常强大的算法,同时也非常流行。常见的算法包括:Boosting, Bootstrapped Aggregation(Bagging), AdaBoost,堆叠泛化(Stacked Generalization, Blending),梯度推进机(Gradient Boosting Machine, GBM),随机森林(Random Forest)。

引用于:机器学习常见算法分类汇总

2.6. 机器学习常见的几种应用

2.6.1. 回归

回归问题的目标是给定D维输入变量X,并且每一个输入矢量x都有对应的值y,要求对于新来的数据预测它对应的连续的输出变量Y。常见的回归类型的问题有金融资产的预测、天气情况预测等等。
根据变量的个数可以分为:一元回归与多元回归;根据回归的方式可以分为线性回归与非线性回归。
常用于回归问题的算法有:线性回归、支持向量机、树类算法、神经网络。

2.6.2. 统计分类

分类问题的目标是将输入变量划分到合适的分类中,其输出变量是离散的。常见的分类问题有评估客户的信用级别、垃圾邮件分类、图像识别(如照片中是否出现某个人)等等
按照最终输出变量的多少(类别)可以分为二分类与多分类两种,在实际应用过程中,分类问题最重要的两个指标为精确率与召回率。
统计分类问题中最常用的算法有:K近邻、感知机、朴素贝叶斯、决策树、逻辑回归、支持向量机、神经网络。


人工智能与机器学习基础知识学习笔记_第17张图片

2.6.3. 聚类

聚类问题是把相似的对象通过静态分析的方法分成不同的组别或者更多的子集,同一个子集的成员都有相似的属性。常见的聚类问题有:客户分析、图像颜色分割等等。
聚类问题的常用算法有:K均值、高斯混合聚类、密度聚类、层次聚类。

机器学习尤其是其中的深度学习,在接下来的智能浪潮中所扮演的角色愈发重要,虽然并不是每个人都能成为一名机器学习工程师,但是适当的了解一些相关的基础知识,对于未来的生活和工作都会有大有裨益。
这篇文章,一为自己近期学习所获的总结,便于之后温习,二希望能给读者在学习上带来一定的帮助,仅此而已。

你可能感兴趣的:(人工智能与机器学习基础知识学习笔记)