学完微积分线性代数概率统计后应该如何学习机器学习和神经网络? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
huzhikuizainali
V2EX    机器学习

学完微积分线性代数概率统计后应该如何学习机器学习和神经网络?

  •  
  •   huzhikuizainali 2021-07-03 10:18:49 +08:00 via iPad 2096 次点击
    这是一个创建于 1562 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这个问题可以拆成两部分。
    1 、机器学习和题目中的数学知识是什么关系?是这些知识在数据科学领域的具体落地应用。除了数学理论还要分析具体案例才知道如何选数学工具,调参数?

    2 、学数学或应用数学的人来转做机器学习(假设代码能力已经具备)是不是降维打击?如果不是,原因是什么?数学专业的转数据科学需要补什么短板(不考虑代码,数据库等计算机技能)。或者说以后想转数据科学的数学专业学生,需要做哪些准备。或者他们在学数学专业课时需要特别注意哪些方面?
    babyformula
        1
    babyformula  
       2021-07-03 10:52:46 +08:00   1
    1. 具体关系可以翻一翻目前高校有关专业的前要数学储备; 最优化, 随机过程, 矩阵论, 少部分信号处理. 本科的课程根据专业不同所教学的程度也有不同, 所以建议至少修到前面几科的专业程度;

    2. 会被降维打击, ML 或者 DL 属于交叉学科, 只强一个分支没太大用, 除非之后也只搞这些交叉学科中的这一个分支的 research, 但是这么搞和单纯研究理论数学 /应用数学也没什么太大区别; 要转的话建议计算机专业课走一遍.
    huzhikuizainali
        2
    huzhikuizainali  
    OP
       2021-07-03 11:14:16 +08:00 via iPad
    @babyformula 等于说数学专业转 ML 最大的短板还是在“代码”方面?不过这方面也不会太短吧?毕竟数学专业的日常也会用 Matlab 或者 python 的常用库吧。致于数据库什么的,只要会用 python 或 Matlab 从数据库取数据就可以了吧。毕竟计算机专业的最后工作也不是所有事情都亲力亲为,而是专精某个细分领域。模型运行效率更加不是 ML 专业的人考虑的事情了吧。关注效率的话,至少要用 c 或 c++重写模型吧。
    不知道以上认知是否靠谱?如有偏颇还望指正。
    marcoxuu
        3
    marcoxuu  
       2021-07-03 11:37:29 +08:00
    如果只是回答标题的问题,我推荐台大李宏毅老师的 ML 课程,从传统 ML 到数学证明解释都讲得很详细,算是中文机器学习入门很好的课程之一。
    至于你拆分的两个问题,把 ML/DL 描述的都过于定性了,ML 应该只能算 math 到 data science 中间的一个 layer,调参也只是 ML/DL 中一个小的步骤。至于数学转数据科学,我觉得不需要补任何技能,在 ML/DL 领域纯做理论更吃香。
    oneTimeElastic
        4
    oneTimeElastic  
       2021-07-03 12:16:24 +08:00 via Android   1
    得看你说做什么方向,如果你做 learning theory 这类 数学要求还是很多的。相反现在深度学习这里很多 paper,如果你去看,其实并没有那么多数学要求。
    如果你想做个研究者那么代码部分相对容易掌握;如果你想做 ml engineer 这类,那么你要掌握的就不只是 python spark 这类,你可能还要根据业务学会别的
    babyformula
        5
    babyformula  
       2021-07-03 12:33:02 +08:00   1
    @huzhikuizainali "代码"也会区分到不同的专业和方向, 如果只是调用 matlab 或者 python 常用库其实在 ML 和 DL 领域可做的东西真的不太多. 举个例子, 研究领域要体现创新性 /突破性势必会要提出一些新的算法或者结构, 那么如何验证这种算法可行或者 benchmark 还是要落在程序的实现上, 这种往往都不是常用库里会出现的. 工业场景就更不用说了, 训练验证只是其中一小部分, 数据和部署有可能是更重要的环节.
    是否亲力亲为得要看具体怎么定义, 如果数据处理(甚至是前处理), 还有训练 /验证框架(甚至是训练代码), 然后还有模型的压缩和部署都由其他专人给处理好, 那剩下的岂不是缓缓键入‘python run.py’就好了. 现实情况下往往这些都是需要 ML/DL enginer 需要考虑的内容
    最后模型的效率和具体语言无关, 和硬件 /架构 /数据结构 /计算机系统 /算法优化 等等这些计算机不同方向的关系很大
    Jooooooooo
        6
    Jooooooooo  
       2021-07-03 13:26:29 +08:00
    1. 重点可以学下矩阵论, 凸优化之类 (都有专门的书

    2. 数学确实有优势, 我研究生导师招人更喜欢本科数学的
    huzhikuizainali
        7
    huzhikuizainali  
    OP
       2021-07-03 15:39:48 +08:00 via iPad
    @oneTimeElastic 谢谢回复。你回复的内容对我很有启发。

    “如果你做 learning theory 这类 数学要求还是很多的。相反现在深度学习这里很多 paper,如果你去看,其实并没有那么多数学要求。”意思是,如果不做数据科学理论的推动者,只是将现有数据科学的理论用于实践,并没有那么多数学要求,对么?(这里说的没有那么多数学要求是没有那么高的“纯数学”要求。但是微积分线代概率统计最优化随机分析……这些依然要会,否则现有的数据科学理论方面的书也看不懂,更加不会灵活应用,也不会调参数,对么???)


    “如果你想做 ml engineer 这类,那么你要掌握的就不只是 python spark 这类,你可能还要根据业务学会别的”这段话中如何定义 ml engineer 的工作内容?还需要根据业务学会什么?可否举个例子?
    huzhikuizainali
        8
    huzhikuizainali  
    OP
       2021-07-03 15:55:48 +08:00 via iPad
    @babyformula 谢谢回复。很有启发。
    “ 如果只是调用 matlab 或者 python 常用库其实在 ML 和 DL 领域可做的东西真的不太多. 举个例子, 研究领域要体现创新性 /突破性势必会要提出一些新的算法或者结构, 那么如何验证这种算法可行或者 benchmark 还是要落在程序的实现上, 这种往往都不是常用库里会出现的. ”这段文字所说的创新突破大概是什么段位的创新突破?新的算法或结构又是在什么层面的?例如,现有的“工具”有:k 临近算法,回归,卷积神经网络………。“ 创新性和突破性”是指为这个“工具库”发明添加一些没有的工具么?

    “ 如果数据处理(甚至是前处理), 还有训练 /验证框架(甚至是训练代码), 然后还有模型的压缩和部署都由其他专人给处理好, 那剩下的岂不是缓缓键入‘python run.py’就好了. 现实情况下往往这些都是需要 ML/DL engineer 需要考虑的内容
    最后模型的效率和具体语言无关, 和硬件 /架构 /数据结构 /计算机系统 /算法优化 等等这些计算机不同方向的关系很大”不知道有没有这方面“导论”水平的书推荐。不是单独的算法导论,数据结构导论(这有可能会偏向计算机科学领域了),而是数据科学领域的算法、数据结构,硬件,架构这些需要统筹考虑问题的“导论”
    IgniteWhite
        9
    IgniteWhite  
       2021-07-03 16:17:39 +08:00 via iPhone
    probabilistic machine learning 是你要学的下一门课,从你学过的统计,到贝叶斯,到机器学习,概念串起来,神经网络的概念也建立好了

    在下一门课是 deep learning,在建立好神经网络概念的基础上讲各种现在的神经网络结构

    这是我了解的我们学校的相关本科课程设置。第一门课的数学知识擅长的话,就会学的很快。
    IgniteWhite
        10
    IgniteWhite  
       2021-07-03 16:46:41 +08:00 via iPhone
    楼主就是之前问什么是面向对象编程的啊。就说有种熟悉的味道。
    tfdetang
        11
    tfdetang  
       2021-07-03 16:48:44 +08:00   1
    只回答问题 2:

    结论是不会。 机器学习深度学习工作主要分两种,研究型和工程师型。研究型的很多都是数学或应用数学的人,所以不存在降维打击。 而工程师型的主要做的是,理解算法与场景,将合适的算法引入到场景中,并工程化与落地。 工程师型只需要能看懂并理解算法就行,对数理的要求并没有达到非要学数学的人来做才行。
    babyformula
        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 的综述, 针对其硬件的设计思路, 架构, 算法层面的设计 /优化等等, 网上都可以找到官方的一些宣讲
    huzhikuizainali
        13
    huzhikuizainali  
    OP
       2021-07-03 17:04:40 +08:00 via iPad
    @tfdetang 谢谢回复
    如果工程师型,微积分线代,概率,统计应该也要很好的掌握吧。否则算法也理解不了。对么?一楼说还要看最优化, 随机过程, 矩阵论, 少部分信号处理。前三个非数学专业或应数专业的课程一般不会讲的。这使我觉得数据科学对数学的门槛要求还是挺高的。不知道工程师型的人员是否也要拿下最优化, 随机过程, 矩阵论, 少部分信号处理这些课程呢?
    huzhikuizainali
        14
    huzhikuizainali  
    OP
       2021-07-03 17:14:10 +08:00 via iPad
    @babyformula 谢谢耐心而详细的回复。不知道业内达到“突破或创新”水平的成果一般会公开发表么?(因为有些成果是公司员工创造的。理论上不应该公开发表。但是一来有些会开源,二来申请专利的时候也会让大家知道我有突破。还有技术过时了也会公开,使大家知道“事后”知道这些突破创新来自该公司且长期由其独家使用。)
    babyformula
        15
    babyformula  
       2021-07-03 18:29:02 +08:00   1
    @huzhikuizainali 这是个很现实的问题, 只说每家企业或者机构可能都会有一些相应的限制, 有些内部公开, 有些部分公开, 有些用作 PR, 有些用来引领行业制定标准, 因人而异吧
    oneTimeElastic
        16
    oneTimeElastic  
       2021-07-03 23:44:24 +08:00 via Android
    我其实建议不要先学什么别的 先找个一个星期过一遍斯坦福的 cv 和 nlp 课(忘了叫什么了) 你刷一遍看看感觉能不能听懂就知道自己的数学水平 /计算机水平能不能理解了
    至于 ml engineer 我认识的是在部署模型 也就是公司的研究者搞好一个模型然后工程师投入实战 比如用 streamlit 搞个 app 出来 这方面水很深 我也不是很懂所以还得请懂得老哥好好解释一下
    oneTimeElastic
        17
    oneTimeElastic  
       2021-07-03 23:4:43 +08:00 via Android   1
    业内的成果就我所知很多不会公开 比如 gpt3 或者谷歌的新 vit 现在大家只知道大概是什么样的模型 具体调参谁知道 都是只有公司内部才能复现结果
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1031 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 18:05 PVG 02:05 LAX 11:05 JFK 14:05
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86