一、你了解机器学习技术体系吗
人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。其属于一门边沿学科,属于自然科学、社会科学、技术科学三向交叉学科。
应用领域:机器视觉,指纹识别,人脸识别,视网膜识别,虹膜识别,掌纹识别,专家系统,自动规划,智能搜索,定理证明,博弈,自动程序设计,智能控制,机器人学,语言和图像理解,遗传编程等。
研究范畴:自然语言处理,知识表现,智能搜索,推理,规划,机器学习,知识获取,组合调度问题,感知问题,模式识别,逻辑程序设计软计算,不精确和不确定的管理,人工生命,神经网络,复杂系统,遗传算法等。
关注公众号“程序员清辞”,获取更多内容
综上可知,人工智能是一项跨多种学科的领域,所涉及到的知识面非常广泛。就其本质而言,是对人的思维的信息过程的模拟,及通过复杂的逻辑去判断事物所处的状态,让机器具有“独立思考”的能力。本文将结合自身多年开发经验和对人工智能的认识,带领大家对人工智能领域的一个小分支--机器学习进行深入研究,深度理解机器学习中的常用算法。虽然机器学习是人工智能中的一小部分内容,但是确实人工智能中的核心部分。
思考:那什么又是机器学习呢?
2.初识机器学习
机器学习是一门多学科交叉专业,涵盖概率论知识,统计学知识,近似理论知识和复杂算法知识,使用计算机作为工具并致力于真实实时的模拟人类学习方式, 并将现有内容进行知识结构划分来有效提高学习效率。
它是人工智能的核心,是使计算机具有智能的根本途径。
3.机器学习的分类
监督学习(supervised learning):是指从标注的数据中学习预测模型的机器学习问题。标注数据表示输入输出的对应关系,预测模型对给定的输入产生相对应的输出。监督学习的本质是学习输入到输出的映射的统计规律,其研究的的方式多是分类和回归问题。
半监督学习(semi-supervised learning):是指从混合了少部分标注的数据的未标注数据中预测模型的机器学习问题。简而言之,就是给定的数据集中小部分被标注,大部分没有标注。这样做的好处是节约了标注数据所花费的人工、时间等成本。其目的旨在利用未标注数据中的信息,辅助标注数据进行监督学习,以较低的成本达到较好的学习效果。
无监督学习(unsupervised learning):是指从无标注数据中学习预测模型的机器学习问题。无标注数据是自然得到的数据,预测模型表示数据的类别、转换或概率。无监督学习的本质是学习数据中的统计规律或潜在结构,其研究的方式多是聚类问题,即如何将特征相似的数据进行归类。
强化学习(reinforcement learning):是指智能系统在与环境的连续互动中学习最优行为策略的机器学习问题。以环境反惯(奖/惩信号)作为输入,以统计和动态规划技术为指导的一种学习方法。
4.常见机器学习算法
4.1 K邻近 – k-nearest neighbors | KNN
K邻近算法背后的原理是找到距离新点最近的预定义数量的训练样本,并从中预测标签。样本数可以是用户定义的常数(k近邻学习),也可以基于点的局部密度而变化(基于半径的邻居学习)。距离通常可以是任何度量标准:标准欧几里德距离是最常见的选择。
4.2 线性回归 – Linear regression
线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。线性回归是一种非常简单的回归分析方法,一般都是通过测试数据集确定变量之间的函数关系,通过这个函数关系预测结果集。
4.3 多项式回归 - Polynomial regression
多项式回归是对线性回归的扩展,分析的变量一般在两个或两个以上。同线性回归一样,只是变量之间的关系变得更加复杂,多项式的最高次幂也不再局限,一般都大于等于二次幂。
4.4 逻辑回归 – Logistic regression
逻辑回归虽被称为回归,但其主要解决二分类问题,用来表示某件事情发生的可能性。常常被用来利用已知的自变量来预测一个离散型因变量的值。
4.5 朴素贝叶斯 – Naive Bayes classifier | NBC
朴素贝叶斯算法是一种分类算法。它不是单一算法,而是一系列算法,它们都有一个共同的原则,即被分类的每个特征都与任何其他特征的值无关。朴素贝叶斯分类器认为这些“特征”中的每一个都独立地贡献概率,而不管特征之间的任何相关性。然而,特征并不总是独立的,这通常被视为朴素贝叶斯算法的缺点。简而言之,朴素贝叶斯算法允许我们使用概率给出一组特征来预测一个类。与其他常见的分类方法相比,朴素贝叶斯算法需要的训练很少。在进行预测之前必须完成的唯一工作是找到特征的个体概率分布的参数,这通常可以快速且确定地完成。这意味着即使对于高维数据点或大量数据点,朴素贝叶斯分类器也可以表现良好。
4.6 支持向量机 – Support Vector Machine | SVM
基本思想可概括如下:首先,要利用一种变换将空间高维化,当然这种变换是非线性的,然后,在新的复杂空间取最优线性分类表面。由此种方式获得的分类函数在形式上类似于神经网络算法。支持向量机是统计学习领域中一个代表性算法,但它与传统方式的思维方法很不同,输入空间、提高维度从而将问题简短化,使问题归结为线性可分的经典解问题。支持向量机应用于垃圾邮件识别,人脸识别等多种分类问题。
4.7 决策树 – Decision tree
决策树及其变种是一类将输入空间分成不同的区域,每个区域有独立参数的算法。决策树算法充分利用了树形模型,根节点到一个叶子节点是一条分类的路径规则,每个叶子节点象征一个判断类别。先将样本分成不同的子集,再进行分割递推,直至每个子集得到同类型的样本,从根节点开始测试,到子树再到叶子节点,即可得出预测类别。此方法的特点是结构简单、处理数据效率较高。
4.8 随机森林 – Random forest
控制数据树生成的方式有多种,根据前人的经验,大多数时候更倾向选择分裂属性和剪枝,但这并不能解决所有问题,偶尔会遇到噪声或分裂属性过多的问题。基于这种情况,总结每次的结果可以得到袋外数据的估计误差,将它和测试样本的估计误差相结合可以评估组合树学习器的拟合及预测精度。此方法的优点有很多,可以产生高精度的分类器,并能够处理大量的变数,也可以平衡分类资料集之间的误差。
4.9 Boosting与Bagging算法
Boosting是种通用的增强基础算法性能的回归分析算法。不需构造一个高精度的回归分析,只需一个粗糙的基础算法即可,再反复调整基础算法就可以得到较好的组合回归模型。它可以将弱学习算法提高为强学习算法,可以应用到其它基础回归算法,如线性回归、神经网络等,来提高精度。Bagging和前一种算法大体相似但又略有差别,主要想法是给出已知的弱学习算法和训练集,它需要经过多轮的计算,才可以得到预测函数列,最后采用投票方式对示例进行判别。
4.10 集成学习 - Ensemble Learning
集成学习归属于机器学习,是一种训练机器学习模型的思路,并不是某种具体的方法或者算法。集成学习的核心思路就是对多种算法进行融合,找出组合中最优的算法组合,从而提升整体算法的可靠性。在集成学习中并不会产生新的算法,更多的是各个算法的搭配作出调整。
5.机器学习分类
关注公众号“程序员清辞”,获取更多内容
6.前期准备及说明
前期准备:
(1)熟悉python3的基本语法。
(2)熟悉PyCharm 、 Jupyter 等开发工具,能够下载安装所依赖的库。
(3)接触过高等数学,目前数学水平至少在初中以上。
说明:
(1)本文并不准备针对零基础编程的同学,面向群众需满足上面三种条件。
(2)本文中涉及到高等数学知识时,会进行部分讲解及推导过程。
(3)本文中所使用的python库不再单一讲解,会提供学习地址。