注:ctrl+点击进入超链接查看网页;crtl +k查看超链接指向url(部分链接请复制打开)。
一、总体学习架构
二、各部分讲解及资料
2.1 编程
2.1.1 语言
需要良好的编程能力,重点是python,其次是C++和java,C学过就不提了,经常出现在github里的lua和新兴的julia有余力者也要看下,最后是现在有点过气的MATLAB和R。
特别需要注意的是,在线教程是很好的资源,当然书籍也不错。但编程永远是以实战为上,不是死读书本,更不是看完了书和教程再写代码。此外,学会代码调试也非常重要。
2.1.2 写代码工具
2.1.2.1 IDE
体系化开发,提示全面快捷,但比较笨重。可安装个性化插件,比如pycharm的Save Actions、Rainbow Brackets、YAPF、Material Theme UI等,安装方式很容易。
pycharm面向python,IDEA面向Java,Clion面向c和c++,微软的visual studio万能但是很笨重。前三者都是jetbrains公司的产品,学生可利用学校的学生邮箱在有效期内申请注册教育账号,然后免费使用专业版。
2.1.2.2 文本编辑器
轻巧便捷,万能开发且自定义,但提示一般不全。可安装大量个性化插件。
vscode是微软开源的工具,罕见的微软良心。
atom很美观,但是插件安装需要番羽土啬。
sublime text很简洁。
2.1.3 框架
- TensorFlow、torch、keras是深度学习框架。
- sklearn是机器学习框架。
- caffe也是深度学习框架,但主要面向计算机视觉。
- matplotlib是画图工具。
安装指南:
win10系统人工智能框架安装指南及常见问题解决方案——anaconda、python27、python35、numpy、tensorflow-gpu、matplotlib、caffe及中间的相关插曲
ubuntu系统人工智能框架安装指南及常见问题解决方案——numpy、sklearn、TensorFlow、opencv、caffe2、caffe及中间的相关插曲
使用指南:
入门推荐莫凡python,深入推荐官网教程,比如TensorFlow、torch、caffe(见参考目录下“Caffe官方教程中译本”)、matplotlib。
2.1.4 重要工具
- git是版本控制工具,可以参见廖雪峰的教程。github上有很多有意思的代码项目,但下载速度较慢。可以从码云上引入已有的github项目,通过国内网络传输,下载速度在github十倍之上。
- office是基本的操作。word的排版,excel的公式、ppt的排版都是基础。对于word和excel需要不会就多学,而且要和同学多交流。此外,有一个很好的冯注龙的ppt教程。
- latex,重要的论文书写工具,教程见参考目录下“一份不太简短的 LaTeX2ε 介绍”。
- 画图软件可用于ppt和文档中,良好的构图可以起到极佳的讲解作用。Visio是最通用的,processon比较便捷,亿图很漂亮,要花钱买,但也可以破解。
- anaconda是管理多个python的工具,附上使用教程。
- 正则表达式可以从字符串中抓取到需要的部分,另外还有在线验证正则表达式的网站。
- 数据库操作的核心是SQL语句,其次需要熟练数据库与常用语言如python的API接口,最后是数据的管理操作。当然数据库界面操作工具Navicat是肯定少不了的。
- 爬虫是获取数据的重要手段,有一个北理的教程可以快速入门,进阶的话需要学习scrapy,以及尝试在微信公众号、抖音app这样的复杂环境下爬虫。
- 安卓模拟器,比如夜神安卓模拟器,是用来辅助爬虫的好工具,比如无破解加密的爬取抖音的数据。
- 网络抓包工具用于分析网络报文,推荐使用fiddler。
- 多线程操作主要是掌握python的多线程,类似博客很多。
- linux操作系统主要是学习ubuntu系列,16.04或18.04皆可。不用盯着书死看,80%时间下会用的东西其实不到全部的20%,所以要抓重点,不会的再查。常用的操作包括文件操作比如复制移动删除,权限管理,用户管理,进程管理,磁盘挂载,apt换源加速下载、pip换源加速下载(windows也可换pip源)等。
- gpu主要是环境搭建(可参照之前的2.1.3 框架一节的两个链接)和查看管理,一般深度学习框架如torch,TensorFlow(直接安装TensorFlow-GPU即可)已经高度封装了这些操作,所以比较简单。当然,没有gpu一切都是白搭。这是表示gpu性能的天梯图。
- everything是一款给本地所有文件建立索引的快速查询工具,迅速查找本机所有文件。
- xmind8是一款极好的思维导图工具,可以辅助理清ppt、演讲、项目等系统的思路。csdn上有破解方法。
- 看paper可能需要标注,福昕编辑器是一个不错的pdf编辑器。csdn上有破解方法。
- 对linux服务器的操作,可以使用xshell命令行操作,通过winscp传输文件。当然,atom、vscode和jetbrains的产品比如pycharm也有远程同步、执行代码的操作。
2.2 数学
对数学如何重视都是不足为过的,AI或者更广义的计算机,其基础都是建立在数学的基础上的。因此务必强化数学的学习。但由于本人的数学基础有限,无法给出比较全面的介绍,仅将推荐教材列出,并辅助简单讲解。
2.2.1 基础
微积分、线性代数、概率论、离散数学,跟着学校的教材走就好了。唯一重要的是,课后题都做了,并且认真改错总结。除此之外,扎实数学基础别无它法。
2.2.2 进阶
2.3 计算机基础
2.3.1 基础
课堂的学习是很重要的,比如数据结构与算法、操作系统、计算机网络和计算机组成成原理这四门计算机核心基础课程。比起教材,这四门课更重要的是理解,数据结构与算法重点要理清数据结构模型和常用算法原理,操作系统要建立进程调度执行的概念,计算机网络要建立网络架构和通信协议的概念,计算机组成原理要建立模型机的静态组成模型和动态运行过程。教材就学校的教材即可,好好听课。
2.3.2 进阶
2.4 人工智能
本章将机器学习、深度学习和应用三部分的资源进行整合。
从事AI需要一定的数学、计算机、编程和英语能力。
首先,不推荐初学者看周志华的《机器学习》,也就是西瓜书。AI入门需要对机器学习的基础知识有一个良好的全面认识,不求深,也一定要求广——既了解全局,也为之后的研究找准感兴趣的方向。因此,初学者推荐百面机器学习 算法工程师带你去面试。
在对基础知识和基本算法有了基本了解后,就需要深入了解算法背后的原理,因此,推荐李航的统计学习方法(出第二版了)。对于还不太清楚的数学,可以快速查阅图像处理中的数学修炼中的相关数学知识。
再之后,可以根据自己的兴趣方向了解深度学习、强化学习、知识图谱,或者自己感兴趣的具体方向,比如视觉(cs231n)、自然语言处理(cs224n)等。
科研的话,可以了解一下各大AI会议。查询的话,可以利用谷歌学术,谷歌,dblp或者中国知网(校内ip免费下载paper)查找自己感兴趣的paper。
至于各种应用,既可以去github上搜项目,也可以去csdn、博客园等网站上看大佬教程。此外,还有一些科研前沿的观察统计网站,具有极高的价值,常见的比如机器之心,清华的Aminer。还有就是要关注下知乎上的大佬们,指导AI科研学习和数据挖掘竞赛等,比如鱼遇雨欲语与余,zibuyu9(清华刘知远教授)、Ivan Yan等,可以关注一波,看看他们在干啥,与时俱进,不断学习。
参考书目百度云盘地址
链接:https://pan.baidu.com/s/1C0ZVDROVD-REuK94_a9n9Q
提取码:u91f