作者:徐晗曦 来源:https://zhuanlan.zhihu.com/p/25439997
在《写给大家看的机器学习书》的第一篇,我们了解了机器学习的基本概念,机器学习的三个要素——数据、学习算法和模型(如图1所示)。
图1:
在这个系列的第二篇,我将首先借有好货这个真实的应用场景,让大家看看数据长什么样,了解现实中的机器学习输入数据是怎么来的。
接着,我们需要引出模型的的符号化表示和定义。数学符号的引入一方面有利于后续进入到具体的学习算法的讨论时有更高的效率,另一方面这也是每个学习者准确理解机器学习绕不过去的一环。
然后,在理解了输入数据,熟悉了模型的符号化表示后,我们将对图1所示的相对粗略的机器学习流程做进一步的细化,细化后如图3所示。如果说学完这一篇你只能带走一点知识的话,那就带走图3吧。一图胜千言,以后别人再问你机器学习是什么,大胆说出让机器学习专家也吃惊的精准理解吧:)
在这篇文章中,我们将接触到不少机器学习最常用到的名词、术语。不要小看名字的力量,一个东西一旦你知道了它的名字,就更容易注意到它的存在,并且掌握它。
1.1 数据长什么样
图2:
我们仍然以有好货产品的“瀑布流”页面(图2中间)为例,来看看机器学习的输入数据长什么样。
有好货瀑布流页是一个完全个性化的页面,不同的用户进入到有好货瀑布流页,看到的商品推荐是不同的。 我们希望在有限的屏幕空间内给每个用户展示他最有可能点击的商品,因此机器学习的目标是要让学得的模型能够预判用户是否会点击某个商品。 要学得这样的模型,输入数据简单来说大约长这样(表1所示):
表1
像这样的学习算法的输入数据,叫“训练数据”(Training Data)。 训练数据的每一行称为一个“训练样本”(Training Sample),通常大家就简称“样本”(Sample)。
我们注意到,每个样本有三个属性——年龄、性别、商品价格,代表了我们认为用户是否会点击某个商品主要由年龄、性别、商品价格三个因素共同决定(当然这里我们做了简化,实际上影响的因素远不止三个)。 这里的年龄、性别、商品价格我们称之为“特征”(Feature)。
在这个场景中,我们希望学得的模型可以用来预判用户是否会点击某个商品,因此光有年龄、性别、商品价格这样的特征信息还不够,还需要知道每个训练样本用户是否会点击。“是否点击”这个信息,称为样本的标注(Lable)。
1.2 训练数据怎么来的
了解了训练数据的长相,一定有人会问:训练数据是怎么来的呢?
其实也很简单,这个大数据时代,绝大多数互联网产品都会把用户的行为数据——包括浏览历史、点击历史记录下来,我们称为日志(Log)。
从日志数据中就能知道每个用户点过什么商品(对应标注为1的样本),看了什么商品却没有点(对应标注为-1的样本),再关联上用户的特征数据(年龄、性别)和商品的特征数据(价格),就得到学习算法所需要的训练数据了。
1.3 机器学习问题的分类
需要指出的是,并不是所有的机器学习问题都需要标注。事实上,根据训练数据是否有标注,机器学习问题大致划分为监督学习(Supervised Learning)和无监督学习(Unsupervised Learning)两大类。
此外,机器学习还有其他的类别,比如半监督学习、增强学习,我们将慢慢涉及。
还记得在第一篇我们说"机器学到的模型是一个映射",这是一个很好理解又非常准确的表述。
可是在后续的学习中,尤其是进入到具体的学习算法的讨论时,文字表达的效率不如符号表示来的高,所以现在我们就要引出模型的符号化表示和定义。这不仅能大大的提升后续讨论学习算法时的效率,也是准确理解机器学习绕不过去的一环。
其实也很简单,映射包括输入和输出,在这里输入就是用户的年龄、性别、商品价格,输出就是用户是否会点击,好,我们开始吧。
2.1 映射的输入
2.2 映射的输出
2.3 映射的表示
3.1 数据(Data)部分的细化
3.2 学习算法和模型部分的细化
综上,我们把机器学习流程重新细化成下图所示:
图3:
下一篇将介绍一个具体的学习算法和模型,它足够基础也足够典型,甚至是人工神经网络大门入门的第一步。
另外,有同学在评论中问怎样可以收到后续文章的更新,经测试,如果你希望在Timeline中收到更新,可以考虑关注我。如果你希望在通知中心中收到通知以确保不miss更新,可以考虑关注这个同名专栏。
再次感谢您的阅读。希望我有把事情说清楚,有任何疑惑或者问题,欢迎留言。