作者:小景森的童年 | 来源:互联网 | 2023-09-11 15:21
本文的写作目的一方面是总结下自己的学习心得,另一方面是给那些想学习并且想从事算法工程师一点小小的参考,欢迎大家多多交流!基础想要入门机器学习,至少需要提前掌握以下两种技能必要的
本文的写作目的一方面是总结下自己的学习心得,另一方面是给那些想学习并且想从事算法工程师一点小小的参考,欢迎大家多多交流!
基础
想要入门机器学习,至少需要提前掌握以下两种技能
必要的数学知识。高等数学,线性代数,概率论,矩阵论,凸优化等基本的编程能力,推荐python语言(必要时需要学习C++或者jave)
当然,我相信大部分同学都有一定的数学基础,有些知识点忘了的话,也可以回头翻翻书。关于编程语言,这个也可以结合算法一起学习,也可以先了解编程语言的基础知识,再去学习算法。通过自己动手编程实现算法,既可以加深对算法的理解,也可以加强编程能力
学习资料
参考书籍
《数据挖掘导论》《机器学习实战》《统计学习方法》/《机器学习》《深度学习》《统计自然语言处理》/《推荐算法实战》《算法导论》
视频课件
sdfj机器学习课程斯坦福视频教程 cs231n、cs224d 学习路线
我是从从大四下学期开始,研究生面试完之后,正式接触机器学习这个领域,基本上是靠自学。学习路线是 基是从机器学习过渡到深度学习再过度到自然语言处理/推荐算法。
机器学习的学习路线
我自己的学习路线首先把《数据挖掘导论》简单的过了一遍,大概花了20天。了解了下该领域的一些基本概念,和常用的算法思想,对于不懂得地方,并没有过于纠结算法的细节其次,针对《机器学习实战》,系统的阅读了算法相关的实现代码,再回头翻《数据挖掘导论》加深对算法理论的理解。这两本书学习完之后至少可以达到对数据挖掘十大算法的算法思想非常的清楚,可以自己手动写数学公式去推导算法,了解超参数对算法影响。这个过程我大概是花了四个月。通过大量的实践(项目/比赛)加强编程能力和对算法的理解。同时也要密切关注相关的开源社区跃,很多基于python的第三方库,pandas、sklearn等也要必须掌握的
深度学习的学习路线
深度学习可以先把基本的CNN,RNN, GRU, LSTM等基本结构了解基础,这些都是构成神经网络的基本单元掌握一门深度学习框架,我自己是使用tensorflow,当然不同的公司用的框架不一样,据我了解的看,腾讯和创新工场用的tensorflow, 头条用的mxnet和tensorflow,当然有些公司自己造框架(百度的paddlepaddle)。学习深度学习的框架的原因主要就是借助框架搭建神经网络系统的学习cs224d或者是cs231n, 可以选其一,有精力可以都看看,我当时是花了一个寒假刷cs224d,来年春天又花了一个月把cs231n刷完了。这边刷不仅仅是把视频看完,还要把相关的课后习题做完。相信我,如果能系统的学习这个课程,算法功底绝对能更上一层楼。大量的实践(项目/比赛/实习),能实习就去实习,毕竟公司里面可以接触真实的业务场景,也有人可以带你。不行的话可以自己参加kaggle/天池的比赛 关于工作
说了这么多,其实最后都是想找个好工作,现在这个时代,所谓人工智能的黄金时代,算法工程师的起薪还是很高的。下面根据我自身的一些实习经历聊聊工作必要的一些技能吧。
我比较幸运,研一暑期的时候参加了义气的小笼包老师的Deecamp夏令营(今年好像也有,而且规模更大),认识了很多及其优秀的同学,当时是做了一个聊天机器人的项目,做了很多的工作。这段时间我成长很多,以前都是一个人闷头学,现在可以和优秀的人一起交流,自然收获很多。之后也就留在创新工场实习,后来去了头条,也在腾讯呆了一段时间。在一线二线互联网公司和创业公司都呆过, 体会了不同公司的企业文化,也对公司的用人要求(算法工程师)有个比较清楚的认识,总结如下:
hadoop、spark等工具的使用Linux常用命令自然语言处理/计算机视觉/推荐 至少一个方面比较熟悉python , C++/jave, 框架至少会使用一个 tensorflow/pytorch/mxnet数据库 Mysql/mongoDB/redis,至少会使用数据结构算法,这个可以刷leetcode,越多越好,优先easy和medium,hard有精力可以刷。我个人刷了快300道题目
掌握以上技能,再加上比较好的项目经历,找个实习是没问题的,当然有些公司可能会注重学历。一般硕士没啥问题,但我之前在头条实习的时候,也见到几个名校大三的学生…
最后,这是我的个人博客https://blog.csdn.net/john_xyz, 欢迎大家多多交流