本文約3400字,建議閱讀10+分鐘。
免費開源人工智能手冊,帶你快速上手寫代碼!
[ 導讀 ]市面上很多人工智能相關的書籍。大部分的書,面向小白,內容深度不夠;小部分教材書或者科研書,內容艱深,又過於複雜。那麼有沒有,面向算法工程師(程序員)人群的,面向有一定數學基礎、算法基礎,能夠快速上手寫代碼的人群的人工智能手冊呢?有的!而且免費開源,非常有程序員範!《AI算法工程師手冊》你值得擁有!
作者Github:
https://github.com/huaxz1986
手冊地址:
http://www.huaxiaozhuan.com/
華校專,清華航天學院工程力學本科,國防科大計算機專業碩士。清華四年每年成績都是本系頭名,曾任阿里巴巴資深算法工程師,現任智易科技首席算法研究員,《Python 大戰機器學習》的作者
手冊目錄:
數學基礎
1. 線性代數基礎
- 一、基本知識
- 二、向量操作
- 三、矩陣運算
- 四、特殊函數
2. 概率論基礎
- 一、概率與分佈
- 二、期望和方差
- 三、大數定律及中心極限定理
- 五、常見概率分佈
- 六、先驗分佈與後驗分佈
- 七、信息論
- 八、其它
3. 數值計算基礎
- 一、數值穩定性
- 二、梯度下降法
- 三、二階導數與海森矩陣
- 四、牛頓法
- 五、擬牛頓法
- 六、 約束優化
4. 蒙特卡洛方法與 MCMC 採樣
- 一、蒙特卡洛方法
- 二、馬爾可夫鏈
- 三、MCMC 採樣
統計學習
0. 機器學習簡介
- 一、基本概念
- 二、監督學習
- 三、機器學習三要素
機器學習的對象是:具有一定的統計規律的數據。
機器學習根據任務類型,可以劃分為:
- 監督學習任務:從已標記的訓練數據來訓練模型。主要分為:分類任務、迴歸任務、序列標註任務。
- 無監督學習任務:從未標記的訓練數據來訓練模型。主要分為:聚類任務、降維任務。
- 半監督學習任務:用大量的未標記訓練數據和少量的已標記數據來訓練模型。
- 強化學習任務:從系統與環境的大量交互知識中訓練模型。
機器學習根據算法類型,可以劃分為:
- 傳統統計學習:基於數學模型的機器學習方法。包括SVM、邏輯迴歸、決策樹等。這一類算法基於嚴格的數學推理,具有可解釋性強、運行速度快、可應用於小規模數據集的特點。
- 深度學習:基於神經網絡的機器學習方法。包括前饋神經網絡、卷積神經網絡、遞歸神經網絡等。這一類算法基於神經網絡,可解釋性較差,強烈依賴於數據集規模。但是這類算法在語音、視覺、自然語言等領域非常成功。
沒有免費的午餐定理(No Free Lunch Theorem:NFL):對於一個學習算法A,如果在某些問題上它比算法B好,那麼必然存在另一些問題,在那些問題中B比A更好。
因此不存在這樣的算法:它在所有的問題上都取得最佳的性能。因此要談論算法的優劣必須基於具體的學習問題。
1. 線性代數基礎
- 一、線性迴歸
- 二、廣義線性模型
- 三、對數幾率迴歸
- 四、線性判別分析
- 五、感知機
2. 支持向量機
- 一、 線性可分支持向量機
- 二、線性支持向量機
- 三、非線性支持向量機
- 四、支持向量迴歸
- 五、SVDD
- 六、序列最小最優化方法
- 七、其它討論
3. 樸素貝葉斯
- 一、貝葉斯定理
- 二、樸素貝葉斯法
- 三、半樸素貝葉斯分類器
- 四、其它討論
4. 決策樹
- 一、 原理
- 二、 特徵選擇
- 三、生成算法
- 四、剪枝算法
- 五、CART 樹
- 六、連續值、缺失值處理
- 七、多變量決策樹
5. knn
- 一、k 近鄰算法
- 二、kd樹
6. 集成學習
- 一、集成學習誤差
- 二、 Boosting
- 三、Bagging
- 四、集成策略
- 五、多樣性分析
7. 梯度提升樹
- 一、提升樹
- 二、xgboost
- 三、LightGBM
8. 特徵工程
- 一、缺失值處理
- 二、特徵編碼
- 三、數據標準化、正則化
- 四、特徵選擇
- 五、稀疏表示和字典學習
- 六、多類分類問題
- 七、類別不平衡問題
9. 模型評估
- 一、泛化能力
- 二、過擬合、欠擬合
- 三、偏差方差分解
- 四、參數估計準則
- 五、泛化能力評估
- 六、訓練集、驗證集、測試集
- 七、性能度量
- 七、超參數調節
- 八、傳統機器學習的挑戰
10. 降維
- 一、維度災難
- 二、主成分分析 PCA
- 三、核化線性降維 KPCA
- 四、流形學習
- 五、度量學習
- 六、概率PCA
- 七、獨立成分分析
- 八、t-SNE
- 九、LargeVis
11. 聚類
- 一、性能度量
- 二、原型聚類
- 三、密度聚類
- 四、層次聚類
- 五、譜聚類
12. 半監督學習
- 一、生成式半監督學習方法
- 二、半監督 SVM
- 三、圖半監督學習
- 四、基於分歧的方法
- 五、半監督聚類
- 六、 總結
13. EM算法
- 一、示例
- 二、EM算法原理
- 三、EM算法與高斯混合模型
- 四、EM 算法與 kmeans 模型
- 五、EM 算法的推廣
14. 最大熵算法
- 一、最大熵模型MEM
- 二、分類任務最大熵模型
- 三、最大熵的學習
15. 隱馬爾可夫模型
- 一、隱馬爾可夫模型HMM
- 二、HMM 基本問題
- 三、最大熵馬爾科夫模型MEMM
16. 概率圖與條件隨機場
- 一、概率圖模型
- 二、貝葉斯網絡
- 三、馬爾可夫隨機場
- 四、條件隨機場 CRF
17. 邊際概率推斷
- 一、精確推斷
- 二、近似推斷
18. 主題模型
- 一、Unigram Model
- 二、pLSA Model
- 三、LDA Model
- 四、LDA優化
- 五、sentence-LDA
- 六、模型討論
深度學習
0. 深度學習簡介
- 一、介紹
- 二、歷史
深度學習:計算機從經驗中學習,以層次化的概念(concept)來理解世界。
從經驗中學習:避免了人工指定計算機學習所需的所有知識。
層次化的概念:計算機通過從簡單的概念來構建、學習更復雜的概念。
如果繪製一張圖來展示這些概念的關係,那麼這張圖是一個深度的層次結構,因此稱這種方法為深度學習。
1. 深度前饋神經網絡
深度前饋網絡(deep feedfoward network)也稱作前饋神經網絡(feedforward neural network)或者多層感知機(multilayer perceptron:MLP),它是最典型的深度學習模型。卷積神經網絡就是一種特殊的深度前饋網絡。深度前饋網絡也是循環神經網絡的基礎。
- 一、基礎
- 二、損失函數三、輸出單元
- 四、隱單元
- 五、結構設計
- 六、歷史小記
2. 反向傳播算法
- 一、鏈式法則
- 二、反向傳播
- 三、算法實現
- 四、自動微分
3. 正則化
- 一、參數範數正則化
- 二、顯式約束正則化
- 三、數據集增強
- 四、噪聲魯棒性
- 五、早停
- 六、參數相對約束
- 七、dropout
- 八、對抗訓練
- 九、正切傳播算法
- 十、其它相關
4. 最優化基礎
- 一、代價函數
- 二、神經網絡最優化挑戰
- 三、 mini-batch
- 四、基本優化算法
- 五、自適應學習率算法
- 六、二階近似方法
- 七、共軛梯度法
- 八、優化策略和元算法
- 九、參數初始化策略
- 十、Normalization
- 十一、Online Learning
5. 卷積神經網絡
卷積神經網絡convolutional neural network:CNN:是指那些至少在網絡的某一層中使用了卷積運算來代替一般的矩陣乘法運算的神經網絡。卷積神經網絡專門處理具有類似網格結構的數據的神經網絡。如:時間序列是一維網格,圖像數據是二維網格。
- 一、卷積運算
- 二、卷積層、池化層
- 三、基本卷積的變體
- 四、應用
- 五、 歷史和現狀
5.1.CNN之圖片分類
- 一、LeNet
- 二、AlexNet
- 三、VGG-Net
- 四、Inception
- 五、ResNet
- 六、ResNet 變種
- 七、SENet
- 八、 DenseNet
- 九、小型網絡
6. 循環神經網絡
- 一、RNN計算圖
- 二、訓練算法
- 三、長期依賴
- 四、常見 RNN 變種
7. Transformer
- 一、Transformer
- 二、Universal Transformer
- 三、Transformer XL
- 四、GPT
- 五、BERT
- 六、ERNIE
- 七、XLNet
- 八、MT-DNN
- 九、BERT 擴展
8. 詞向量
- 一、向量空間模型 VSM
- 二、LSA
- 三、Word2Vec
- 四、GloVe
- 五、FastText
- 六、ELMo
- 七、變種
9. 傳統 CTR 預估模型
- 一、LR 模型
- 二、POLY2 模型
- 三、FM模型
- 四、FFM模型
- 五、GBDT-LR 模型
- 六、FTRL模型
- 七、LS-PLM 模型
10. 工程實踐指導原則
- 一、性能度量
- 二、默認的基準模型
- 三、決定是否收集更多數據
- 四、選擇超參數
- 五、調試策略
- 六、示例:數字識別系統
- 七、數據預處理
- 八、變量初始化
- 九、結構設計
工具
CRF:
CRF++
- 一、安裝
- 二、使用
- 三、Python接口
- 四、常見錯誤
lightgbm:
lightgbm使用指南
- 一、安裝
- 二、調參
- 三、進階
- 四、API
- 五、Docker
xgboost:
xgboost使用指南
- 一、安裝
- 二、調參
- 三、外存計算
- 四、 GPU計算
- 五、單調約束
- 六、 DART booster
- 七、Python API
scikit-learn
1. 預處理
- 一、特徵處理
- 二、特徵選擇
- 三、字典學習
- 四、PipeLine
2. 降維
- 一、PCA
- 二、MDS
- 三、Isomap
- 四、LocallyLinearEmbedding
- 五、FA
- 六、FastICA
- 七、t-SNE
3. 監督學習模型
- 一、線性模型
- 二、支持向量機
- 三、貝葉斯模型
- 四、決策樹
- 五、KNN
- 六 、AdaBoost
- 七、梯度提升樹
- 八、Random Forest
4. 模型評估
- 一、數據集切分
- 二、性能度量
- 三、驗證曲線 && 學習曲線
- 四、超參數優化
5. 聚類模型
- 一、KMeans
- 二、DBSCAN
- 三、MeanShift
- 四、AgglomerativeClustering
- 五、BIRCH
- 六、GaussianMixture
- 七、SpectralClustering
6. 半監督學習模型
- 一、標籤傳播算法
7. 隱馬爾可夫模型
- 一、Hmmlearn
- 二、seqlearn
spark
1. 基礎概念
- 一、核心概念
- 二、安裝和使用
- 三、 pyspark shell
- 四、獨立應用
2. rdd使用
- 一、概述
- 二、創建 RDD
- 三、轉換操作
- 四、行動操作
- 五、其他方法和屬性
- 六、持久化
- 七、分區
- 八、混洗
3. dataframe使用
- 一、概述
- 二、SparkSession
- 三、DataFrame 創建
- 四、 DataFrame 保存
- 五、DataFrame
- 六、Row
- 七、Column
- 八、GroupedData
- 九、functions
4. 累加器和廣播變量
一、累加器
二、廣播變量
numpy:
numpy 使用指南
- 一、 ndarray
- 二、 ufunc 函數
- 三、 函數庫
- 四、數組的存儲和加載
scipy:
scipy 使用指南
- 一、 常數和特殊函數
- 二、 擬合與優化
- 三、線性代數
- 四、 統計
- 五、數值積分
- 六、 稀疏矩陣
matplotlib:
matplotlib 使用指南
- 一、matplotlib配置
- 二、 matplotlib Artist
- 三、基本概念
- 四、佈局
- 五、 Path
- 六、 path effect
- 七、座標變換
- 八、 3D 繪圖
- 九、技巧
pandas:
pandas 使用指南
- 一、基本數據結構
- 二、 內部數據結構
- 三、 下標存取
- 四、 運算
- 五、變換
- 六、數據清洗
- 七、 字符串操作
- 八、 聚合與分組
- 九、時間序列
- 十、 DataFrame 繪圖
- 十一、 移動窗口函數
- 十二、 數據加載和保存
完整版看手冊地址:
http://www.huaxiaozhuan.com/
部分章節節選:
— 完 —
關注清華-青島數據科學研究院官方微信公眾平臺“THU數據派”及姊妹號“數據派THU”獲取更多講座福利及優質內容。
閱讀更多 THU數據派 的文章