绪论html
人工智能并不是新的术语,这个概念由来已久,大约从80年代初开始,计算机科学家们开始设计能够学习和模仿人类行为的算法。人工智能的发展曲折向前,伴随着数据量的上涨、计算力的提高,机器学习的火热,以及深度学习的爆发,人工智能迎来快速发展,迅速席卷全球。python
人工智能的研究领域也在不断扩大,已经涵盖专家系统、机器学习、进化计算、模糊逻辑、计算机视觉、天然语言处理、推荐系统等多个领域。能够绝不夸张地说,人工智能技术正在像100多年前的电力同样,即将改变每一个行业。每一个企业都不但愿在此次浪潮中掉队,如何才能利用AI帮助本身的企业进行转型呢?AI领域著名学者吴恩达在前不久针对该问题,发表了《AI转型指南》。算法
机器学习,做为实现人工智能的一种方法,对于人工智能的发展起着十分重要的做用。而深度学习,做为机器学习中的一种技术,更是摧枯拉朽地实现了各类任务,极大推进了各个领域朝着人工智能的方向迈进。下面这张图,很是形象地概况了三者之间的关系。网络
总之,人工智能、机器学习、深度学习已经深刻到企业生产和我的生活的方方面面。可以熟练运用机器学习解决生活生产当中的应用,掌握人工智能技术,对于企业和我的的长远发展变得相当重要。app
机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及几率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。机器学习算法根据解决的任务类型,能够分为分类算法、回归算法、聚类算法等,深度学习做为机器学习中比较特殊的一类算法,是神经网络算法的延伸和扩展。框架
机器学习大体能够分为监督学习和非监督学习。监督式学习,由已有的数据包括输入输出,训练模型函数;而后把新的输入数据带入模型函数,预测数据输出。函数的输出若是是一个连续的值,则称为回归分析,若是输出是离散数值,则称做分类。与监督学习相对应的是无监督学习,此时数据没有标注信息,聚类是典型的无监督学习。机器学习
阿里云机器学习平台PAI(Platform of Artificial Intelligence),为传统机器学习提供上百种算法和大规模分布式计算的服务;为深度学习客户提供单机多卡、多机多卡的高性价比资源服务,支持最新的深度学习开源框架;帮助开发者和企业客户弹性扩缩计算资源,轻松实如今线预测服务。分布式
PAI-Studio封装经常使用机器学习算法及丰富的可视化组件,用户无需代码基础,经过拖拉拽便可训练模型。函数
以下图示,在阿里云机器学习平台开通帐号以后,进入管理控制台—可视化建模,根据本身的须要新建项目,进入机器学习便可进入到PAI-Studio进行使用。
性能
PAI-Studio上经过拖拽算法组件,构建实验,进行模型训练,训练好的模型能够一键部署到PAI-EAS。机器学习模型在线部署功能能够将您的模型一键部署为Restful API,您能够经过HTTP请求的方式进行调用(使用说明文档)。
PAI-DSW(Data science workshop)是专门为算法开发者准备的云端深度学习开发环境,用户能够登陆DSW进行代码的开发并运行工做。目前DSW内置了PAI团队深度优化过的Tensorflow框架,同时也能够经过打开console对话窗口自行安装须要的第三方库。
1.1 分类算法
分类算法应用普遍,好比新闻内容分类、商品类目预测、文本情感分析、邮件垃圾过滤、图像分类、异常检测等。常见的分类算法有k近邻、朴素贝叶斯、决策树、SVM、利用adaboost加强弱分类器等。
k近邻算法(kNN),简单地说,是采用测量不一样特征值之间距离的方法进行分类。kNN的工做原理是:存在一个样本集合,也称做训练样本集,而且样本集中每一个数据都存在标签,即咱们知道样本集中每一数据与所属分类的对应关系。输入没有标签的新数据后,将新数据的每一个特征与样本集中数据对应的特征进行比较,而后算法提取样本集中特征最类似数据(最近邻)的分类标签。通常来讲,咱们只选择样本数据集中前k个最类似的数据,这就是k-近邻算法中k的出处。最后,选择k个最类似数据中出现次数最多的分类,做为新数据的分类。
决策树,比较容易理解,如下图为例,根据某我的的特征(年龄、是否学生、信用状况)来进行分类,判断是否能够放贷款给他。生成的决策树以下图示。决策树思想,实际上就是寻找最纯净的划分方法,主要经过决策树的构造和剪枝。
尽管有剪枝等等方法,一棵树的生成确定仍是不如多棵树,所以就有了随机森林,解决决策树泛化能力弱的缺点。根据训练数据,构造m个CART决策树,这m个CART造成随机森林,经过投票表决结果,决定数据属于哪一类(投票机制有一票否决制、少数服从多数、加权多数),这就是随机森林的方法。
朴素贝叶斯,其中的朴素一词的来源就是假设各特征之间相互独立。这一假设使得朴素贝叶斯算法变得简单,但有时会牺牲必定的分类准确率。贝叶斯公式定义以下:
公式的右边是总结历史,公式的左边是预知将来,若是把Y看出类别,X看出特征,P(Yk|X)就是在已知特征X的状况下求Yk类别的几率,而对P(Yk|X)的计算又所有转化到类别Yk的特征分布上来。朴素贝叶斯算法逻辑简单,容易实现,计算过程当中的时间空间开销也比较小。朴素贝叶斯假设属性之间相互独立,这种假设在实际过程当中每每是不成立的。在属性之间相关性越大,分类偏差也就越大。
支持向量机(Support Vector Machine, SVM)的基本模型是在特征空间上找到最佳的分离超平面使得训练集上正负样本间隔最大。SVM是用来解决二分类问题的有监督学习算法,在引入了核方法以后SVM也能够用来解决非线性问题。通常SVM有下面三种:(1)硬间隔支持向量机(线性可分支持向量机):当训练数据线性可分时,可经过硬间隔最大化学得一个线性可分支持向量机。(2)软间隔支持向量机:当训练数据近似线性可分时,可经过软间隔最大化学得一个线性支持向量机。(3)非线性支持向量机:当训练数据线性不可分时,可经过核方法以及软间隔最大化学得一个非线性支持向量机。
AdaBoost,每种分类算法都有本身的优缺点,咱们把分类效果不是很好的分类器叫作弱分类器,分类效果好的分类器叫作强分类器。Adaboost算法基本原理就是将多个弱分类器(弱分类器通常选用单层决策树)进行合理的结合,使其成为一个强分类器。Adaboost采用迭代的思想,每次迭代只训练一个弱分类器,训练好的弱分类器将参与下一次迭代的使用。也就是说,在第N次迭代中,一共就有N个弱分类器,其中N-1个是之前训练好的,其各类参数都再也不改变,本次训练第N个分类器。其中弱分类器的关系是第N个弱分类器更可能分对前N-1个弱分类器没分对的数据,最终分类输出要看这N个分类器的综合效果。
上面依次对经常使用的分类算法进行了介绍,PAI-Studio中也提供了相应的算法组件,若是想要使用,能够直接拖拽对应组件,配置相关参数便可。
1.2 回归问题
回归与分类的不一样,就在于其目标变量是连续数值型。回归分析根据已知数据训练出模型(即回归方程),对新的数据预测时,只须要代入到模型,计算出预测数值。回归几乎能够应用到任何事情,好比预测商品价格、股价趋势预测、预测明日气温、预测某种状况发生几率(可根据几率大小转化为分类问题)、预测广告点击率进行排序等。比较经常使用的回归方法主要有线性回归和逻辑回归。
线性回归比较简单,描述了自变量和因变量之间的简单线性关系,咱们的目标是经过特征的组合来学习到要预测函数式(线性式),咱们用X1,X2..Xn 去描述feature里面的份量,咱们能够作出一个估计函数:
,θ在这儿称为参数,在这的意思是调整feature中每一个份量的影响力。若是咱们令X0 = 1,就能够用向量的方式来表示了:
, 咱们也须要一个机制去评估咱们θ是否比较好,因此说须要对咱们作出的h函数进行评估,通常这个函数称为损失函数(loss function)或者错误函数(error function),描述h函数很差的程度,在下面,咱们称这个函数为J函数,咱们要作的就是调整θ以使得J(θ)取得最小值。以下所示:
其中,最经常使用的方法是梯度降低法。
逻辑回归,logistic回归本质上是线性回归,只是在特征到结果的映射中加入了一层函数映射,即先把特征线性求和,而后使用函数g(z)将最为假设函数来预测。g(z)能够将连续值映射到0和1上。logistic回归的假设函数以下,线性回归假设函数只是
logistic回归还能够用来分类0/1问题,也就是预测结果属于0或者1的二值分类问题。
此外,经常使用的回归方法还有对于线性回归作了约束变化的岭回归,非线性的树回归等。
固然,PAI-Studio中也提供了这些算法组件。
1.3 聚类算法
聚类算法是比较典型的非监督学习。聚类算法的应用也是十分普遍的,在新闻热门话题聚类、图像分割、用户画像分析聚类进行个性化推荐、基因工程等多个领域都有很好的应用。聚类算法直观地理解,就是将类似的对象归到同一个簇中,将不类似的对象归到不一样簇,簇内的对象越类似,聚类的效果越好。常见的聚类算法有K-means、K-medoids、DBSCAN、层次聚类、谱聚类等。
K-means聚类是发现给定数据集的k个簇,簇个数k是用户提早设定的超参数,每个簇经过其质心,即簇中全部点的中心来描述。K-means的工做流程是这样的:1) 随机肯定k个初始点做为质心。 2)将数据集中的每一个点分配到一个簇中,具体就是为每一个点找距其最近的质心,并将其分配给该质心所对应的簇。3)更新每一个簇的质心,即更新为该簇全部点的平均值。4)重复步骤2和3,直至收敛,即知足迭代次数或者质心基本再也不变化。K-medoids算法是K-means算法的变型,其中最主要的不一样在于如下两点:第1步骤中Kmedoids选取的质心必须是某些样本点的值,而不是任意值;更新质心的时候须要先计算cluster内全部样本点到其中一个样本点的曼哈顿距离和(绝对偏差),而后选出使cluster绝对偏差最小的样本点做为质心。
K-medoids聚类能够理解为K-means聚类的变种,其中K-means的初始簇中心点是随机的,K-medoids的初始中心点必须是样本中的点;K-means在迭代过程当中从新计算质心是计算的平均值,而K-medoids则是先计算全部样本点到其中一个样本点的曼哈顿距离之和(绝对偏差),而后选择使绝对偏差最小的样本点做为质心。此外K-medoids聚类的时间复杂度更高,对于大规模的数据性能更好,最后聚类的簇中心点也必定是样本点中的一个。
DBSCAN聚类,英文全写为Density-based spatial clustering of applications with noise,是一种基于数据密度的无监督聚类算法。 在聚类空间中的必定区域内,用给定的半径阈值和数量阈值,筛选出核心点及核心点的领域点,经过密度可达、密度相连的定义,实现数据点的聚类。 在 2014 年,DBSCAN在数据挖掘会议 KDD 上获颁发了 Test of Time award,该奖项是颁发给一些于理论及实际层面均得到持续性的关注的算法。和传统的K-Means算法相比,DBSCAN最大的不一样就是不须要输入类别数k,固然它最大的优点是能够发现任意形状的聚类簇,而不是像K-Means,通常仅仅使用于凸的样本集聚类。同时它在聚类的同时还能够找出异常点,这点和BIRCH算法相似。通常来讲,若是数据集是稠密的,而且数据集不是凸的,那么用DBSCAN会比K-Means聚类效果好不少。若是数据集不是稠密的,则不推荐用DBSCAN来聚类。
此外,经常使用的聚类算法还有EM聚类、谱聚类等,其中PAI-Studio提供了经常使用的聚类算法组件。
1.4 深度学习
神经网络是深度学习的基础,深度学习就是包含多个隐藏层(hidden layer)的深度神经网络。神经网络的基本组成单元叫作神经元(neuron),感知器(perceptron)是一种早期的神经元结构,在上个世纪五六十年代就被提出来了,以下图示,经过下图能够理解神经元的基本结构和原理。
神经网络是多个神经元链接起来构成,以下图示。
深度神经网络比浅层神经网络有更多结构上的优点,可以进行更多层次的抽象,在NLP、图像、语音等领域都有普遍的应用。深度学习是一个框架,每一个领域每一个具体场景均可以设计相应的网络结构来解决相应的问题。深度学习的算法也很是多,好比CNN、RNN、LSTM等都属于深度学习比较经常使用的算法框架。最近几年,深度学习发展迅速,各类学习框架层出不穷,其中有不少比较前沿也比较火爆的算法提出,好比GAN(生成对抗网络)、Bert模型等。
在PAI上想实现深度学习的解决方案,有两种方法,一种是利用PAI-Studio提供的框架Tensorflow和Caffee,在该组件上传入相应的python源码并配置相应输入输出和参数,便可利用阿里云背后支撑的资源进行深度学习的训练,以下图。
另一种深度学习解决方案是利用PAI-DSW(Data science workshop),该方案是专门为算法开发者提供的云端深度学习开发环境,详情及使用可参考使用文档。
pai上的深度学习解决方案
1.5 小结
PAI(Platform of Artificial Intelligence: http://pai.alibaba-inc.com)做为阿里巴巴集团的机器学习算法平台,能够支持客户结合各自业务场景打造专业、高效的智能解决方案。
结合上一节介绍,PAI为机器学习提供了高效的解决方案,其中主要可分为PAI-Studio、PAI-EAS、PAI-DSW三个部分,PAI-Studio提供了可视化的机器学习组件,简单拖拽及配置便可构造机器学习解决方案,生成的算法模型可在PAI-EAS部署,提供在线预测服务。PAI-DSW则为开发者提供了整套的云端深度学习开发环境,算法开发者能够很是方便的在该环境进行开发实战。
接下来让咱们经过具体的实战案例,来进一步了解机器学习、PAI、实际案例是如何完美结合的。
2.1 文章一: 商品价格预测
某收藏爱好者,欲购买某知名品牌的积木套装。为了了解如今的市场行情,他收集了关于该品牌积木的生成日期,是否为全新的,积木数量,原始价格等特征和已交易的价格。他想要根据这些数据,来预估如今市场上正在出售的积木价格,才能够选择合适的价格购入,但他发现经凭借经验来预测这些价格,每每不够准确,并且繁琐重复的工做至关耗费精力。
利用PAI进行商品价格预测,文章连接:https://yq.aliyun.com/article...
2.2 文章二:谁最具魅力
单身王女士常常逛某相亲网站,前先后后浏览了1000个男生,并给他们打标了,不喜欢、通常喜欢、很喜欢三个类别。该相亲网站的工程师,决定开发一个算法推荐模型,给王女士依次推荐很喜欢,通常喜欢的男生。并能够将这个算法模型应用到网站,吸引更多的单身青年注册使用,并能够找到本身喜欢的男/女友。
文章连接:https://yq.aliyun.com/article...
2.3 文章三:手把手实现商品推荐
在生活中,咱们常常给朋友推荐一些本身喜欢的东西,也时常接受别人的推荐。怎么能保证推荐的电影或者美食就是朋友喜欢的呢?通常来讲,大家两我的常常对同一个电影或者美食感兴趣,那么你喜欢的东西就很大程度上朋友也会比较感兴趣。在大数据的背景下,算法会帮我寻找兴趣类似的那些人,并关注他们喜欢的东西,以此来给咱们推荐可能喜欢的事物。
文章连接:https://yq.aliyun.com/article...
2.4 文章四:利用GAN自动生成二次元头像
GAN(生成对抗网络)主要的应用是自动生成一些东西,包括图像和文本等,好比随机给一个向量做为输入,经过GAN的Generator生成一张图片,或者生成一串语句。Conditional GAN的应用更多一些,好比数据集是一段文字和图像的数据对,经过训练,GAN能够经过给定一段文字生成对应的图像。
如何利用GAN自动生成二次元头像,文章连接:https://yq.aliyun.com/article...
阿里云机器学习平台:https://help.aliyun.com/produ...
【待补充】
原文连接本文为云栖社区原创内容,未经容许不得转载。