零基礎學機器學習

黃佳

  • 零基礎學機器學習-preview-1
  • 零基礎學機器學習-preview-2
零基礎學機器學習-preview-1

買這商品的人也買了...

商品描述

本書的目標,是讓非機器學習領域甚至非電腦專業出身但有學習需求的人,輕松地掌握機器學習的基本知識,從而擁有相關的實戰能力。

本書通過AI“小白”小冰拜師程序員咖哥學習機器學習的對話展開,內容輕松,實戰性強,主要包括機器學習快速上手路徑、數學和Python 基礎知識、機器學習基礎算法(線性回歸和邏輯回歸)、深度神經網絡、捲積神經網絡、循環神經網絡、經典算法、集成學習、無監督和半監督等非監督學習類型、強化學習實戰等內容,以及相關實戰案例。本書所有案例均通過Python及Scikit-learn 機器學習庫和Keras 深度學習框架實現,同時還包含豐富的數據分析和數據可視化內容。

本書適合對AI 感興趣的程序員、項目經理、在校大學生以及任何想以零基礎學機器學習的人,用以入門機器學習領域,建立從理論到實戰的知識通道。

作者簡介

黄佳,新加坡埃森哲公司高级顾问,人工智能专家,机器学习和云计算高级工程师。计算机世界奖学金获得者,新加坡政府奖学金获得者。黄佳先生IT从业近20年,参与过公共事业、医疗、金融等多领域大型人工智能项目,对政府、企业和事业单位的数据智能化项目如何成功落地有着非常深刻的思考和洞见。

目錄大綱

引子:AI 菜鳥的挑戰—100 天上線智能預警系統

第1 課 機器學習快速上手路徑—唯有實戰

1.1 機器學習的家族譜

1.1.1 新手入門機器學習的3 個好消息

1.1.2 機器學習就是從數據中發現規律

1.1.3 機器學習的類別—監督學習及其他

1.1.4 機器學習的重要分支—深度學習

1.1.5 機器學習新熱點—強化學習

1.1.6 機器學習的兩大應用場景—回歸與分類

1.1.7 機器學習的其他應用場景

1.2 快捷的雲實戰學習模式

1.2.1 在線學習平臺上的機器學習課程

1.2.2 用Jupyter Notebook 直接實戰

1.2.3 用Google Colab 開發第一個機器學習程序

1.2.4 在Kaggle 上參與機器學習競賽

1.2.5 在本機上“玩”機器學習

1.3 基本機器學習術語

1.3.1 特徵

1.3.2 標簽

1.3.3 模型

1.4 Python 和機器學習框架

1.4.1 為什麽選擇用Python

1.4.2 機器學習和深度學習框架

1.5 機器學習項目實戰架構

1.5.1 第1 個環節:問題定義

1.5.2 第2 個環節:數據的收集和預處理

1.5.3 第3 個環節:選擇機器學習模型

1.5.4 第4 個環節:訓練機器,確定參數

1.5.5 第5 個環節:超參數調試和性能優化

1.6 本課內容小結

1.7 課後練習

第2 課 數學和Python 基礎知識—一天搞定

2.1 函數描述了事物間的關系

2.1.1 什麽是函數

2.1.2 機器學習中的函數

2.2 捕捉函數的變化趨勢

2.2.1 連續性是求導的前提條件

2.2.2 通過求導發現y 如何隨x 而變

2.2.3 凸函數有一個全局最低點

2.3 梯度下降是機器學習的動力之源

2.3.1 什麽是梯度

2.3.2 梯度下降:下山的隱喻

2.3.3 梯度下降有什麽用

2.4 機器學習的數據結構—張量

2.4.1 張量的軸、階和形狀

2.4.2 標量—0D(階)張量

2.4.3 向量—1D(階)張量

2.4.4 矩陣—2D(階)張量

2.4.5 序列數據 —3D(階)張量

2.4.6 圖像數據 —4D(階)張量

2.4.7 視頻數據—5D(階)張量

2.4.8 數據的維度和空間的維度

2.5 Python 的張量運算

2.5.1 機器學習中張量的創建

2.5.2 通過索引和切片訪問張量中的數據

2.5.3 張量的整體操作和逐元素運算

2.5.4 張量的變形和轉置

2.5.5 Python 中的廣播

2.5.6 向量和矩陣的點積運算

2.6 機器學習的幾何意義

2.6.1 機器學習的向量空間

2.6.2 深度學習和數據流形

2.7 概率與統計研究了隨機事件的規律

2.7.1 什麽是概率

2.7.2 正態分佈

2.7.3 標準差和方差

2.8 本課內容小結

2.9 課後練習

第3 課 線性回歸—預測網店的銷售額

3.1 問題定義:小冰的網店廣告該如何投放

3.2 數據的收集和預處理

3.2.1 收集網店銷售額數據

3.2.2 數據讀取和可視化

3.2.3 數據的相關分析

3.2.4 數據的散點圖

3.2.5 數據集清洗和規範化

3.2.6 拆分數據集為訓練集和測試集

3.2.7 把數據歸一化

3.3 選擇機器學習模型

3.3.1 確定線性回歸模型

