从0开始搭建产品经理AI知识框架:机器学习
关于机器学习你了解多少,文章分享了相关知识,希望对你有所启发。
什么是机器学习(Machine Learning)
- 定义:计算机程序可以在给定某种类别的任务 T 和性能度量 P 下学习经验 E ,如果其在任务 T 中的性能恰好可以用 P 度量,则随着经验 E 而提高。
- 简单来说:机器学习是能通过经验自动改进的计算机方法研究
- 通俗的理解:机器学习,是计算的反问题(逆运算) (@张江)
机器学习和人工智能以及深度学习的关系
用一张图来表示:
- 深度学习是机器学习的子集
- 而机器学习是人工智能的核心
举个简单的例子来说明机器学习:
先说说什么是计算:
计算房屋售价,给定输入,得到输出,如:
- 已知房屋售价的平米数(如下图)
- 已知计算公式:房屋价格 = 面积 * 每平米售价(5000)
- 求房屋的售价
再来说计算的反问题(逆运算):
机器学习:有数据输入和输出,通过机器学习,得到模型
- 已知房屋的基础数据
- 已知房屋的售价
- 求房屋售价计算的模型
当房屋售价计算模型有了之后,就可以用户新数据的预测,例如:
当然这只是一个简单的例子,要真正预测房价,会涉及到的大量的参数,比如:几室几厅几卫,地理位置,周边环境,……等等,且机器学习得到模型也会更加复杂。
再举一个古老经典的例子
你去菜市场买芒果,印象中颜色靓丽的芒果,比暗淡的要好吃,于是你挑选了100个芒果,付款,开开心心回家了。
结果回家吃了之后,你发现其中25个芒果不好吃,觉得根据颜色来分辨太片面了,但是吃的过程中,你又发现了大个的50个芒果都好吃,小个的芒果只有25个是好吃,你总结出大个的比小个的芒果要好吃。
下次出门时,你要买更大个以及颜色更靓丽的芒果,结果发现常买的店铺关门了,只能去别家买,结果两家的产地不一样,买回来100个芒果,反而是小个的颜色暗淡的好吃。
为了吸取教训,买到更多更好吃的芒果,你采用了「机器学习」的方法,随机在市场买了1000个芒果:
- 列出芒果的属性:颜色,大小,形状,产地,经销商,等等,
- 以及对应的:甜度,成熟度,是否多汁,等等
通过1000个芒果的数据,得到了一个模型,在下次购买的时候,你只需要输入相关的数据,就可以判断出芒果是否好吃概率,通过大量的筛选,你购买了一批「好吃」概率在95%以上的芒果,结果是个个非常好吃,你也成了众人敬仰的「芒果吃货(专家)」。
通过这两个例子,是否对于机器学习有了初步的认知呢?
如上图:机器学习对于数据运用,相当于人的大脑对于经验的运用
实际项目中机器学习工作方式
- 选择数据:将你的数据分成三组:训练数据、验证数据和测试数据
- 模型数据:使用训练数据来构建使用相关特征的模型
- 验证模型:使用你的验证数据接入你的模型
- 测试模型:使用你的测试数据检查被验证的模型的表现
- 使用模型:使用完全训练好的模型在新数据上做预测
- 调优模型:使用更多数据、不同的特征或调整过的参数来提升算法的性能表现
机器学习都有哪些学习方式?
涉及到机器学习相关知识:
- 监督学习:需要“标签”当老师,明确要预测什么。
- 无监督学习:不告诉机器正确答案,让机器自己学习,给出结果。
- 半监督学习:训练的数据,只有一小部分是标记过的,大部分是没有标记。
- 强化学习:通过反馈,边实践边学习。
- 迁移学习:在某个垂直领域训练完成后,移致去其他相关领域调优发挥作用。
以及这一波人工智能浪潮兴起的主要原因之一:
- 基于人工神经网络的深度学习。
接下来聊一下个人对于机器学习方式以及相关应用的理解。
监督学习
什么是监督学习
概念:监督学习就是通过样例给定输入与输出,让程序学会一些通用的规则,这样对于需要预测的数据,得到输出。
诠释:有一个明确预测的目标,比如:预估房价,给予机器大量的有标签的数据,以及最终的销售价,来训练这个模型。
监督学习主要解决的是两类问题
回归问题:
- 概念:预测结果是连续的,意味着我们尝试将输入变量映射到一些连续函数。
- 举例:如预测房价的例子,通过大量输入输出数据,以及各种房屋类型,环境等标签,训练模型后,输入新的数据,既可预测房价。
分类问题:
- 概念:预测结果是离散的,意味着我们尝试将输入变量映射到离散类别。
- 举例:如芒果的例子,同样通过大量输入输出数据,包括芒果,颜色,大小,形状,以及甜度,成熟度等标签,当输入新的数据,机器计算出属于这个芒果是在吃,还是在不好吃的分类里。
监督学习主要涉及到的算法模型如下
- 线性回归模型(Linear Regression)
- K-近邻算法(k-Nearest Neighbors,KNN)
- 决策树(Decision Trees)
- 朴素贝叶斯(Naive Bayesian)
- 逻辑回归(Logistic Regression)
对于算法,初期知道解决的是什么问题即可,不要从学习的视角去深入,而是实际遇到问题,遇到问题时候再研究。
无监督学习
什么是无监督学习
- 诠释:无监督学习就是不给数据提供标签,由程序自动对数据进行聚类、关联、降维等工作。
- 诠释:我们拥有大量的数据,但是不知道答案,需要用无监督学习的方法,让它们根据某些特征自动分成若干组,从而找到数据中存在的价值。
无监督学习主要解决的三类问题
关联
- 概念:为了发现各种现象同时出现的概率。
- 举例:经典例子,男人买啤酒和买尿布的关联性非常高,超市把啤酒和尿布放在一起,从而提高业绩。
聚类
- 概念:把样本分堆,使同一堆中的样本之间很相似,而不同堆之间的样本就有些差别。
- 举例:Google新闻,每天会搜集大量的新闻,然后把它们全部聚类,就会自动分成几十个不同的组(比如娱乐,科技,政治……),每个组内新闻都具有相似的内容结构。
降维
- 概念:降维意味着减少数据集中变量的个数,但是仍然保留重要的信息。主要作用是压缩数据与提升机器学习其他算法的效率。
- 举例:房价包含房子的长、宽、面积与房间数量四个特征,也就是维度为4维的数据。而面积=长 × 宽,通过降维算法我们就可以去除冗余信息,即从4维的数据压缩到2维
无监督学习主要涉及到的算法模型如下
- K 均值算法(K-means)
- 自编码(Autoencoding)
- 主成分分析(Principal components analysis)
- 随机森林(Random forests)
同理,解决实际问题中,再深入到算法里提升自己的认知。
半监督学习
什么是半监督学习
- 概念:使用大量的未标记数据,以及同时使用标记数据,来进行模式识别工作。
- 诠释:大概意思就是,监督学习与无监督学习相结合的一种学习方法,介于两者之间。
半监督学习解决问题
- 相比监督学习:节约人力成本,提高投入产出比。
- 相比无监督学习:可以得到分配更高精度的模型。
具体适用场景的举例
- 例如:视频网站上有几百万的视频,但其中只有几十万的视频有标签,如果把剩下几百万视频都打上标签,工作量和成本是巨大的,而用无监督的方法,在很多情况下精度会很低,所以使用半监督的方法,可以在节省人力的情况下,得到分类更高精度的模型。
- 例如:垃圾信息过滤,一般的方法是监督,需要大量的语料标注,告知系统哪些可能是垃圾信息。但用户产会生了大量的信息,且垃圾信息的发布者也在调整策略,无法进行实时标注,这里可以用半监督的方法,根据垃圾信息发布者的特殊行为,发布内容等找到相似性,进行过滤。
强化学习
什么是强化学习
- 概念:强化学习就是智能系统从环境到行为映射的学习,以使奖励信号(强化信号)函数值最大。如果Agent的某个行为策略导致环境正的奖赏(强化信号),那么Agent以后产生这个行为策略的趋势便会加强。
- 诠释:针对没有标注数据集的情况而言,通过反馈来区分是否越来越接近目标。比如常见一个猜价格的游戏,你来猜这个东西值多少钱,别人告诉你猜的价格是高了还是低了。
- 例如:阿尔法狗,自己跟自己下围棋,通过一盘盘的胜负,自我学习、自我修炼、自我改正,然后一个一个迭代,自己跟自己下了1000万盘之后,完全就是一个新的狗狗。
强化学习和监督学习的区别
监督学习总的来说是一个开环的学习。
- 通常,监督学习任务会从环境中收集一批数据;
- 接着我们用监督学习算法从数据中产生模型;
- 最后就可以用这个模型来做预测了。
但是对于强化学习来说,它面对的是一个闭环的学习。
- 首先,也是从环境中产生数据;
- 用强化学习的算法从数据中产生模型;
- 还要把模型放回到环境中运行,接着又会产生新的数据出来,再重复以上步骤。
强化学习的应用
- 例如:训练机器臂,把一个指的位置的物体,拿到另外一个指定的位置上,这里你不告诉它怎么做,让他通过一遍遍的训练,找到最佳的移动物体路径。
- 例如:个性化推荐,当推荐你某个分类内容时候,你会点击或查看,它就会根据你的行为,推荐给你更多该分类的内容。
- 例如:无人机操作,指定你的无人机进行某种动作飞行,通过强化学习来控制高度,速度,姿态等等,根据奖励让它自己学习策略,来达到目的
迁移学习
什么是迁移学习
- 概念:一般就是指要将从源领域学习到的东西应用到目标领域上去。
- 诠释:比如你会骑自行车,你会控制车把,刹车,控诉,躲避,踩踏,平衡感等等,然后让你骑摩托车时候,你也可以轻易上手,逐渐适应速度和动力上的特殊性。
迁移学习应用
- 模拟中学习:不管是无人车,还是机械臂,在现实中学习耗时且昂贵。通过模拟的方法,在虚拟中完成部分的训练,迁移到现实中,当然这种方法存在很多问题,毕竟虚拟世界无法做到跟现实一模一样,比如物理引擎,但是作为初始训练是可行的。
- 适应新领域:在线推荐系统中利用迁移学习,例如影像资料领域做好一个推荐系统,然后应用在稀疏的、新的垂直领域书籍资料里。
- 跨语言传播知识:从一种语言学习然后将所得知识应用于另一种语言,是迁移学习的另一个重要应用。比如英语训练之后,迁移到印度本土语言上。
以上就是对于机器学习部分的一部分认知,而其中「深度学习」部分,会单独完成一篇笔记来跟大家交流。
相关阅读
作者:兰枫,微信公号:蓝风GO @LanFengTalk,前腾讯游戏,新浪微博PM,Elex产品总监,8年的游戏,社交,O2O等产品相关经验,连续创业者。
本文由 @兰枫 原创发布于人人都是产品经理。未经许可,禁止转载。
题图来自PEXELS,基于CC0协议
更理解在线广告系统了
强化学习和迁移学习作者没有提起对应的算法。是因为时间仓促直接发出来了,还是因为算法不好写呢?对应的算法是否可以在评论区补充个大概的内容。
很不错
很不错的文章
计算机程序可以在给定某种类别的任务 T 和性能度量 P 下学习经验 E ,如果其在任务 T 中的性能恰好可以用 P 度量,则随着经验 E 而提高。
“机器计算出属于这个芒果是在吃,还是在不好吃的分类里。”这句话好像在“芒果是在吃”加上个“好”字更合理?