当前位置: 首页 > 科技观察

数学不好能学好机器学习吗?

时间:2023-03-21 21:45:16 科技观察

01《机器学习好学吗?》这是我听到最多的一个问题。以前我的回答简单明了,就两个字,简单易学。不过,现在我觉得自己有点马虎。机器学习还是“好学”,但加上“学习”,不仅会变得有点啰嗦,还会让问题变得更复杂。可能有同学不以为然,说机器学习首先要学好数学。数学还容易学吗?这个观点很有代表性,里面包含两个问题。第一个问题,机器学习真的需要先学数学吗?另一个问题是,数学就一定难学吗?先说机器学习,我们总是说“machinelearningmachinelearning”,顺便说一句,好像有一种特殊的技术叫这个名字。其实机器学习就是一个大盒子,里面塞满了各种模型算法,从原理到结构,可能根本不是一回事。所以,学习机器学习,我首先了解的就是学习各种模型算法都是什么东西。它困难吗?我的回答是,可能很难,也可能不那么难。根据你不同的学习目标,至少有三种难度选择:第一种,如果你在学习Model算法后想开发一种新的,或者在已有的算法模型上增加某种设计来提高性能,这就是最难,世界上能做到的人不多。二是从数学层面掌握各种机器学习算法的原理和逻辑,通常包括理解各种数学术语,推导各种公式等。这比第一个简单得多。许多开设机器学习课程的高校都朝着这个目标制定教学计划,但门槛还是比较高。有点远。三是掌握各种机器学习算法的原理和逻辑。看起来和第二篇一样,只是少了“从数学层面”五个字。有什么不同?差别很大。这篇着重于问题。我最想知道的是如何选择合适的模型来解决问题。学习的内容就变成了不同的模型有什么不同的效果。当遇到问题的时候,士兵应该如何来堵水盖土。第二种,我们说学习难度大大降低了。与第二种相比,第三种更加破碎和断裂。难度之差大于“买保时捷”和“买保时捷车型”。更重要的是,很多人想学习机器学习。他们想要学习的不是数学公式,而是如何使用它们。有时他们还是带着问题学习,看看能不能在机器学习中找到一个得心应手的工具。所以我说,机器学习很容易学。02如何从解决问题的角度来学习机器学习如果学习机器学习是为了解决问题,自然希望学习成本越低越好,学习时间越短越好。而我们都知道,数学是一个时间黑洞,无论往里面扔多少时间,都可能听不到一点声音。这也是很多人不敢接触机器学习的现实原因。既然如此,我们不禁要问,有没有办法不用学数学就可以用机器学习来解决问题呢?有,而且方法不止一种。第一个也是更常见的一个是切换包。软件工程中有一个很重要的思想叫做“封装”。你按照定义好的接口调用就行了,算法是黑盒子。机器学习领域也有一些封装好的第三方库,比如大家熟知的Scikit-Learn。您根本不需要触及模型的任何数学原理。要做的只有三件事,准备数据,拟合数据给模型,让模型预测。这里的fit和predict是封装好的接口。如果你翻开一本机器学习的书,几乎所有的公式都不是代码,告诉你这个怎么用,那个怎么用,那它就属于这一类。这种方法简单明了,却让人有些不安。再加上我们程序员多疑的本性,不出问题就好了。如果有问题,那肯定是第三方库的问题,所以大家觉得还是需要了解一点机器学习的基本原理,不能做纯切换器。有没有办法绕过数学,理解机器学习的原理和逻辑?是的,这是第二种方法。如果你只是将机器学习作为一种工具来获得情感,那么你学习的重点就是机器学习模型的选择和组合。前面我们说过,机器学习是一个盒子,里面装满了各种千奇百怪的模型算法,也就是说,它是一个工具箱。那么我们应该在工具箱中给予它应有的尊重,了解工具箱中工具的作用,然后根据我们要处理的问题选择一个工具或者多个工具组合使用,最终解决问题.回想一下,当你在工具箱中寻找螺丝刀时,只会考虑哪一个更合适,而不应该先了解它们的铸造过程。当然,理想很丰满,现实很骨感。毕竟,机器学习模型不是螺丝刀。如果你想完全避开数学,准确地选择你需要的模型,如果你真正去尝试,你会发现其实很难。肯定有一批前辈已经了解了机器学习的数学背景,愿意从工具的角度来看待机器学习,积累一些学习资料。目前市面上基本没有从这个角度写的教材。我试着自己写了一本书,名叫《机器学习算法的数学原理和Python实现》,就是为了给大家一个机器学习学习方向的选择。03机器学习工程回到开头的问题,机器学习好学吗?嗯……不是那么容易说的。是的,这就是我现在的答案。机器学习没有变,但我变了。准确的说,我对“机器学习”这四个字的理解发生了变化。前面介绍机器学习的时候,我是怎么说的呢?我说机器学习是一个大盒子,里面装满了各种模型算法。这是我之前对机器学习的理解。这个说法正确吗?嗯……不是那么容易说的。或许一千个人眼中没有一千种机器学习,但是不同的人对机器学习的理解确实是不同的。因此,要回答学与不学的问题,还需要充分考虑语境。我最初是通过书本了解机器学习的,所以对我来说,我的理解和书本很相似。但是对于其他朋友来说,他们听说过生产环境中的机器学习。比如有人告诉他机器学习对这个问题比较好,所以他们更倾向于把“机器学习”当做一种方法。机器学习的使用就是增加一个工作环节。上游工作环节产生的一些数据,经过“机器学习”处理后,可以形成一些产品推送到下游工作环节。这些朋友对机器学习的理解可能过于务实,但可能更接近机器学习在生产环境中的真实面貌。也许现实会更现实,甚至可能根本就没有上下游之分。只是老板告诉你他需要什么。至于如何实现,用什么手段,需要建立什么样的上下游配套,就看你们自己想了。前段时间听几个朋友讨论参加数据竞赛对学习机器学习有没有帮助。当时我的第一反应很奇怪,怎么会没有帮助呢?后来想通了,大家觉得数据比赛太理想化了,要是老大也能像数据比赛一样准备好数据集,指明数据字段的含义,提前告诉大家要达到的评价指标,就可以了只能说明他不是老大,你才是老大。问题就出在这里。目前市面上的机器学习教材,不管是理论导向的还是程序设计导向的,书的章节组织大概是这一章介绍一个模型,下一章再介绍另一个模型。开始了整本书。试想,如果你找到一本教材,书真的很好,你真的很努力,所有的知识你都懂了,你能说你学会了机器学习吗?这很难说。为什么难说呢?因为如果你要解决的是老师提出的问题,应该没有问题,但是如果你要解决的是老板提出的问题,你很可能会一头雾水,觉得无从下手,然后怀疑你学到了一些东西。假机器学习。我见过太多这样的例子了。为什么?学习了机器学习却不知道如何在实践中使用,乍听之下觉得不可思议,其实和学开车是一样的。如果驾校教的是汽车本身,比如说什么是汽车结构,什么是发动机,什么是变速箱,各种专业术语和各种角度的结构图你都背下来了,现在请驾车在路上,难免行色匆匆。为什么?很简单,因为你学的是修车,不是开车。自然不知道是先踩油门还是先松离合。在这方面,机器学习很像软件工程。很多人认为开发就是敲代码,只有学了软件工程才能知道编程的其中一个环节。学术界喜欢提出新概念来占坑。为了方便大家的理解,我这里还提一个新的概念,叫做“机器学习工程”。只是希望告诉大家,很多人理解的“机器学习”其实应该叫“机器学习工程”。》,而模型训练只是机器学习工程的一部分。04如何构建机器学习项目软件工程有软件生命周期,软件生命周期分为几个阶段,机器学习也有这样的生命周期。学习项目,至少需要完成以下几个步骤:第一步是数据收集我们在学习机器学习的时候,一定要用到数据集,但是大家一定不要有这样的印象,数据集就像超市里的大米,自然地躺在那儿,水稻需要人去种,数据集也需要人去整理,工作不止一步,首先你要设计数据字段,是的,在数据??竞赛中,你只需要了解数据字段,自己做机器学习项目,连字段都要自己设计,接下来就是收集数据,这个工作不容易,收集什么样的数据,怎么收集它,如何收集后使用,以及如何管理。这一系列大大小小的问题完全可以写成一本书。比如在线发布数据,需要用到爬虫,而对于公司内部的数据,可能要用另一种方式,甚至可能需要搭建一个数据基础设施,比如现在经常上热搜的数据中心。第二步是清洗数据。假设你已经克服了重重困难,知道自己需要什么数据,并且已经成功收集了所有的数据,那么接下来重要的一步就是数据清洗。这与烹饪非常相似。食材一定要洗干净再下锅,否则可能会吃坏。数据也是如此。野生数据存在各种问题。最常见的是缺失值,这是概率事件,迟早要面对。如何处理?研究了很多方法,但没有万能的,要具体问题具体分析。除了缺失值之外,还有很多其他更奇怪的问题,比如异常值和离群值。这些就像你分组发调查问卷的时候,总会有一群人会执着地在“性别”一栏填写“汉族”。”同上。第三步是特征工程,也有人称之为数据探索的重要一步。简单来说,就是力求让数据的特征更加突出,能够显着提升模型的性能。有以前是说数据决定机器学习性能的天花板,模型才逼近这个天花板,现在好像变了一点,说特征工程决定性能的天花板,调参才逼近这个天花板。。反正这一步很重要,需要很多经验。内容太多了,真的需要一本书才能讲清楚。第四步是模型训练,就不多说了。到了之后到这里,终于看到了我们熟悉的风景,现在大家应该能明白为什么我有一种学习机器学习的感觉了,到了我真的很想做一个机器学习的项目,我会还是一头雾水,感觉无从下手,怀疑自己学的是假机器学习。第五步是模型部署。一般来说,此时,你的手上已经有了一个模型。当然,这个模式能不能起到作用,达到你或者你老板想要的预期目标,而不是怎么办,这是一个需要单独讨论的问题。假设你做得很好,模型也达标了,你现在可以把模型部署到线上,让模型在生产环境中发挥作用。不要认为这一步只是仪式性的。还有很多工程问题和奇怪的情况等着大家,就不细说了。以上只是机器学习工程中要做的事情的简要列表。主要目的是让大家明白“机器学习”不仅仅是机器学习,还包括一系列不亚于软件工程的复杂过程。我们称它为机器学习工程。从学术的角度看机器学习和从机器学习工程的角度看机器学习,可能会给你完全不同的理解和视野,自然而然地对能力提出不同的要求。