找回密码
 立即注册
楼主: JoshWindsor

如何看待「机器学习不需要数学,很多算法封装好了,调个包就行」这种说法?

[复制链接]
发表于 2021-7-4 15:16 | 显示全部楼层
这个问题应该这么问:
各个领域的机器学习模型和算法能封装到什么程度?产业链怎么分工?

不能简化成“要不要数学”这种黑白思维,加减乘除也是数学,不需要数学怎么编程?黑白思维马上就形成站队厮杀的局面。

我把机器学习产业分工简化成提供者和使用者,提供者负责研究和封装,使用者负责把它应用到具体的工程中去。

针对不同的领域封装程度肯定不一样,标准化程度高的领域,算法适用性就强,需要调整的东西就少。我把封装程度按从高到低列一下。

A,问题非常明确、标准的领域,比如人脸识别,封装成黑箱,接口和参数也非常简单,从使用的角度和其它库没有区别,几乎所有软件工程师都可以调用。

B,问题有一个通用的模式,但有一些可以预测的变化,核心算法封装成黑箱,但使用接口比较复杂,需要掌握算法的基本原理和相对简单的数学基础,懂得对业务特征进行抽象和参数匹配,能力比较强的软件工程师可以胜任。

C,问题类型可以抽象出一定的模式,但具体问题的变化非常大,模型不能覆盖所有的变化。可以做出一个原型算法,但不能做成黑箱,需要根据具体情况修改优化模型、算法、参数。这种情况软件工程师无法胜任,需要机器学习专业人员。

D,问题很难抽象成统一的模式,需要根据具体问题建立具体的模型算法。

对于A、B领域,提供者做产品,可以迅速做大。对于C、D领域,提供者做服务,比较消耗人力,价格贵速度慢,只有大型项目付得起成本,应用面比较窄。

所以,分领域讨论各自可以做到哪个层次啊,我不懂机器学习,也没有完整回答问题,只是给回答问题提供一个框架。
发表于 2021-7-4 15:19 | 显示全部楼层
打个比方, 简化问题, 对于赛车来说, 有两个职业, 分别是赛车的研发工程师和赛车手.
研发工程师对于这个赛车的内部原理是一清二楚, 但让他开的话, 水平可能一般般.
赛车手对于赛车的内部原理可能一窍不通, 但经过一段时间的刻苦练习, 可以将赛车开得很熟练.
这两个职业谁也别瞧不起谁, 做的是不同的工作.
我确实发现有些人对于机器学习的内部原理不太懂, 但应用(调包)起来确比大部分科班出身的人要好, 比如kaggle的这位Leustagos | Kaggle,
发表于 2021-7-4 15:19 | 显示全部楼层
需要数学,不需要编程,只要你懂了其中的数学原理,再花一百块钱找个码农帮你调一下包就行了
发表于 2021-7-4 15:20 | 显示全部楼层
打完了才发现其实回答有点跑题,不过就这样吧,调参还是很需要数学的。。。
之前看过《穿普拉达的女王》的一个片段记忆还满深刻的。这一段内容是女主陪着女魔头和一大堆超一流设计师讨论一个配饰的细节。女主不是很理解她们花如此大的功夫在这么细节的东西上面于是笑出声来,女魔头随后训斥道:你以为你不喜欢打扮就和这些顶尖的时尚无缘,但事实并不是这样。这些超一流的奢侈品牌设计师花了很大功夫创造出来每年的时尚潮流并在T台上展现。随后那些中高端的服装公司根据这些潮流指标打造出属于自己的设计(这些是大家能买得起的,不过依然很贵),最后那些请不起高端设计师的平民服装品牌就直接根据这些现成的设计拼拼凑凑让所有人都能够买到。
我个人理解的女魔头的意思是,其实高端低端的时尚只是一个金字塔的共同组成部分而已,它们并不是割裂的。金字塔顶端的设计师创造时尚,金字塔低端的设计师让时尚推广到普通人中。我们离不开那些顶尖的奢侈品品牌去引领潮流,但也离不开平民品牌去让所有的人都能够把这些廉价享受这些潮流。
机器学习技术,或者说任何一个科技的流动其实和这个时尚趋势的流动有着异曲同工之妙。最牛B的天才可以创造算法;很牛B的人可以改造算法,做成黑箱;普通的人呢,大部分时间就清洗数据调参。这里面一定有个高下之分吗?只能说大家都在做着自己的贡献吧。参加Kaggle比赛的高分者很多也就是import xgboost import LightGBM 然后调来调去.但他们的算法确实能给那些出题的公司带来(潜在的)收益。
发表于 2021-7-4 15:29 | 显示全部楼层
5月14日更新:
我发现这个评论底下很多人都有严重的阅读障碍,甚至是对「业务」一无所知。答案中明明说的是「如果你只是鼓捣api,确实调调接口就行了」,但是一些人却把它理解为业务。我实在是有点费解,原答案通篇没有提到任何「业务」相关的字眼以及对它的蔑视,居然还有人在下面说三道四。
对「业务」这两个字本身就没有理解的人,麻烦你学习学习再来comment好么


