zoukankan      html  css  js  c++  java
  • 了解/从事机器学习/深度学习系统相关的研究需要什么样的知识结构?

    作者:袁进辉
    链接:https://www.zhihu.com/question/315611053/answer/676815240
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    以开发深度学习框架为例:

    1,熟悉常见深度学习模型,CNN, GAN, RNN/LSTM, BERT, Transformer;

    2,熟悉后向误差传播算法(BP),完成从标量求导到矩阵求导思维方式的转换,熟悉常见算子的梯度推导(矩阵乘,卷积, 池化,Relu,如果会batch normalization 就一步到位了);

    3,熟悉autograd的基本原理,能自己手撸一个最好;

    4,熟悉cuda编程(举一反三),熟悉cuda高阶用法,event, stream, 异步/同步,会优化常见cuda kernel, element-wise, reduce, broadcast, MatMul, conv, pooling 等;

    5,熟悉c++和python, 对c++高级用法感到舒服,各种模式,惯用法,模板;熟悉vim, gdb 程序调试;

    6,熟悉socket, RDMA编程,熟悉常见collective operation代价分析,譬如ring allreduce, tree allreduce 代价分析;

    7,熟悉多线程编程,熟悉锁,条件变量,内核线程,用户级线程,对actor, CSP(coroutine)各种技术熟悉;

    8,熟悉编译器基本原理,parser什么的不重要,主要是dataflow分析,灵活运用;熟悉多重循环程序优化技巧,譬如polyhedral 模型;

    9,熟悉常见分布式系统原理,mapreduce, spark, flink, tensorflow 等;

    10,熟悉计算机体系机构,量化分析方法,Amdahl' Law, Roofline Model, 流水线分析(譬如David Patterson 那本书);

    11,熟悉操作系统原理及常用系统诊断工具,譬如各种资源利用率分析;

    12,programming language 原理,命令式编程,函数式编程,逻辑编程,入门书《程序的构造与解释》?

    以上只是知识和技能,我认为最重要的是直觉,洞见,创造能力。

    暂时先想到这些,如果都符合,绝对挺多企业想要你。我们也需要:)

  • 相关阅读:
    A 第一课 链表
    CSS基础_01:
    html基础(2)
    冒泡_选择算法
    高等数学以及Python 实现
    ubuntu18.04 镜像下载
    MatplotLib 第二部分
    一件很好笑的事情
    HIVE文件
    一个关于消息结构体的讨论
  • 原文地址:https://www.cnblogs.com/focus-z/p/10835910.html
Copyright © 2011-2022 走看看