一个没有基础的工科研究生如何学习神经网络?

双控专业
关注者
466
被浏览
173,730
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

先科普,严肃的科普:

第一步: Andrew Ng 的Machine Learning 开放课。 手把手教你Machine Learning。
第二步: 林轩田 基石+技法 周志华的西瓜书。
科普完了,你发现数学基础可能不够,就补补数学。主要是微积分、线性代数、概率和统计。
然后在回去看 林轩田的PPT 西瓜书。 直到完全看懂。
如果走到这一步,还没放弃。你已经不是凑热闹的人啦,你自己会挑一些好书看,会辨别网上的乱七八糟声音。

第三步:学一个工具栈(Python, R, Matlab)。 个人推荐Python用Numpy学习线性代数, 和概率论。 用Matplotlib把各种分布曲线画一下。工具熟悉后,可以用于探索一些算法。 比如一个分类器的分类边界什么的。

参考Sklearn的文档。

如果这个时候没放弃。 能独立完成一个数据的EDA和建模和预测,大概是比较优秀的大四毕业设计水平。 参考Kaggle的项目。

这个时候, 你完全脱离那些网上杂音的影响,知道AI是什么,机器学习干什么。

------------------------------------------------------------------

准备好后,才是是基本巨著。我的建议是晚一点看好,免得进去只见树木不见森林
《The Elements of Statistical Learning》
《Pattern Recognition And Machine Learning》

这些不要从头往回看,而是自己及笔记,一个专题一个专题的整理。 比如线性回归,看看定义和数学符号,PRML的贝叶斯解释, 梯度下降的解,数学分析的解,几何的解释。 应用,对应工具(比如 python scikit-learn)的API。 自己也可以好好思考一下,是否可以增量训练,是否可以并行训练 等等有意义有点深度和实用价值的问题。

几个大的专题你学下来,走到这里。你应该回去复习了更多次的数学,最优化理论,线性代数。基本上可以参加一些在线的比赛啦,也是比较容易找到工作的人。

这个时候,应该是一个优秀的高年级研究生毕业水平。 你大概能脱离sklearn,用Numpy实现一些经典ML算法。 如果导师给一个改进的idea,你能独立实现,并给出对比实验结果。

----------------------------------------------------

在后面,才是根据自己兴趣。深入探索 神经网络,或者SVM等具体的一个课题。这些课题都是互相借鉴思想,触类旁通的东西。 关键还是上面的基础。

这个时候,你已经在一个小方向上阅读过一些前沿的会议论文。你能整理出一个可以研究的脉络并且提出一些研究问题。如果英语够好, 大概是一个优秀的研究生毕业或者博士一年级的水平

如果你还能去大厂实习, 理解一两个业务场景,熟悉工具链和团队运转模式,参加过项目落地, 拿恭喜你。 你非常容易在市场找到机器学习工程师的工作。 你现在对机器学习和职业有自己想法了。

---------------

还想读博? 导师会给你一个具体的方向。 你要用大约一年的时间, 把这个方向所有相关的前沿论文和基础理论全部看明白。 总结出来一本自己的文献综述。

基于你对这个方向的理解, 提出若干前人没有解决的问题,提出你自己的解决方案。(博二)

实现你的方案, 和现有最前沿的论文比较。 撰写论文,找个顶会发出去。 审稿,反驳(rebuttal)。同时不断参加和组织会议,社交,承担一些审稿和教学工作。(博二博三)

然后继续深挖,重复 想法-实验-发表过程。 你开始慢慢理解学术圈潜规则(博三--博N)

N年后,你秃了,也毕业了,跑到知乎上回答这个问题。