机器学习、深度学习的学习路线

本人目前已经大三下了,学习机器学习、深度学习有一年多的时间,这里站在本科生的角度,结合自己的经验给对机器学习、深度学习感兴趣的同学一些建议和规划

目录

Step1 数学基础和Python

数学基础

Python

Step2 机器学习理论和编程实现

机器学习理论

深度学习理论

Pytorch

Step3 项目实战、论文阅读

选一个方向

建议


Step1 数学基础和Python

数学基础

  • 微积分(数学系或一些尖子班一般学的数学分析,其他专业大多是高数) 推荐华师大的《数学分析》(高教出版社)
  • 线性代数 推荐MIT网课
  • 概率论与数理统计 推荐浙大第四版教材
  • 可选:最优化方法等

注重对概念的理解,定理、公式的推导,建议看一些国外英文教材,以后读论文方便一些

Python

  • 基本语法
  • 常用数据结构:List,Set,Dictionary 等
  • 面向对象: 类  继承 多态等
  • 常用的库: Numpy、Pandas、Sklearn(scikit-learn)
  • 模块封装、模块引入、多文件组织(实际工程中为了提升复用性、扩展性一般会写成多个文件夹,每个文件夹里会多个py文件)

推荐b站莫烦Python(比较简略),求知讲堂的课程(很全面,详细,举了很多例子)

莫烦Python的个人空间_哔哩哔哩_bilibili

求知讲堂python+人工智能 99天完整版 学完可就业_哔哩哔哩_bilibili

  • 以上只是基本的,我在看一些论文的代码时发现还有很多东西没见过或者不熟悉,或者之前了解过但是记忆模糊,比如装饰器、“魔法”等,可以收藏下面这篇文档,里面一条一条罗列了出来,很清晰、细致

https://docs.pythontab.com/interpy/Lambdas/README/

Step2 机器学习理论和编程实现

机器学习理论

推荐《机器学习》 作为课本,人称西瓜书,周志华老师编写的

自己就是通过这本书入的门,感觉讲的比较全面、基础,适合初学者,三点经验

  • 光看理论比较抽象,注意力难以一直集中,这时可以多上b站看一些生动形象的解释和动画
  • 边学边用Python实现,不会编程实现的话也可以多看看b站up主的讲解(小破站yyds!),自己编出来后理解会更透彻,记忆也更深刻
  • 配套的“南瓜书”,网上可以搜到,是对西瓜书中的定理做推导证明的,建议多啃啃,尤其想深入理解其中原理的

建议一周学一章,耐心一点,学扎实,不要求快,导致记忆模糊、理解不深刻

此外,李航的《统计学习方法》也不错,我也看过一点;如果不喜欢看文字,吴恩达的网课好像评价很高,也很火(我个人没怎么看过)

深度学习理论

机器学习是个相对宽泛的概念,下面还有很多子领域,如强化学习、深度学习等,目前最流行的应该还是深度学习,如果对深度学习感兴趣,可以进一步学习相关理论

推荐李飞飞的cs231n,以及配套作业

Pytorch

主流的深度学习框架之一,Pytorch在学术界更流行,代码量小一点,调试方便,建议本科期间还是先学习一下Pytorch,另一个主流的框架是Tensorflow,工业界可能用的多一些

  • 配置一下深度学习环境,可参考我之前的博客(第一次配环境可能会非常坎坷,做好心理准备,自己当时配了好几天)(电脑带英伟达显卡支持cuda的,建议装GPU版)windows系统下即可,也可尝试装虚拟机,在linux下安装

(62条消息) Pytorch GPU版安装_江海一飞鸥的博客-CSDN博客

  • 推荐跟着网课边看边敲

干货分享!浙江大学教授【深度学习框架PyTorch】课程,这绝对是你不可多得的PyTorch教程!太强了!-人工智能/机器学习/深度学习/AI_哔哩哔哩_bilibili

Step3 项目实战、论文阅读

(如果觉得自己能力还不够,可以再巩固巩固,毕竟大一到大三课多,尤其对于想保研、读研的同学,要保证自己的排名)

这时候已经有一定数学基础、机器学习和深度学习理论基础和编程能力了,可以根据自己兴趣,联系学校导师做一些相关的项目

选一个方向

AI的方向很多,从应用领域来看,最火的有下面几个

  • 计算机视觉 大概是目前最火的,当前就业竞争也很激烈,个人也是cv入门
  • 自然语言处理
  • 语音

个人了解到的一些近年似乎不错的方向(个人不太成熟的判断,主要是看了一些AI会议,和一些老师的看法)

  • 结构表示模型与学习(如图神经网络,上海Amazon研究院在研究这个方向)
  • 领域泛化
  • 分布式机器学习
  • 自动机器学习系统
  • 主动学习

如果喜欢交叉一些的,有条件的,可尝试以下方向,我有一些同学和老师在做其中一些

  • AI+医疗
  • AI+游戏(天美、网易雷火有相关算法岗)
  • AI+机器人
  • AI+艺术(如图像风格变化)

建议

很多老师不关注本科生,所有其实一般都是跟着研究生学长,在他们的指导下做项目、看论文,深入下去,有能力的可以尝试写论文等,

  • 建议把一个项目做全做深,从对任务的理解分析,到数据集获取和分析,(到特征工程,)到模型选择,到代码编写,到训练,到结果分析,到改进,到数据可视化(到部署,)并把问题相关的各个常见方法都做一些了解
  • 可以找一些积极不划水的队友,互相交流、促进,保证以后找实习或其他面试的时候可以对答如流
  • 可以提前进导师的组会,每周汇报,以此督促自己
  • 平时可以多看看github等平台的开源项目,知乎、csdn、b站一些大佬的动态(沐神、清华刘知远老师等还是很活跃的,以及一些优秀本科生、硕士、博士、算法研究员和工程师们的经验分享)

以上是个人见解和经验,建议大家结合自己导师和学长的指导,和自身实际情况,制定规划。

祝好!

你可能感兴趣的:(机器学习,机器学习,人工智能,深度学习)