注: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