拥抱人工智能,从机器学习开始

3个月前

人工智能的内容浩如烟海,各种复杂的模型和算法更让人望而生畏。那么作为一个普通程序员,在已有语言技能的前提下,该如何拥抱变化,向人工智能靠拢?



大家好

很高兴在这里跟大家介绍一下人工智能的学习能力:机器学习的相关知识和算法。希望通过算法的介绍让大家知道实现人工智能并非遥不可及人人都可以做人工智能

本次课程包括三个部分:

1、人工智能和机器学习简介

2、传统机器学习算法和深度学习介绍

3、学习工具与平台介绍

 

首先看一下人工智能的历史。人工智能的发展,离不开机器学习的进步。

从诞生至今,人工智能这个领域经历了一次又一次的繁荣与低谷,其发展上大体上可以分为“推理期”,“知识期”和“学习期”。

深度学习的兴起,也推动着社会从数字化向智能化的变革。

什么是人工智能?

人工智能是让机器像人一样思考,包括感知、语言、记忆、推理、规划决策、学习能力等。

而学习能力则是通过机器学习实现的。

认识机器学习之前,需要先理清它与人工智能和深度学习之间的关系。


  • 人工智能:是一个大的概念,是让机器像人一样思考甚至超越人类。
  • 机器学习:是实现人工智能的一种方法,代表人工智能的学习能力。
  • 深度学习:是机器学习的一种实现方式。通过是模拟人神经网络的方式来训练网络。


机器学习是让计算机利用数据而不是指令来进行各种工作的方法。

利用数据,训练出模型,然后使用模型预测和决策。

机器学习的过程主要包括:


  • 数据的特征提取
  • 数据预处理
  • 训练模型
  • 测试模型
  • 模型评估改进等几部分


我们主要介绍机器学习算法。


算法是通过使用已知的输入和输出以某种方式“训练”以对特定输入进行响应。代表着用系统的方法描述解决问题的策略机制。

机器学习算法则是人工智能的核心,是使计算机具有智能的根本途径。

机器学习算法可以分为传统的机器学习算法和深度学习。

传统机器学习算法包括以下五类:


  • 回归:建立一个回归方程来预测目标值
  • 分类:给定大量带标签的数据,计算出未知标签样本的标签取值
  • 聚类:将不带标签的数据根据距离聚集成不同的簇,每一簇数据有共同的特征
  • 关联分析:计算出数据之间的频繁项集合
  • 降维:原高维空间中的数据点映射到低维度的空间中


下面我们将选取几种常见的算法,为大家一一介绍

第一种为回归算法中的线性回归:找到一条直线来预测目标值。

回归是指建立一个回归方程(函数)用来预测目标值,最简单的为线性回归。

回归的求解就是求解回归方程的回归系数的过程,并且使误差最小。

例如,根据房屋面积和售价的关系,求出回归方程,则可以预测给定房屋面积时的售价。

线性回归的应用非常广泛,例如预测预测客户终生价值、人口增长分析、房价分析、股价走势分析、流量预测、票房预测等等。

第二种为分类算法中的逻辑回归:找到一条直线来分类数据

虽然名字叫逻辑回归,但是它却属于分类算法,是通过将数据拟合进一个逻辑函数来预估一个事件出现的概率。

从直观上来说,逻辑回归是画出了一条分类线。位于分类线一侧的数据,概率>0.5,属于分类A;位于分类线另一侧的数据,概率<0.5,属于分类B 。   

逻辑回归的应用也非常广泛,例如医学界探索某个疾病的危险因素,金融界预测贷款是否会违约,消费行业预测某个消费者是否会购买某个商品等等。

介绍逻辑回归的一个案例:预测还款概率,控制信用风险。

互联网金融的一个痛点在于信用风险控制。若审查材料不严,可能导致大量资信不良的个人成功借贷。可以利用逻辑回归解决这个问题。

例如某银行通过收集一批信贷客户的样本数据,从中随机抽取1000例数据作为示例进行逻辑回归分析。根据建立的模型对信申请者的信用风险进行概率预测,从而决定是否放贷。