3.3.2 假設(預測)函數—h (x )

3.3.3 損失(誤差)函數—L (w ,b )

3.4 通過梯度下降找到最佳參數

3.4.1 訓練機器要有正確的方向

3.4.2 凸函數確保有最小損失點

3.4.3 梯度下降的實現

3.4.4 學習速率也很重要

3.5 實現一元線性回歸模型並調試超參數

3.5.1 權重和偏置的初始值

3.5.2 進行梯度下降

3.5.3 調試學習速率

3.5.4 調試迭代次數

3.5.5 在測試集上進行預測

3.5.6 用輪廓圖描繪L 、w 和b 的關系

3.6 實現多元線性回歸模型

3.6.1 向量化的點積運算

3.6.2 多變量的損失函數和梯度下降

3.6.3 構建一個線性回歸函數模型

3.6.4 初始化權重並訓練機器

3.7 本課內容小結

3.8 課後練習

第4 課 邏輯回歸—給病患和鳶尾花分類

4.1 問題定義:判斷客戶是否患病

4.2 從回歸問題到分類問題

4.2.1 機器學習中的分類問題

4.2.2 用線性回歸+ 階躍函數完成分類

4.2.3 通過Sigmiod 函數進行轉換

4.2.4 邏輯回歸的假設函數

4.2.5 邏輯回歸的損失函數

4.2.6 邏輯回歸的梯度下降

4.3 通過邏輯回歸解決二元分類問題

4.3.1 數據的準備與分析

4.3.2 建立邏輯回歸模型

4.3.3 開始訓練機器

4.3.4 測試分類結果

4.3.5 繪制損失曲線

4.3.6 直接調用Sklearn 庫

4.3.7 啞特徵的使用

4.4 問題定義:確定鳶尾花的種類

4.5 從二元分類到多元分類

4.5.1 以一對多

4.5.2 多元分類的損失函數

4.6 正則化、欠擬合和過擬合

4.6.1 正則化

4.6.2 欠擬合和過擬合

4.6.3 正則化參數

4.7 通過邏輯回歸解決多元分類問題

4.7.1 數據的準備與分析

4.7.2 通過Sklearn 實現邏輯回歸的多元分類

4.7.3 正則化參數—C 值的選擇

4.8 本課內容小結

4.9 課後練習

第5 課 深度神經網絡—找出可能流失的客戶

5.1 問題定義:咖哥接手的金融項目

5.2 神經網絡的原理

5.2.1 神經網絡極簡史

5.2.2 傳統機器學習算法的局限性

5.2.3 神經網絡的優勢

5.3 從感知器到單隱層網絡

5.3.1 感知器是最基本的神經元

5.3.2 假設空間要能覆蓋特徵空間

5.3.3 單神經元特徵空間的局限性

5.3.4 分層:加入一個網絡隱層

5.4 用Keras 單隱層網絡預測客戶流失率

5.4.1 數據的準備與分析

5.4.2 先嘗試邏輯回歸算法

5.4.3 單隱層神經網絡的Keras 實現

5.4.4 訓練單隱層神經網絡

5.4.5 訓練過程的圖形化顯示

5.5 分類數據不平衡問題:只看準確率夠用嗎

5.5.1 混淆矩陣、精確率、召回率和F1 分數

5.5.2 使用分類報告和混淆矩陣

5.5.3 特徵縮放的魔力

5.5.4 閾值調整、欠採樣和過採樣

5.6 從單隱層神經網絡到深度神經網絡

5.6.1 梯度下降:正向傳播和反向傳播

5.6.2 深度神經網絡中的一些可調超參數

5.6.3 梯度下降優化器

5.6.4 激活函數:從Sigmoid 到ReLU

5.6.5 損失函數的選擇

5.6.6 評估指標的選擇

5.7 用Keras 深度神經網絡預測客戶流失率

5.7.1 構建深度神經網絡

5.7.2 換一換優化器試試

5.7.3 神經網絡正則化:添加Dropout 層

5.8 深度神經網絡的調試及性能優化

5.8.1 使用回調功能

5.8.2 使用TensorBoard

5.8.3 神經網絡中的過擬合

5.8.4 梯度消失和梯度爆炸

5.9 本課內容小結

5.10 課後練習

第6課 捲積神經網絡—識別狗狗的圖像

6.1 問題定義:有趣的狗狗圖像識別

6.2 捲積網絡的結構

6.3 捲積層的原理

6.3.1 機器通過“模式”進行圖像識別

6.3.2 平移不變的模式識別

6.3.3 用滑動窗口抽取局部特徵

6.3.4 過濾器和響應通道

6.3.5 對特徵圖進行捲積運算

6.3.6 模式層級結構的形成

6.3.7 捲積過程中的填充和步幅

6.4 池化層的功能

6.5 用捲積網絡給狗狗圖像分類

6.5.1 圖像數據的讀入

6.5.2 構建簡單的捲積網絡

6.5.3 訓練網絡並顯示誤差和準確率

6.6 捲積網絡性能優化

6.6.1 第一招:更新優化器並設置學習速率

6.6.2 第二招:添加Dropout 層