==========原答案======================




不光是机器学习,不管你做什么高大上的东西,如果你只是鼓捣api,确实调调借口就行了。因为牛逼的东西大多对开发者比较友好,文档丰富。
但是,只会鼓捣api有两个坏处
1.若干年后,你仍在api上艰苦奋斗,薪水低的一逼。你儿子说爸爸我想玩ps4x代,你只能干瞪眼,告诉儿子小孩子不能玩游戏。被刚进来的应届生鄙视,年龄这么大,只会调接口。再严重一点,直接失业也是有可能的。
2.你在任何一个领域都没话语权,因为你不深入。你变成了一个三流的伪全栈工程师。老板让你往东你不敢往西,永远也不敢说,老子不干了。


以上两点,都是有真实例子发生在我身边的。我以前也没觉得算法啊,数学啊,多重要。但是当我做的东西多了,我真的,真的在一些场景下找到了我之前学过的算法知识,并且加以运用,提升效率。虽然我做的东西可能没那么高的性能要求。但是,这至少证明了两点


1.学技术,勿以善小而不为。别忘记自己当初入行的初衷
2. 算法,数学这些东西都是内功,很多人平常不在意,也用不到。但是真到了用到的时候,往往都是关键时刻,这就是你体现核心竞争力,比别人牛逼,让老板只给你涨工资的最好理由
发表于 2021-7-4 15:29 | 显示全部楼层
有的时候问题根本就不是分类,聚类,regression这些有很多现成包的问题。

有时候就算是上面这三种,也没有现成的东西。比如聚类,因为要能解释结果,也因为要融合进一些额外的行业知识,不能直接用现成的cluster算法。

看到有人说图模型,exactly,用图模型的步骤是,建模,参数估计,预测。建模的时候要能写出概率分布,参数估计的时候要能写出似然函数,这时候可能会用些optimize的包,但这可不是调参数那么简单的,最起码要能求梯度吧。

很赞同高票答案,如果只会xgb,rf,cnn调参数什么的,也算data scientist,没问题。但怕就怕有些工作不自己建模就解决不了。我们这边七三开吧,三成的工作靠调参数解决不了。

不过没事,都是团队合作,需要数学的时候,找个会数学的合作就行了。合作几次,不会的人也都能学会了。

哦 对了,还忘了个比较有技术含量的事情,做feature,我不是说七三开么,那七成里面都是要好好设计变量的,也就是feature engineering,还是有点技巧的。
发表于 2021-7-4 15:34 | 显示全部楼层
几十种语言写成的几百个库中数千个算法实现上万的参数,说吧,用哪个,全砸丫脸上丫也挑不出来
发表于 2021-7-4 15:44 | 显示全部楼层
建筑工地的工人不需要学建筑,按照工头指示再加几位老工友的“培训”即可轻车熟路。
要成为一名优秀的建筑师却需要不知多少年的寒窗苦读,画画功底、力学知识、工程制图、软件操作等等都不可或缺。
如果想一辈子在AI界搬砖,你确实不需要学数学,调用封装好的包,按照数据学科家等技术人员的指示,即可造出大楼。
And good luck with that, 因为任何一个上过几月甚至几周培训学校的学员,都有可能取代你的这个位置。
当然我没有否定搬砖工的作用,任何高楼大厦都是由他们辛辛苦苦一砖一瓦砌成的。


社会有分工,in case 你想成为一名建筑大师,不妨看看我在下面的回答:
想学数据分析(人工智能)需要学哪些课程? - 知乎
以及下面专栏--因为,机器学习 = 优化+统计+编程
[运筹帷幄]大数据和人工智能时代下的运筹学 - 知乎专栏
发表于 2021-7-4 15:45 | 显示全部楼层
Sean Parent 有时候给 Photoshop team 里的人开课。他喜欢从晶体管的结构讲起。他说:他以前总是说一个好的工程师必须了解这些。
接着他讲,有一次他结束了以晶体管结构开始的一次讲话之后,Donald Knuth 走过来和他说:我就一点都不知道晶体管结构。虽然 Sean 还是没有完全推翻自己的看法,但是以后就不说得那么绝对了。
发表于 2021-7-4 15:52 | 显示全部楼层
好多小公司确实如此。招了一批不懂数学不懂统计的二本学生,模型乱用包乱掉,用不用得对基本靠运气。偏偏老板就喜欢这样的人,不说了。。。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-21 04:30 , Processed in 0.113826 second(s), 32 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表