第三种为分类算法中的K近邻算法:用距离度量最相邻的分类标签。

 先从一个简单的场景入手:已知一个电影中的打斗和接吻镜头数,判断它是属于爱情片还是动作片。当接吻镜头数较多时,根据经验我们判断它为爱情片。那么计算机如何进行判别呢?

 可以使用K近邻算法,其工作原理如下:

1)计算样本数据中的点与当前点之间的距离

2)算法提取样本最相似数据(最近邻)的分类标签

3)确定前k个点所在类别的出现频率

(4)返回前k个点所出现频率最高的类别作为当前点的预测分类

 例如,K取值为3,距离最近的三部电影分别为动作片、动作片、爱情片。在这三个点中,动作片出现的频率为2/3,爱情片出现的频率为1/3,所以将目标电影分类为动作片。

K近邻算法的一个常见应用是:手写数字识别。

手写字体对于人脑来说,看到的数字是一幅图像,而在电脑看来这是一个二维或三维数组,那怎么对数字进行识别? 

具体步骤为:

首先将每个图片处理为二进制图像矩阵,再进一步转换为向量。

将训练样本储存在训练矩阵中,矩阵的每行数据存储一个图像。

最后计算目标数据与训练数据的距离,选择前k个点所出现频率最高的数字作为当前手写字体的预测分类。

第四种为分类算法中的朴素贝叶斯算法:选择后验概率最大的类为分类标签

一个简单的场景:两个碗中有不同数量的两种糖,随机选择一个碗,从中摸出一颗糖,发现是水果糖。问这颗水果糖来自一号碗的概率有多大?

这类问题可以借助贝叶斯公式来计算。在分类时,通过计算样本属于各个类别的概率,然后取概率值大的类别作为分类类别。

主要应用为文本分类、垃圾文本过滤,情感判别,多分类实时预测等。

朴素贝叶斯的一个案例是文本分类。

首先将训练文本表示成词向量,再将文本列表转换成词向量列表。计算测试文本属于两个类别的概率,从而进行分类。

可以将其应用于新闻分类和垃圾邮件过滤等。

第五种为分类算法中的决策树构造一棵熵值下降最快的分类树

 一个简单的场景:相亲时,可能首先检测相亲对方是否有房。如果有,则考虑进一步接触。如果没有房,则观察其是否有上进心,如果没有,直接Say Goodbye。如果有,则可以列入候选名单。这就是一个简单的决策树模型。决策树是一种树型结构,其中每个内部结点表示在一个属性上的测试,每个分支代表一个测试输出,每个叶结点代表一种类别。

采用的是自顶向下的递归方法,选择信息增益最大的特征作为当前的分裂特征。

 决策树可以应于:用户分级评估、贷款风险评估、选股、投标决策等。

第六种为分类算法中的支持向量机构造超平面分类非线性数据

一个简单的场景:要求用一根线将不同颜色的球分开,A、B两条线都可以满足条件。再继续增加球,线A仍可以将球很好的分开,而线B则不可以。

进一步增加难度,当球没有明确的分界线,用一条直线已经无法将球分开,该怎么解决?

这个场景中涉及支持向量机的的两个问题:

(1)当数据线性不可分时,可以通过核函数将数据从二维映射到高维,通过超平面将数据切分

(2)具有“最大间隔”的决策面就是SVM要寻找的最优解。

SVM的应用非常广泛,可以应用于垃圾邮件识别、手写识别、文本分类、选股等。

第七种为聚类算法中的K-means算法:计算质心,聚类无标签数据

 聚类属于无监督学习,数据没有标记,将相似的对象归到同一个簇中。

K-Means算法的基本步骤为:

1)随机生成k个初始点作为质心

2)将数据集中的数据按照距离质心的远近分到各个簇中

3)将各个簇中的数据求平均值,作为新的质心,重复上一步,直到所有的簇不再改变

两个分类间隔越远,则聚类效果越好

K-means算法的一个案例是:客户价值细分,精准投资

以航空公司为例,因为业务竞争激烈,企业营销焦点从产品中心转为客户中心;建立合理的客户价值评估模型,进行客户分类,进行精准营销,是解决问题的关键。

主要分析客户飞行数据的五个指标,构建LRFMC模型,用K-Means将客户群聚成五类,对每类客户进行差异化管理。

