前言:本文是团员haiqiao的第2篇输出,后续还会有他的多篇输出文章,敬请期待!也欢迎更多团员来分享你的干货心得:)
目录
一、通俗理解机器学习是什么?(What)
二、简析为什么产品经理要了解机器学习原理(Why)
三、(重点)简单介绍机器学习和算法原理基础认知(How)
四、(重点)总结机器学习解决问题的常用思维(AI思维)
1)通俗理解:机器学习是实现人工智能的一种计算机技术,像人一样理解世界的一种方法。
2)机器学习的基本思路:把待处理的现实问题,抽象成数学问题来解决。
思路步骤:
第一:为这个问题,找一个函数F(x)模型表示它;
第二:利用数学方法,对F(x)模型求最优解;
第三:评估数学模型在现实问题中的解决结果情况。
下面的来自黄钊前辈的整理机器学习的本质例子供大家思考:
1)机器学习的本质是空间搜索和函数的泛化。
2)总结过去,预测未来。
3)机器学习的本质是模式识别。 一部分可以用于预测(有监督学习,无监督学习),另一类直接用于决策(强化学习)。
4)本质来说就是用数据猜测一个复杂函数,由模型复杂程度决定函数复杂程度,对于模型参数求解设计到优化问题。
5)机器学习和生物学习的过程本质上应该是一样的。我认为本质都是映射。
下面我用2张图给大家解析机器学习的边界,先来看一个现实中出行的问题:
1)现实中“关于出行选择最优出行方案”拆解:
a.出行任务:即出行的目的类型,有出发地和目的地;
b.出行工具:不同交通工具具备提供时间、空间服务;
c.出行情况:根据当天路途情况、达到时间要求、付出的成本等方面考量出行方案。
以上现实问题的解决过程的类比成以下人工智能选择算法工程解决方案的过程:
2)实现人工智能的算法(机器学习)解决方案
a.任务类型:指当前人工智能的功能属性是为了解决一个什么问题/任务?可能是判断或预测(回归)、分类、输出结构化内容
b.数据情况:指当前人工智能的功能实现根据业务的数据源和数据量、数据标注等等方面选择不同的学习方式,例如监督学习:依赖大量的标注数据;
c.机器学习算法:不同的算法的会针对解决不同任务类型有极佳的拟合效果(精确度)、不同的算法在训练时对数据依赖、算力性能和训练时间也不同;例如:SVM是解决二元分类任务的很好方法,要求数据特征较多、输出精确度高,耗性能。
根据上图机器学习解决方案中,将机器学习的边界关系总结如下:
3)机器学习与人工智能的关系、机器学习与深度学习的关系
机器学习是实现人工智能的其中一种技术方法,是人工智能的范畴。机器学习是所有算法的统称,深度学习是其中一类具体算法。
4)机器学习的分类
A.按学习情境(数据情况)分类
a.监督学习
监督学习是指给机器输入一个数据集,并且数据做好了标注(即答案)。机器通过数据来学习正确答案的计算方法。就类似生活中,我们在学校跟着老师学习。
b.无监督学习
无监督学习中,给机器输入的数据集没有标注好的“答案”,所有的数据都是一样的。无监督学习的任务是从给定的数据集中,让数据之间进行做相似、分类、关联等处理,挖掘出潜在的结构。
c.强化学习
强化学习是指机器所拥有的只有一个分数,机器自我评价的一种学习方法。它关注的是机器如何在环境中采取一系列行为,从而获得最大的累积回报(即最佳分数)。通过强化学习,那么机器应该知道在什么状态下应该采取什么行为。
d.迁移学习
迁移学习适用于只有少量的有标注的数据集,有大量没标注的数据集的情况,是一种从一个领域中学到的知识用来帮其他领域中的学习方式。类似我们生活中说的“举一反三、旁类侧通”。
B.按任务问题分类
a.回归任务
回归类算法:它的输出是一个连续的scalar(数值),预测PM2.5的值、预测股票价格、预测房价
b.分类任务
分类型算法:输出的是类别;二元分类:是与否、A或B、判断是否垃圾邮件;多元分类:例如判断文章分类属于政治经济文化等分类
c.结构化任务
结构型算法:输出的内容是结构化的。例如:在百度输入框输入一个查询内容,用户在界面看到一系列内容。
但是,更多时候一个人工智能的功能属性是多个算法模型组合起来实现的。
在人工智能产品的实现,需要产品经理准确的找到用户需求相匹配的最优的机器学习技术方案。这是跟产品经理的岗位职责,主要体现在以下方面:
1)定义用户需求边界,明确业务目标
2)初步识别用户需求涉及到哪些具体数据和算法模型
为训练模型提供必须的计算资源,以及产品研发期间为研发人员提供的高质量数据;并协助评估算法模型解决方案。
例如:刷脸登录,应用计算机视觉领域如CNN深度学习算法模型等等
1)人工智能产品的实现最终是为企业商业价值服务,产品经理主要是从成本侧和利润侧考虑。
2)算法工程实现的过程属于公司项目管理一部分,涉及大量的资源成本投入;算法模型解决现实问题的效果属于价值侧。
故理解机器学习原理,更好做AI项目落地及管理和协助算法模型效果评估。
产品经理与算法工程师配合,准确找到用户需求相匹配的最优的机器学习技术方案。
1)数据情况:
数据量大小、数据是否标注(数据质量)等等
2)业务场景:
判断业务场景中需要解决的问题本质上是一个什么任务类型。
3)业务目标(指标):
结合业务场景和商业目标,评估对算法模型的精确度要求、响应速度要求等
4)性能要求:
根据业务目标和数据源情况,评估算法计算的能力(算力)
1)了解机器学习解决问题的原理(略,见上文);
2)了解常见算法训练基本思路(不涉及具体算法推演)、适用解决问题的范围、应用场景;
3)了解机器学习项目流程及效果评估;
4)了解机器学习解决问题的思维。
1)按浅层学习、深度学习分类
分类标准:浅层学习没有隐藏层或者只有一层隐藏层(隐藏层的本质是进行特征变量转换),深度学习通常会有较多隐藏层,可以表达复杂函数,识别更多复杂特征。对于非结构化数据(文本、图像),人为创建特征困难,深度神经网络可以实现特征的自动提取,这是它的优势。
a.线层学习算法举例:
常见算法,例如:线性回归、逻辑回归、随机森林、SVM、K-means、RBM、AutoEncoder、PCA等。
b.深度学习算法举例:
常见算法,例如:CNN卷积神经网络和RNN递归神经网络,而基于RNN衍生出了LSTM和GRU等一系列算法。
2)按任务类型分类
分类标准: 结合业务场景,判断要解决的现实问题是什么类型任务,机器输出的结果是一个连续的数值、分类类别结果、结构化内容还是分值正常程度/标签类别的准确度。
A.回归
回归类算法指的是在训练中定量预测,机器输出的结果是一个连续的数值。适用监督学习方式。
常见算法:线性回归、支持向量机回归、随机森林回归
B.分类
a. 二元分类:指的是分类器输出的结果的两个类别。适用于监督学习方式。
常见算法:支持向量机、逻辑回归、贝叶斯算法、随机森林、神经网络等等
b.多元分类:实质上大部分都由多个二元分类器解决,输出结果的多个类别。适用于监督学习方式。
常见算法:逻辑回归、随机森林、神经网络
c.聚类:指的是给机器输入没有做标注的数据,让机器自己发现数据的潜在规律和结构,输出结果是把数据源分到不同的类簇中。适用于无监督学习方式。
常见算法:层次聚类、k_means算法、密度聚类算法、高斯聚类模型、 Adaboost、Boosting等
C.结构化
结构化任务:给机器输入的数据是X,输出是Y,但是X,Y的结构是不一样的任务类型。比如结构可以是序列,列表,树,向量、边界框等等
常见算法:隐马尔科夫模型(HMM)、条件随机场(CRF)、结构型SVM
D.异常检测
异常检测任务:指的是机器输出结果的是分值正常程度/标签类别的准确度值。
常见算法:支持向量机(SVM)、基于PCA的异常检测、随机森林
以下主要简单从产品经理视角总结14种机器学习的算法内容,后续,还会有专门文章来分享相关内容。
这一part内容主要从项目管理角度出发,产品经理需要在机器学习项目流程中需要做什么?有什么项目评估指标?
1)机器学习项目流程拆解(回答问题1)
一张图了解机器学习流程:
产品经理重点参与的模块:需求分析、数据采集和标注、模型评估和应用。
A.需求分析
B.数据采集与标注
详细可见《产品视角的数据构建及管理》:
C.数据预处理
数据预处理主要包含内容:清洗、转换、采样及切分。详细见《机器学习基础知识指南》(文末链接)内提到的【数据处理】模块
D.特征工程
特征工程的目的是筛选出更好的特征,让算法建模的模型更好的拟合数据。这个模块主要为特征提取(构建)和特征选择,具体方法可详见《机器学习之特征工程(二)》
E.模型训练和评估
F.模型应用
2)算法模型的评估指标(回答问题2)
很多事情都有一个指标来衡量好坏,算法模型也不例外。业务解决的问题主要分两大类:一般来说回归类和分类任务类型
无论是什么任务类型,首先结果一定要准确(符合实际目标值),回归类输出的预测值与真实结果值的差距尽可能无穷小;分类任务输出的分类结果一定要跟实际的结果尽可能无穷一样。
那么,用什么方法或者指标来衡量准确度,又在什么条件用该指标,该指标的意义(本质)是什么?有什么缺点?
下面引用下面大神分享这篇指标干货《机器学习模型评估的方法总结》,简单讲解提炼一下,方便理解日后实践。先来一张图看下常见机器学习的模型评估指标:
A.回归类算法模型评估常见指标
a.平均绝对误差(Mean Absolute Error,MAE)
平均绝对误差就是指预测值与真实值之间平均相差多大 ,能更好地反映预测值误差的实际情况。
b.平均误差(Mean Squared Error,MSE)
平均误差是线性回归中最常用的损失函数,也常用于模型之间的对比,MSE评价数据的变化程度,MSE值越小,说明预测模型描述实验数据具有更好的精确度。
c.R的平均方差(R-square)
数学理解: 分母理解为原始数据的离散程度,分子为预测数据和原始数据的误差,二者相除可以消除原始数据离散程度的影响。
R的平均方差“决定系数”是通过数据的变化来表征一个拟合的好坏。越接近1,表明方程的变量对y的解释能力越强,这个模型对数据拟合的也较好,越接近0,表明模型拟合的越差;经验值:>0.4, 拟合效果好。
缺点:数据集的样本越大,R²越大,因此,不同数据集的模型结果比较会有一定的误差。
B.分类算法模型评估常见指标
在理解下面这些指标之前,我先举个例子,方面理解记忆下面这些指标;
有6张照片样本数据做了标签,3张猫、3张狗。如下图:
现在有一个机器学习的猫狗图片分类算法模型,当该模型给出的结果,如下图:
那么结果可以分成四种情况:
1).实际为猫,且判断为猫(正确):TP – True Positive
2).实际为猫,但判断为狗(错误):FN – False Negative
3).实际为狗,且判断为狗(正确):TN – True Negative
4).实际为狗,但判断为猫(错误):FP – False Positive
这4种情况构成了经典的混淆矩阵,如下表:
a.准确率 (Accuracy)
基于上面的例子,准确率 =(TP+TN)/(TP+TN+FP+FN),预测正确的结果占总样本的百分比,即上面例子准确率=4/6≈66.7%。(注意在保证样本平衡前提下,不然准确率就会失真)
b.精确率 (查准率Precision)
精确率=TP/(TP+FP),所有被预测为正的样本中实际为正的样本的概率。
c.召回率 (查全率Recall)
召回率=TP/(TP+FN),实际为正的样本中被预测为正样本的概率
d.F1_score
在理想情况下,希望模型的精确率越高越好,同时召回率也越高;但是,在现实情况下,往往出现一个值升高,另一个值降低,那这个指标F值就是综合考虑精确率和召回率。F值的计算公式为:
式中:P: Precision, R: Recall, a:权重因子。当a=1时,F值便是F1值,代表精确率和召回率的权重是一样的,是最常用的一种评价指标。F1的计算公式为:
e.混淆矩阵
见上文
f.ROC曲线
ROC 和 AUC 可以无视样本不平衡, 分别这两个指标:真正率(True Positive Rate,TPR)和假正率(False Positive Rate,FPR)。这2个复杂的评估指标,这篇《机器学习模型评估的方法总结(回归、分类模型的评估)》已经很详细的解释了,这里直接引用内容,日后实践再通俗理解。真正率TPR= TP/(TP+FN),假正率FPR= 1-TN/(FP+TN)。
ROC(Receiver Operating Characteristic)曲线,又称接受者操作特征曲线。该曲线最早应用于雷达信号检测领域,用于区分信号与噪声。后来人们将其用于评价模型的预测能力,ROC 曲线是基于混淆矩阵得出的。下图为ROC曲线图:
g.AUC曲线
AUC就是ROC 曲线下的面积,通常情况下数值介于0.5-1之间,可以评价分类器的好坏,数值越大说明越好。AUC值越大,当前的分类算法越有可能将正样本排在负样本前面,即能够更好的分类。
AUC评价:
AUC = 1采用这个预测模型时,不管设定什么阈值都能得出完美预测。绝大多数预测的场合,不存在完美分类器。
0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。
AUC = 0.5,跟随机猜测一样(例:丢铜板),模型没有预测价值。
AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测,因此不存在AUC < 0.5的情况。
讲常用思维之前,先说两个机器学习涉及到两个基础学科和一个哲学问题。
在学习完机器学习基础技术的内容后,给我很大感受是人工智能实现原理除了计算机科学的内容外,背后的底层逻辑主要源自借鉴两个基础学科:生物学和数学。例如:深度学习源自借鉴大脑神经网络处理信息。
所以,我建议产品经理若感兴趣的话,可以在生物学和数学这两门学科进行有针对性的延伸自己的知识体系,日后可以理解人工智能实现原理的本质和辅助做AI产品设计。
从物质与意识的辩证关系角度:意识是客观存在的主观映像(出自高中课本的哲学知识)
我这里先简单理解“意识”是信息,包含我们设计的人工智能产品内部待解决的现实的问题相关信息(程序内的数据),而客观存在是待解决的业务问题本身甚至自然物质(包括人类等生物)。
进行类比下:我们设计的人工智能产品、机器学习技术的构造逻辑都属于意识,是客观存在的反映。比如上面提到深度学习(CNN等)就是根据人类大脑这个生物器官的反映。
那么, 解决问题的过程是实现意识对客观存在的一一映射,我们人类的意图是:让意识更快、更准的反映客观存在。故创造出机器学习技术这样的工具(手段)来实现。
基于上面的剖析,我们总结延伸出以下七个思维,也是来自数学和人类生物学两个方面解决世界问题的思维,我这里概括下,人类生物学提供解决问题的架构(化解问题的节奏)、数学提供具体的解决问题的方法。
1)模拟人类大脑流的思维
顾名思义,我们通过观察人类大脑是怎么感知世界万事万物的变化的,大脑是怎么处理这些信息的。那么机器学习技术的底层设计,例如深度学习神经网络如RNN、CNN的构造均来自观察人类大脑对信息处理的过程。
例如:“卷积神经网络(CNN)仿造生物的视知觉(visual perception)机制构建”。来自《百度百科词条》
2)升维(具象思维)
由简到繁,升维的思路就是把事物的信息拓展到一个高维度层面观察,以便发现观察得到最优的答案。例如:机器学习中的支持向量(SVM)在解决数据非可分的情况下,通过核技巧和软间隔把低维度的特征向量映射到高维空间,数据就可以分类了。
3)降维(抽象思维)
与升维相反,降维是由繁到简,降维的思路就是把复杂的事物信息映射提取关键的有价值的信息,以更快概括总结事物特征,得到最优的答案。例如,很多算法中都体现了这个思维,比如CNN中的对视觉数据特征的提取、再比如主成分析法(PCA)都是体现降维的这样方法,主成分析法(PCA)的输入是高维度的向量,通过自动编码器(Autoencode),实现降维,输出是一个低维度的结果。
4)迁移(推理归纳)
类似我们生活中“举一反三”、“触类旁通”等等,主要是实际的项目当中,解决效率的问题 ,例如迁移学习中,模型微调、层迁移、多任务学习;模型微调是在旧的模型加上一些约束条件得到一个新的模型,再用目标数据来训练这个模型;而层迁移可以根据不同的学习任务将用源数据训练好的模型的某几层取出/拷贝(连带参数),然后用目标数据去训练没有保留(拷贝出来)的层。这其中从不同学习任务、运用旧模型产生新模型的过程,体现了推理和知识迁移的思路。
5)“求同存异”思维
a.“求同”思维:
我个人的理解,就是宇宙中万事万物对相似的东西彼此之间都有吸引力,然后就会聚集在一起。那么机器学习算法很多实现的过程体现了这样的思维,比如我们做很多分类任务,就是要找出最相似特征、把他们分到一起。这类的算法太多了,例如聚类模型如k均值、SVM、随机森林、相似度计算等等。
b.“存异”思维:
我个人的理解,是我们对未知的、错误的认识的吸收;通过我们在实践中博弈、辩论、犯错中总结的方式来得到。在机器学习中,我们可以看到很多这样的算法,例如:强化学习,运用比较成功的例子应该是AlphaGo下围棋(训练时模拟无数个对手与AlphaGo下无数盘棋,AlphaGo则在无数盘棋的棋法和结果中总结经验,大部分从未知到已知的总结预测);GAN神经网络也类似。
6)数学问题求解思维
顾名思义,将数字化求解问题变为数学求解问题;比如将“识别垃圾邮件”的问题转化求解“这个变量是趋于0还是趋于1的置信度问题”;比如“用户说的这句话是什么意图“转化成”概率大小问题“;再具体机器学习算法中,SVM的 对偶性求解、训练算法时的梯度下降求解、相似度算法的求最大最小、计算距离等等都体现这样的思维。
7)“主要矛盾”思维
顾名思义,机器学习特征工程的过程,体现了哲学中“主要矛盾在复杂事物的许多矛盾中,处于支配地位、对事物的发展起着决定作用”;类比到机器学习的过程,从前面数据分析,做数据清洗处理、到机器学习特征技术工程,都是为了找起最主要关键数据特征变量,训练出来的模型才能更好拟合数据,才能实际有效解决问题。不仅机器学习如此,大脑捕捉信息时,无论是语音还是图像信息,只处理主要关键的;企业发展依靠主要关键业务线增长,个人发展更是如此,扯远了。总之,机器学习的过程就是要产品经理和研发围绕着“主要关键特征变量”来解决“主要矛盾”(即业务问题)。
以上为本人学习机器学习一些基础算法后,结合个人一些浅显的思考,总结一些观点,未经过实践,日后完善更新。
参考资料
团员haiqiao历史文章汇总
-END-
以上内容,来自饭团“AI产品经理大本营”,点击这里可关注:http://fantuan.guokr.net/groups/219/ (如果遇到支付问题,请先关注饭团的官方微信服务号“fantuan-app”)
---------------------
作者:黄钊hanniman,图灵机器人-人才战略官,前腾讯产品经理,7年AI经验,10年互联网背景,微信公众号/知乎/在行ID“hanniman”,饭团“AI产品经理大本营”,分享人工智能相关原创干货,200页PPT《人工智能产品经理的新起点》被业内广泛好评,下载量1万+。