社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

机器学习|刘博士谈机器学习--起手式

数据魔术师 • 7 年前 • 624 次点击  


“刘老师”课堂继续开课啦~~

大家可以在文章留言哦~

(点赞数最多有小礼品呐)

没有看到上一篇的童鞋可以戳一戳下方哦~

机器学习|刘博士谈机器学习--开篇


00

Preface

距离上一篇过去很久了,这一点不像一个想红的作者应该做的事情。这两周的确事务太繁忙,每天想抽一点时间写几句,却始终没这个空闲。昨天我一个堂弟向我咨询机器学习的事情,他表示读过我上一篇文章,我突然有种10岁的时候在农村孩子报上发表诗歌的爽快感,开始意识到这是一个极有意义的事情。从这一篇开始,我将在每周六进行更新,首发在哈希大数据上。

1

我说过,机器学习的目的是为了判断,比如判断产品未来的销量、判断客户是否会流失、判断一个一个词语的意思。销量、流失与否、词义,在数学里有时被称为被解释变量、因变量或者反应变量,在机器学习里,它们是标签。不管我们怎么称呼它,这是机器做判断的目标。

机器学习的判断是要有知识的,而知识是通过学习而得到。学习涉及到两个方面,一方面是教材,一方面是教学。对于机器,教材就是数据,数据有可能是结构化的,或者是非结构化的,比如图片、视频、音频等。在数据中,我们首先要明确标签是什么。这个通常是由问题决定的,比如零售商想要预测产品未来销量,那么销量就是标签,我们要在数据中把这个标签明确起来。


我们还需要知道,数据向我们提供了多少信息用来判断标签。即便是再伟大侦探,也离不开犯罪现场的勘察,离不开对案件特征的了解。特征,是从数据中总结出来的、可能对判断标签产生作用的信息。例如,在预测衣服销量时,衣服本身的特征(颜色、尺寸、版式等)、衣服价格、营销手段、竞争产品的信息都可能会成为机器判断销量的重要依据。

机器学习除了要有教材,还要有足够的教材,或者说,要有足够的样本。回想高中的学习经历,相信大家都经历过题海战术,题海战术的目的就是训练我们在面对新的题目时能够做出正确判断的能力。这种战术,虽然不想承认,但它是有效果的,其原因就在于每一门课程都有很多知识点,不同知识点的组合所需要的解题方法是不一样的。你可以把知识点看作是特征,把解题方法看作是标签。每一道题目,都是关于特征和标签的一个观测如果题目数量不够,对于一个新出现的知识点组合,你就很难对解题方法做出判断。换句话说,当观测数目不足时,特征和标签之间的关系难以被训练出来。有时,比较聪明的学生还会对老师讲解的知识点进行再加工,形成新的知识体系;这个在机器学习中,被成为是特征选择和特征变换(主成分分析法就是在做这个事情)。




2

在上节最后一段,我提到了训练这个词。我认为,特征与标签之间的关系是天然的,但是我们不知道(而且可能永远也不知道),所以通常的做法是,建立一个模型,把特征和标签联系起来。这个模型可以是一个带参数的函数,也可以是无参的一个规则,总之,机器通过这个模型,就能够依据特征很好地判断标签。训练模型(包括寻找模型参数或者形成模型规则),属于机器学习的教学过程。

你可能在意到了我那句话,你可能永远都不知道特征与标签的关系是怎样的。这不是一个悲观的论调,相反,我认为这是一个事实。但这并不代表机器学习在做无用功,对于同一个问题,我们可能会建立不同的模型,这些模型可能都不是真实的模型,但他们中一定有一些比较有用。这里的有用是指,模型较为成功地反映了特征与标签的关系,具体体现在,我们可以利用模型,依据特征,对标签进行正确率较高的判断。

当我做了老师以后,我越来越觉得,教学,不是一件容易的事情。把知识点和一些课后习题讲给学生听,并让他们记住,这也就相当于把数据输入给机器,这个并不难。但是,给学生分析如何把知识点应用到具体案例中来是一件需要认真琢磨的事情。我总是相信学生是足够厉害的,如果他们不能够学以致用,那教学环节很可能出了问题。在大数据时代,我们获取数据的能力越来越强,为数据建模和训练模型的方法也必须不断提升。

3


我常认为,模型的训练方法是一个挫折学习的过程,因为在机器学习的算法大多是基于损失来优化参数。以线性回归这个简单的模型为例,我们把标签判断为特征的一个线性组合,也即,给每个特征一个参数,各个特征和其参数相乘会议后再求和。明显,不同的参数,可能导致不同的线性组合,也会导致标签的判断不一样。我们判断的标签取值与其真实值之间的距离就可以看作是一个损失,使得损失最小的参数就是我们所希望得到的。这个搜寻过程,我们可以通过一些优化算法来实现。

以上就是我这一篇文章的内容,似乎又在机器学习的具体问题周围打了一个圈。这估计是我今后文章的一个特点,机器学习具体的模型、算法、案例,已有许多成熟的书籍,在一篇简短的、公式难以插入的公众号文章里,我不觉得可以把具体问题剖析地面面俱到,最多能做到浅尝辄止。这种浅尝辄止的科普式介绍,网上已有很多。我希望我可以提出一些思维上的分析,帮助大家更好地理解机器学习这个学科。

看这里

附言:机器学习通常都是通过最小化损失来训练模型,所以机器学习的问题,最终都还是一个优化问题。

附言:给大家一个无监督的作业吧我下一篇会讲到分类的问题,也就是当我们的标签取值为0或者1时,你有没有想过如何去给机器设计一个学习的过程。


扫描下面二维码关注数据魔术师

你会有更多惊喜!!



连载文章推荐

机器学习|刘博士谈机器学习--开篇



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/7aedHSuroe
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/12923
 
624 次点击