K-means算法的第二个案例是:量化颜色,压缩图像

 在图像压缩问题中,K均值聚类算法会把类似的颜色分别放在K个簇中,因此只需要保留每个像素的标签,以及每个簇的颜色编码即可完成图像的压缩。

第八种为关联算法中的FP-growth算法。大家熟悉的超市里啤酒和尿布放在相邻的位置进行销售,就是利用的关联算法

 FP-growth算法是目前业界经典的频繁项集和关联规则挖掘的算法。应用比较广泛,例如用于制定营销策略、发现共现词、发现事务的热点信息等。

FP-growth算法一个简单的案例:通过购物车数据,分析商品之间的关联关系。

分析步骤为:

1)从购物车数据中挖掘出频繁项集
2)从频繁项集中产生关联规则,计算支持度

3)输出置信度

根据结果,可以分析出购买了鞋子,极有可能会同时购买袜子;购买了鸡蛋与面包,极有可能会购买牛奶。

第九种为降维算法:减少数据维度,降低数据复杂度

降维是指将原高维空间中的数据点映射到低维度的空间中。因为高维特征的数目巨大,距离计算困难,分类器的性能会随着特征数的增加而下降;

减少高维的冗余信息所造成的误差,可以提高识别的精度。

比较常用的是主成分分析算法。

它是通过某种线性投影,将高维的数据映射到低维的空间中表示,并期望在所投影的维度上数据的方差最大,以此使用较少的数据维度,同时保留住较多的原数据点的特性。

例如对数字进行降维,特征向量使用的越多就越与原始数据接近。

前面介绍了九种传统的机器学习算法,现在介绍一下深度学习的基础:人工神经网络。

它是模拟人脑神经网络而设计的模型,每个节点代表一种特定函数。是一个可学习的函数,,一个三层的神经网络可以逼近任意的函数。

每一层神经元学习到的是前一层神经元值的更抽象的表示,通过抽取更抽象的特征来对事物进行区分,从而获得更好的区分与分类能力。

例如在图像识别中,第一个隐藏层学习到的是 “边缘”的特征,第二层学习由“边缘”组成的“形状”的特征,第三层学习到的是由“形状”组成的“图案”的特征。

深度学习是当今人工智能爆炸的核心驱动,赋予人工智能以璀璨的未来

深度学习是机器学习的分支,是对人工神经网络的发展。

使用多层网络,能够学习抽象概念,同时融入自我学习,逐步从大量的样本中逐层抽象出相关的概念,然后做出理解,最终做出判断和决策。

目前深度学习的应用十分广泛,例如图像识别、语音识别、机器翻译、自动驾驶、金融风控、智能机器人等。

 

已经了解了机器学习过程中使用的算法,那么该如何动手实践呢?

Anaconda是初学Python、入门机器学习的首选。

它是一个用于科学计算的Python发行版,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。

其中, Scikit-Learn是Anaconda中集成的开源机器学习工具包,可以直接调用传统机器学习的算法进行使用。

同时也兼容Google开发的第二代人工智能系统TensorFlow,进行深度学习的开发。

介绍一个基于Python的机器学习案例实现过程:贷款申请的决策树,用以对未来的贷款申请进行分类。

具体实现过程:

1)准备数据集:从贷款申请样本数据表中,选取对训练数据具有分类能力的特征

2)构建树:选择信息增益最大的特征作为分裂特征构建决策树

3)数据可视化:使用Matplotlib对数据进行可视化

4)执行分类:用于实际数据的分类。例如输入测试数据[0,1],它代表没有房子,但是有工作,分类结果“房贷”。


希望通过本次介绍,大家能够对机器学习涉及的算法有初步的认识,为以后进行相关人工智能方面的研究所有帮助。机器学习其实没有那么复杂,只是将统计学、概率论等数学知识应用在人工智能领域。借助现有的软件平台,可以轻松的调用已经集成的算法,让工程师不再为复杂的算法理论而烦恼,可以有更多的时间去开发和创新!


以上全部内容,若有不足之处,欢迎批评指正,谢谢大家!


关于EAWorld:微服务,DevOps,数据治理,移动架构原创  技术分享,长按二维码关注

COMMENTS

需要 后方可回复
如果没有账号可以 一个帐号。