机器学习相关从业者如何兼顾理论与工程能力

理论与工程

首先,小夕说一下自己目前对理论与工程的理解吧,这也是小夕当前研究理论和熟练工程时主要的出发点。(仅为个人思考,请勿当成真理

 

理论注重的是学科中各个知识点的大一统,将各种散乱的算法、现象、技巧来归结到一张大网中。这样在新理论、新技术到来的时候,你可以很快的从这张大网中get到新理论、新技术的本质,并将这些创新纳入你的大网,并且可以反思这张网,归结出其中的规律或者疑问,以此为突破点来“灵光一现”出创新的idea,说不定就是一篇轰动学术界的论文。

 

而工程,或者说用于实现想法的代码,则是对某个理论点的细节化实现。虽然在理论上只需要几个数学公式就描述清楚了,但是用代码实现的话往往充斥着大量细节需要仔细斟酌,一不小心就是一个bug。当然了,一些太过复杂的算法,如最优化算法,一般都在各种优秀的科学计算库里封装好了,调调API就可以了。但是每个工程总是有一些数学细节和小trick需要自己去实现或优化的。在工程里遇到的问题,有时也可以抽象成理论,反思一下或许也是一个改良模型的idea,发个小论文也行呀。

然后,鉴于大家喜欢听故事,就讲讲小夕自己的故事啦。

故事一

小夕是在大二暑假的时候接触的机器学习相关领域。在那之前,是移动计算特别火热的时代,就像现在是个程序员都喜欢吹嘘自己是做机器学习的一样,那时候好像身边的同学(当然包括小夕自己),都喜欢吹嘘自己Android开发/IOS开发多么多么厉害,又上架了一个IOS应用赚了几块钱之类的。

小夕也有幸在那个时代啪了好多代码(哪像现在,没敲多少行代码的就开始坐等几天的模型训练,然后改改参数,又开始坐等了),也因此熟悉了各类平台(linux、android、ios)。

 

然后那时候,形成的一种错误的思维就是“变成xx开发者/工程师无非就是将xx平台的API熟练一下,然后深入平台、框架的源码”,因此都快把数学丢干净了。

那时每天就是开脑洞,观察生活,搜集idea。然后借助xx语言在xx平台,甚至搬出单片机,来实现这个idea。在这个过程中,小夕发现用代码实现一个想法的时间远小于调试自己的烂代码的时间,于是扎进各种语言和平台的细节里无法自拔。

故事二

 

大二暑假,在机缘巧合下,被某个老师带去做人脸识别了(那时候实验室里没人知道深度学习是啥),然而小夕还是带着旧思维去做,最终的结果汇报如下:

“老师,这里我用PCA做的,效果还不错。但是我想试试SVD。”

(然后老师很慈爱的在心里默默说了一句“逗逼”。)

 

“小夕,你讲一下这部分怎么实现的”

“啊,好的。这里用两个for循环就可以了,第一层@#$%&,第二层#$%^&”

“停停停,别讲这些细节,讲原理”

“啊,好的。这里就是先用那个xxx函数预处理一下,然后用这个svm函数训练一个模型,然后调用模型的predict这个api得到结果”

“停停停,讲原理,讲原理!你为什么要用这个算法预处理?你为什么要用svm呢?”

“啊。。。因为我用了opencv里其他完成这个功能的api,效果都没这个好啊”

“@#¥%……%&*(”

 

没错,这是很真实的一次开会的内容。现在每次想到都深深的尴尬。。。

 

那时候,深深的感觉到玩弄黑匣子的笨拙,就好像试图用暴力法解决一切算法问题一样笨拙。

 

故事三

然而,你们没有想到的是,后来,小夕又矫枉过正了。在恶(chong)补(xue)了微积分、线性代数、概率统计后,一头扎入机器学习和图像处理算法无法自拔。以致于半年之内,除了用matlab练了几个小demo外,丝毫没有敲代码。

 

然后,都是泪...现在真想回大学里跟那位带我做人脸识别的老师说声谢谢。

正文

 

走上正轨是在上研究生以后,深刻的认识到在这个研究方向上,理论与工程缺一不可。于是摸索出如下自认为比较舒服、效率比较高、不易造成理论或工程断层的方法或原则:

 

  • 精力划分:理论与工程基本7/3分。

  • 编程语言:一门精,一门辅,剩下的备用。在完全切入这个领域之前,尽量避开C、C++、Java等编程范式或者说编程语言的感觉比较浓厚的编程语言(这句话讲的好奇怪),以防过多的编程语言细节干扰了你对算法的宏观理解,除非已经非常精通那门语言,且确保那门语言有该领域成熟的库。小夕首推精python,辅C++,备用matlab和java。

  • 如何入手一个新算法/新模型:

  1. 除非工程任务压得紧,否则在学习一个新算法/新模型时尽量先从数学角度理解透,纳入理论的大网下,再去看形式化的算法过程。

  2. 而形式化的算法过程要尽量与数学过程对应起来,如果感觉断层大,要尽量试图找到断层。如果实在找不出,或者精力少,则一定要记下这个断层。

  3. 之后就可以用代码去实现形式化的算法了,在这个过程中,就不要再过多纠结它的数学原型了,而是要试图从“感性意义上”去理解算法过程,并且用代码去实现这个感性的算法过程。

  • 如何入手一个新领域:比如你一直在做分类,然后要去做序列标注/预测相关的东西。这时就不是看一个新算法那么简单了,而是要尽量找到相关领域的综述性论文,或者比较权威的书籍,将这个新领域的各种算法概览、解决的任务类型、解决问题的一般化框架/流程给做到了然于胸,然后再去扎进其中具体的算法里。

  • 如何应对紧迫的工程任务:

    1. 此时千万不要做一个“完美主义者”(这里是超级贬义词)。比如工程需要,老师让对该领域一无所知的你赶紧实现一个机器学习模型,可不要先看微积分、线代、概率统计,再看机器学习算法原理巴拉的。既没有必要又耽误了任务。

    2. 直接按照工程任务的标准找到符合该标准的最成熟的模型/算法,然后去找实现了该算法的库。如果连库都没有,说明要么你找的有问题,要么确实需要很新的算法去解决,那就stackOverFlow寻找新思路+github找代码呀。算法原理什么的,甚至算法的工作流程什么的,不出问题就不用细看,只粗看懂这个算法用在哪里,输入是什么,输出是什么,有哪些参数需要调,大神们说怎么调就可以了,实在不知道怎么调就交叉验证啊(只要数据量不是特别大)。

    3. 快速入门一个库或者框架时,切记别上来就啃工具书的第一页。官网的《get start》往往是最好的入门资料,别人写的书籍虽然看起来靠谱、厚实,但是别忘了,书籍作者也仅仅是个使用者,而不是开发这个工具的人,他理解的再深也难免有偏差甚至偏见,最要命的是,这些书籍的作者往往默认为你有一大堆的时间去品他的书,实际上你哪有这些时间啊。因此,官网的《get start》之后,一般对这个新的库或框架就有大概轮廓了,这时边着手将其用在你的工程任务上,边结合官网进一步的指导文档(如果有的话)进一步学习。有条件的话备一本大而全的工具书,没条件的话官网的API文档也足矣,用到哪里查哪里。

    4. 完成工程任务后,趁热打铁,记录下本任务过程中遇到的所有的黑匣子。如果黑匣子特别多,就先不要管了,按照第4条如何切入新领域的过程做。如果已对该领域有一定了解,则不妨从这些黑匣子算法或黑匣子框架入手,蔓延开自己的理论大网(经工程练手后的黑匣子会激发特别强的求知欲,往往理解和记忆更加深刻)

     

    都说,真正愿意把看家本领教给你的只有父母和中学老师。然而,其实还有一个人,那就是小夕呀o(≧v≦)o~

     

    当然啦,经验类的东西,有个体差异的,如果发觉小夕的经验让你的情况更糟糕了,赶紧stop,微调甚至舍弃这些方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/481226.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

万字拆解!追溯ChatGPT各项能力的起源

导语一篇十分深度剖析GPT系列模型的文章,作者翻译成了中文,在这里分享给大家。来源:李rumor作者:符尧, yao.fued.ac.uk,爱丁堡大学 (University of Edinburgh) 博士生,本科毕业于北京大学与 彭昊&#xff0…

用excel做数据分析

我们先来看看某公司全国产品销售的报表(截取了部分) 某公司全国产品销售的报表通过货品销售数据案例,需反映如下结果: 货品销售情况货品交货情况销售货品结构构成货品销售区域构成货品按时交货与合格品综合评价 我们使用 excel 进…

消失了一周的小夕在玩什么啦?

啊,你们的小夕回来啦~有没有被吓到( ̄∇ ̄)0小夕在玩什么小夕,终于,在今天,把,各种deadline,完成了(Д )首先,小夕要像大家深深的说一声谢谢啦。好多天没有打开订阅号的后台…

第四届泰迪杯数据挖掘大赛

<script src"//g.alicdn.com/aliyun/goldeneye-deploy/0.0.1/static/goldeneye.js"></script> <link rel"stylesheet" href"//at.alicdn.com/t/font_422887_vrqbpml6oos.css"><!--top-header begin-->云栖社区博客问答聚…

一般化机器学习与神经网络

0前言机器学习的初学者很容易被各种模型搞得晕头转向。如果扎进各种模型的细节无法自拔的话&#xff0c;可能很难发现一般化的框架。如果你觉得神经网络是非常不同的机器学习模型&#xff0c;如果你觉得神经网络的各种新名词让你觉得这完全就是一片新天地&#xff0c;那么可能你…

扩散模型再发力!图灵奖得主Hinton团队提出:图像和视频全景分割新框架

来源&#xff1a;机器之心作者&#xff1a;Ting Chen 等 编辑&#xff1a;赵阳本文的创新点一方面在于能够在大型全景掩码上训练扩散模型&#xff0c;一方面在于可以同时适配图片和流媒体场景。全景分割是一项基本的视觉任务&#xff0c;该任务旨在为图像的每个像素指定语义标…

经典的K-means聚类算法

原理部分主要来自大牛zouxy09和trnadomeet两个人的博客&#xff1b;后面的代码详细讲解为自己精心编写 一、概述 非监督学习的一般流程是&#xff1a;先从一组无标签数据中学习特征&#xff0c;然后用学习到的特征提取函数去提取有标签数据特征&#xff0c;然后再进行分类器的训…

《Cell》发现免疫系统的“武器研发实验室”

来源&#xff1a;生物通如果B细胞是免疫系统的兵工厂&#xff0c;制造抗体来中和有害的病原体&#xff0c;那么被称为生发中心的微小生物结构就是它的武器开发设施。.淋巴结的生发中心簇充满了成熟的B细胞(红色)&#xff0c;点缀着进化程度较低的B细胞(绿色)。 如果B细胞是免…

机器学习从理论到工程的第一步-编程语言篇

前言在文章《机器学习从业者如何兼顾理论与工程》中&#xff0c;小夕对编程语言的选择进行了小小建议。鉴于有些同学对小夕建议的“主python&#xff0c;辅C&#xff0c;备用matlab和java”疑问较大&#xff0c;小夕在此详细解释一下&#xff0c;也欢迎大家补充新观点哦。为什么…

聚类算法当中的K-means算法如何去做天猫淘宝的推广任务

5 人赞同了该回答figure data-size"normal">data-size"normal">这个入口是全网人气新品池&#xff0c;我们今天所获取到的数据都是来源于这里。无论是C店还是B店&#xff0c;统统都有机会进来。这个平台最有价值的数据&#xff0c;就是可以告诉我们自…

通过双重众包预测 RNA 降解的深度学习模型

编辑 | 萝卜皮基于信使 RNA (mRNA) 的药物具有巨大的潜力&#xff0c;正如它们作为 COVID-19 疫苗的快速部署所证明的那样。然而&#xff0c;mRNA 分子的全球分布受到其热稳定性的限制&#xff0c;这从根本上受限于 RNA 分子对称为在线水解的化学降解反应的固有不稳定性。预测 …

线性代数应该这样讲(一)

前言小夕为什么要讲线性代数呢&#xff1f;因为有人已经做了机器学习一段时间了&#xff0c;竟然认为矩阵就是用来存储数据的。小夕表示非常震惊。而深刻透彻的理解核函数、PCA、LSI、谱聚类等以空间映射为理论核心的机器学习理论时&#xff0c;靠大学里教的那一套线性代数&…

震惊!丧心病狂的夕小瑶推出新一轮写作计划!

时至今日&#xff0c;距离小夕发布的第一篇正式文章已经过去整三个月啦。今天又回头看了一下自己写的第一篇文章&#xff0c;不禁有点感慨“文风”变了这么多&#xff0c;甚至有点受不了第一篇文章中的萌气了\(//∇//)\然后文章还写的不怎么样。。。虽然第一篇文章写的好差&…

LeCun预言的自监督模型来了:首个多模态高性能自监督算法,语音、图像文本全部SOTA...

来源&#xff1a;机器之心编辑&#xff1a;nhyilin人类似乎对不同的学习模式有着相似的认知&#xff0c;机器也应该如此&#xff01;>>>>自监督学习能在各种任务中学习到分层特征&#xff0c;并以现实生活中可使用的海量数据作为资源&#xff0c;因此是走向更通用人…

史上最清楚的BP算法详解

前馈神经网络 在文章《逻辑回归到神经网络》&#xff08;以下简写《LR到NN》&#xff09;中&#xff0c;小夕为大家描述了一个从逻辑回归延伸到神经网络的过程。在《一般化机器学习与神经网络》中&#xff0c;小夕阐述了神经网络的一般性。这一篇会完全进入神经网络的状态&…

基于主动学习算法减少人工标注量,提升文本标注效率的方案探究

基于主动学习算法减少人工标注量&#xff0c;提升文本标注效率的方案探究阅读 451收藏 232018-06-26原文链接&#xff1a;yq.aliyun.comOPPO技术开放日第三期&#xff0c;未来的探索 AI&AR的实践应用juejin.im项目地址: https://github.com/crownpku/Chinese-Annotator 自…

具有生物启发训练方法的物理深度学习:物理硬件的无梯度方法

编辑 | 绿萝对人工智能不断增长的需求推动了对基于物理设备的非常规计算的研究。虽然此类计算设备模仿了大脑启发的模拟信息处理&#xff0c;但学习过程仍然依赖于为数字处理优化的方法&#xff0c;例如反向传播&#xff0c;这不适合物理实现。在这里&#xff0c;来自日本 NTT …

BP算法是从天上掉下来的吗?

第二个标题&#xff1a;一般而特殊的前馈神经网络前馈神经网络在文章《逻辑回归到神经网络》&#xff08;以下简写《LR到NN》&#xff09;中&#xff0c;小夕为大家描述了一个从逻辑回归延伸到神经网络的过程。在《一般化机器学习与神经网络》中&#xff0c;小夕阐述了神经网络…

深度学习如何应用在广告、推荐及搜索业务?阿里妈妈实践案例解读

</span></ul><div class"markdown-body"><div id"meta_content" class"rich_media_meta_list"> </div>阿里妹导读&#xff1a;靖世&#xff0c;阿里妈妈精准展示技术研究员。2011 年&#xff0c;刚进阿里的他提出…

AI for Science的上半场:人工智能如何重新定义科学研究新范式?

AI发展七十余年&#xff0c;每一技术性突破都将给人类未来开辟新一种可能性。而它与科学研究的深度融合&#xff0c;则会裂变出无数或无穷种可能性。来源 :36氪万众瞩目下&#xff0c;今年10月&#xff0c;有着诺贝尔奖“嫡传”之称的诺贝尔化学奖终于揭晓&#xff0c;授予了对…