6.6.3 “大殺器”:進行數據增強

6.7 捲積網絡中特徵通道的可視化

6.8 各種大型捲積網絡模型

6.8.1 經典的VGGNet

6.8.2 採用Inception 結構的GoogLeNet

6.8.3 殘差網絡ResNet

6.9 本課內容小結

6.10 課後練習

第7 課 循環神經網絡—鑒定留言及探索系外行星

7.1 問題定義:鑒定評論文本的情感屬性

7.2 循環神經網絡的原理和結構

7.2.1 什麽是序列數據

7.2.2 前饋神經網絡處理序列數據的局限性

7.2.3 循環神經網絡處理序列問題的策略

7.2.4 循環神經網絡的結構

7.3 原始文本如何轉化成向量數據

7.3.1 文本的向量化:分詞

7.3.2 通過One-hot 編碼分詞

7.3.3 詞嵌入

7.4 用SimpleRNN 鑒定評論文本

7.4.1 用Tokenizer 給文本分詞

7.4.2 構建包含詞嵌入的SimpleRNN

7.4.3 訓練網絡並查看驗證準確率

7.5 從SimpleRNN 到LSTM

7.5.1 SimpleRNN 的局限性

7.5.2 LSTM 網絡的記憶傳送帶

7.6 用LSTM 鑒定評論文本

7.7 問題定義:太陽系外哪些恆星有行星環繞

7.8 用循環神經網絡處理時序問題

7.8.1 時序數據的導入與處理

7.8.2 建模:CNN 和RNN 的組合

7.8.3 輸出閾值的調整

7.8.4 使用函數式API

7.9 本課內容小結

7.10 課後練習

第8 課 經典算法“寶刀未老”

8.1 K 最近鄰

8.2 支持向量機

8.3 樸素貝葉斯

8.4 決策樹

8.4.1 熵和特徵節點的選擇

8.4.2 決策樹的深度和剪枝

8.5 隨機森林

8.6 如何選擇最佳機器學習算法

8.7 用網格搜索超參數調優

8.8 本課內容小結

8.9 課後練習

第9 課 集成學習“笑傲江湖”

9.1 偏差和方差—機器學習性能優化的風向標

9.1.1 目標:降低偏差與方差

9.1.2 數據集大小對偏差和方差的影響

9.1.3 預測空間的變化帶來偏差和方差的變化

9.2 Bagging 算法—多個基模型的聚合

9.2.1 決策樹的聚合

9.2.2 從樹的聚合到隨機森林

9.2.3 從隨機森林到極端隨機森林

9.2.4 比較決策樹、樹的聚合、隨機森林、極端隨機森林的效率

9.3 Boosting 算法—鍛煉弱模型的“肌肉”

9.3.1 AdaBoost 算法

9.3.2 梯度提升算法

9.3.3 XGBoost 算法

9.3.4 Bagging 算法與Boosting 算法的不同之處

9.4 Stacking/Blending 算法—以預測結果作為新特徵

9.4.1 Stacking 算法

9.4.2 Blending 算法

9.5 Voting/Averaging 算法—集成基模型的預測結果

9.5.1 通過Voting 進行不同算法的集成

9.5.2 通過Averaging 集成不同算法的結果

9.6 本課內容小結

9.7 課後練習

第10 課 監督學習之外—其他類型的機器學習

10.1 無監督學習—聚類

10.1.1 K 均值算法

10.1.2 K 值的選取:手肘法

10.1.3 用聚類輔助理解營銷數據

10.2 無監督學習—降維

10.2.1 PCA 算法

10.2.2 通過PCA 算法進行圖像特徵採樣

10.3 半監督學習

10.3.1 自我訓練

10.3.2 合作訓練

10.3.3 半監督聚類

10.4 自監督學習

10.4.1 潛隱空間

10.4.2 自編碼器

10.4.3 變分自編碼器

10.5 生成式學習

10.5.1 機器學習的生成式

10.5.2 生成式對抗網絡

10.6 本課內容小結

10.7 課後練習

第11 課 強化學習實戰—咖哥的冰湖挑戰

11.1 問題定義:幫助智能體完成冰湖挑戰

11.2 強化學習基礎知識

11.2.1 延遲滿足

11.2.2 更復雜的環境

11.2.3 強化學習中的元素

11.2.4 智能體的視角

11.3 強化學習基礎算法Q-Learning 詳解

11.3.1 迷宮游戲的示例

11.3.2 強化學習中的局部最優

11.3.3 ε -Greedy 策略

11.3.4 Q-Learning 算法的偽代碼

11.4 用Q-Learning 算法來解決冰湖挑戰問題

11.4.1 環境的初始化

11.4.2 Q-Learning 算法的實現

11.4.3 Q-Table 的更新過程

11.5 從Q-Learning 算法到SARSA算法

11.5.1 異策略和同策略

11.5.2 SARSA 算法的實現

11.6 用SARSA 算法來解決冰湖挑戰問題

11.7 Deep Q Network 算法:用深度網絡實現Q-Learning

11.8 本課內容小結

11.9 課後練習

尾聲:如何實現機器學習中的知識遷移及持續性的學習

練習答案