1
babyformula 2021-07-03 10:52:46 +08:00 1
1. 具体关系可以翻一翻目前高校有关专业的前要数学储备; 最优化, 随机过程, 矩阵论, 少部分信号处理. 本科的课程根据专业不同所教学的程度也有不同, 所以建议至少修到前面几科的专业程度;
2. 会被降维打击, ML 或者 DL 属于交叉学科, 只强一个分支没太大用, 除非之后也只搞这些交叉学科中的这一个分支的 research, 但是这么搞和单纯研究理论数学 /应用数学也没什么太大区别; 要转的话建议计算机专业课走一遍. |
2
huzhikuizainali OP @babyformula 等于说数学专业转 ML 最大的短板还是在“代码”方面?不过这方面也不会太短吧?毕竟数学专业的日常也会用 Matlab 或者 python 的常用库吧。致于数据库什么的,只要会用 python 或 Matlab 从数据库取数据就可以了吧。毕竟计算机专业的最后工作也不是所有事情都亲力亲为,而是专精某个细分领域。模型运行效率更加不是 ML 专业的人考虑的事情了吧。关注效率的话,至少要用 c 或 c++重写模型吧。
不知道以上认知是否靠谱?如有偏颇还望指正。 |
3
marcoxuu 2021-07-03 11:37:29 +08:00
如果只是回答标题的问题,我推荐台大李宏毅老师的 ML 课程,从传统 ML 到数学证明解释都讲得很详细,算是中文机器学习入门很好的课程之一。
至于你拆分的两个问题,把 ML/DL 描述的都过于定性了,ML 应该只能算 math 到 data science 中间的一个 layer,调参也只是 ML/DL 中一个小的步骤。至于数学转数据科学,我觉得不需要补任何技能,在 ML/DL 领域纯做理论更吃香。 |
4
oneTimeElastic 2021-07-03 12:16:24 +08:00 via Android 1
得看你说做什么方向,如果你做 learning theory 这类 数学要求还是很多的。相反现在深度学习这里很多 paper,如果你去看,其实并没有那么多数学要求。
如果你想做个研究者那么代码部分相对容易掌握;如果你想做 ml engineer 这类,那么你要掌握的就不只是 python spark 这类,你可能还要根据业务学会别的 |
5
babyformula 2021-07-03 12:33:02 +08:00 1
@huzhikuizainali "代码"也会区分到不同的专业和方向, 如果只是调用 matlab 或者 python 常用库其实在 ML 和 DL 领域可做的东西真的不太多. 举个例子, 研究领域要体现创新性 /突破性势必会要提出一些新的算法或者结构, 那么如何验证这种算法可行或者 benchmark 还是要落在程序的实现上, 这种往往都不是常用库里会出现的. 工业场景就更不用说了, 训练验证只是其中一小部分, 数据和部署有可能是更重要的环节.
是否亲力亲为得要看具体怎么定义, 如果数据处理(甚至是前处理), 还有训练 /验证框架(甚至是训练代码), 然后还有模型的压缩和部署都由其他专人给处理好, 那剩下的岂不是缓缓键入‘python run.py’就好了. 现实情况下往往这些都是需要 ML/DL engineer 需要考虑的内容 最后模型的效率和具体语言无关, 和硬件 /架构 /数据结构 /计算机系统 /算法优化 等等这些计算机不同方向的关系很大 |
6
Jooooooooo 2021-07-03 13:26:29 +08:00
1. 重点可以学下矩阵论, 凸优化之类 (都有专门的书
2. 数学确实有优势, 我研究生导师招人更喜欢本科数学的 |
7
huzhikuizainali OP @oneTimeElastic 谢谢回复。你回复的内容对我很有启发。
“如果你做 learning theory 这类 数学要求还是很多的。相反现在深度学习这里很多 paper,如果你去看,其实并没有那么多数学要求。”——————意思是,如果不做数据科学理论的推动者,只是将现有数据科学的理论用于实践,并没有那么多数学要求,对么?(这里说的没有那么多数学要求是没有那么高的“纯数学”要求。但是微积分线代概率统计最优化随机分析……这些依然要会,否则现有的数据科学理论方面的书也看不懂,更加不会灵活应用,也不会调参数,对么???) “如果你想做 ml engineer 这类,那么你要掌握的就不只是 python spark 这类,你可能还要根据业务学会别的”————这段话中如何定义 ml engineer 的工作内容?还需要根据业务学会什么?可否举个例子? |
8
huzhikuizainali OP @babyformula 谢谢回复。很有启发。
“ 如果只是调用 matlab 或者 python 常用库其实在 ML 和 DL 领域可做的东西真的不太多. 举个例子, 研究领域要体现创新性 /突破性势必会要提出一些新的算法或者结构, 那么如何验证这种算法可行或者 benchmark 还是要落在程序的实现上, 这种往往都不是常用库里会出现的. ”———————这段文字所说的创新突破大概是什么段位的创新突破?新的算法或结构又是在什么层面的?例如,现有的“工具”有:k 临近算法,回归,卷积神经网络………。“ 创新性和突破性”是指为这个“工具库”发明添加一些没有的工具么? “ 如果数据处理(甚至是前处理), 还有训练 /验证框架(甚至是训练代码), 然后还有模型的压缩和部署都由其他专人给处理好, 那剩下的岂不是缓缓键入‘python run.py’就好了. 现实情况下往往这些都是需要 ML/DL engineer 需要考虑的内容 最后模型的效率和具体语言无关, 和硬件 /架构 /数据结构 /计算机系统 /算法优化 等等这些计算机不同方向的关系很大”——————不知道有没有这方面“导论”水平的书推荐。不是单独的算法导论,数据结构导论(这有可能会偏向计算机科学领域了),而是数据科学领域的算法、数据结构,硬件,架构这些需要统筹考虑问题的“导论” |
9
IgniteWhite 2021-07-03 16:17:39 +08:00 via iPhone
probabilistic machine learning 是你要学的下一门课,从你学过的统计,到贝叶斯,到机器学习,概念串起来,神经网络的概念也建立好了
在下一门课是 deep learning,在建立好神经网络概念的基础上讲各种现在的神经网络结构 这是我了解的我们学校的相关本科课程设置。第一门课的数学知识擅长的话,就会学的很快。 |
10
IgniteWhite 2021-07-03 16:46:41 +08:00 via iPhone
楼主就是之前问什么是面向对象编程的啊。就说有种熟悉的味道。
|
11
tfdetang 2021-07-03 16:48:44 +08:00 1
只回答问题 2:
结论是不会。 机器学习深度学习工作主要分两种,研究型和工程师型。研究型的很多都是数学或应用数学的人,所以不存在降维打击。 而工程师型的主要做的是,理解算法与场景,将合适的算法引入到场景中,并工程化与落地。 工程师型只需要能看懂并理解算法就行,对数理的要求并没有达到非要学数学的人来做才行。 |
12
babyformula 2021-07-03 17:03:03 +08:00 1
@huzhikuizainali 不客气, 欢迎交流
[这段文字所说的创新突破大概是什么段位的创新突破?] A: 几乎涉及到所有 ML/DL 学术界除综述外的成果. 像 ls 老哥所说的 learning theory, (在 ML/DL 领域)要做研究也是需要写代码 /跑程序(实验)/拿数据结果的, 不然的话是不是就变成民科了 [新的算法或结构又是在什么层面的?] A: 可能小到一个 custom op, 或者 explicit regularizer, 可以理解为“k 临近算法,回归,卷积神经网络”中间的一个算子; 大到一个经典算法 /结构(CNN, LSTM 等等), 一套 efficient training 系统, 或者 cuda 架构 [“ 创新性和突破性”是指为这个“工具库”发明添加一些没有的工具么?] A: 可能没到造车这个级别, 但是至少需要通过程序语言, 通过数据, 在可复现的前提下来表达“创新性和突破性” [不知道有没有这方面“导论”水平的书推荐] A: 这个通用导论会比较复杂, 横跨软件硬件, 暂时还没遇到过, 即使有应该也是大部头吧; 推荐可以先看单一架构, 比如 cuda 的综述, 针对其硬件的设计思路, 架构, 算法层面的设计 /优化等等, 网上都可以找到官方的一些宣讲 |
13
huzhikuizainali OP @tfdetang 谢谢回复
如果工程师型,微积分线代,概率,统计应该也要很好的掌握吧。否则算法也理解不了。对么?一楼说还要看最优化, 随机过程, 矩阵论, 少部分信号处理。前三个非数学专业或应数专业的课程一般不会讲的。这使我觉得数据科学对数学的门槛要求还是挺高的。不知道工程师型的人员是否也要拿下最优化, 随机过程, 矩阵论, 少部分信号处理这些课程呢? |
14
huzhikuizainali OP @babyformula 谢谢耐心而详细的回复。不知道业内达到“突破或创新”水平的成果一般会公开发表么?(因为有些成果是公司员工创造的。理论上不应该公开发表。但是一来有些会开源,二来申请专利的时候也会让大家知道我有突破。还有技术过时了也会公开,使大家知道“事后”知道这些突破创新来自该公司且长期由其独家使用。)
|
15
babyformula 2021-07-03 18:29:02 +08:00 1
@huzhikuizainali 这是个很现实的问题, 只说每家企业或者机构可能都会有一些相应的限制, 有些内部公开, 有些部分公开, 有些用作 PR, 有些用来引领行业制定标准, 因人而异吧
|
16
oneTimeElastic 2021-07-03 23:44:24 +08:00 via Android
我其实建议不要先学什么别的 先找个一个星期过一遍斯坦福的 cv 和 nlp 课(忘了叫什么了) 你刷一遍看看感觉能不能听懂就知道自己的数学水平 /计算机水平能不能理解了
至于 ml engineer 我认识的是在部署模型 也就是公司的研究者搞好一个模型然后工程师投入实战 比如用 streamlit 搞个 app 出来 这方面水很深 我也不是很懂所以还得请懂得老哥好好解释一下 |
17
oneTimeElastic 2021-07-03 23:46:43 +08:00 via Android 1
业内的成果就我所知很多不会公开 比如 gpt3 或者谷歌的新 vit 现在大家只知道大概是什么样的模型 具体调参谁知道 都是只有公司内部才能复现结果
|