Home
Login

第四階段:深度學習與神經網路

開源深度學習教材,結合理論、程式碼和實踐,支援多框架實現,提供完整的從入門到高級的深度學習學習路徑

DeepLearningPyTorchNeuralNetworksWebSiteebookFreeMulti-Language

深入學習 (D2L) 課程詳細介紹

課程概述

深入學習 (Dive into Deep Learning, D2L) 是一本開源的深度學習教材,旨在讓深度學習變得易於理解和學習。這本書將概念、情境和程式碼結合在一起,為讀者提供一個全面的深度學習學習資源。

課程背景

幾年前,深度學習科學家在大公司和新創公司開發智慧產品和服務的情況還很少見。當時,機器學習並不是日報頭條,我們的父母也不知道什麼是機器學習。機器學習當時還是一個學術藍天學科,其工業意義僅限於少數實際應用,包括語音辨識和電腦視覺。

然而,在短短幾年內,深度學習就讓世界為之驚訝,在電腦視覺、自然語言處理、自動語音辨識、強化學習和生物醫學資訊學等多個領域推動了快速發展。深度學習的成功甚至催化了理論機器學習和統計學的發展。

教材特色

1. 多元化媒體結合

  • 程式碼、數學和HTML的結合:將程式碼、數學公式和網頁內容整合在一個平台上
  • 可執行程式碼:大部分章節都包含可執行的程式碼範例
  • 即時更新:透過GitHub支援快速更新和社群貢獻

2. 學習方式:邊做邊學

  • 即時概念學習:在需要概念解決實際問題時才教授相關概念
  • 實踐優先:讓學生在擔心更深奧的概念之前先體驗訓練第一個模型的滿足感
  • 真實資料集:每個後續章節都使用真實資料集提供幾個自包含的工作範例

3. 多框架支援

該教材支援多個深度學習框架的實作:

  • PyTorch(主要框架)
  • TensorFlow
  • MXNet
  • JAX

內容結構

教材可以分為三個主要部分:

第一部分:基礎和預備知識

  • 第1章:深度學習簡介
  • 第2章:預備知識(資料儲存和操作、數值運算等)
  • 第3章:線性迴歸
  • 第5章:多層感知機
  • 涵蓋迴歸和分類、線性模型、多層感知機、過度擬合和正規化等基礎概念

第二部分:現代深度學習技術

  • 第6章:深度學習系統的關鍵計算元件
  • 第7-8章:卷積神經網路(CNN)
  • 第9-10章:循環神經網路(RNN)
  • 第11章:注意力機制和Transformer
  • 涵蓋現代深度學習從業者廣泛使用的最強大和通用的工具

第三部分:可擴展性、效率和應用(線上提供)

  • 第12章:優化演算法
  • 第13章:計算效能
  • 第14章:電腦視覺應用
  • 第15-16章:語言表示模型預訓練和自然語言處理應用

程式碼實作特色

核心套件和依賴項

教材使用 d2l 套件來避免不必要的重複,該套件輕量級且僅需要以下依賴項:

#@save
import collections
import hashlib
import inspect
import math
import os
import random
import re
import shutil
import sys
import tarfile
import time
import zipfile
from collections import defaultdict
import pandas as pd
import requests
from IPython import display
from matplotlib import pyplot as plt
from matplotlib_inline import backend_inline
d2l = sys.modules[__name__]

PyTorch實作依賴項

#@save
import numpy as np
import torch
import torchvision
from PIL import Image
from scipy.spatial import distance_matrix
from torch import nn
from torch.nn import functional as F
from torchvision import transforms

TensorFlow實作依賴項

#@save
import numpy as np
import tensorflow as tf

JAX實作依賴項

#@save
from dataclasses import field
from functools import partial
from types import FunctionType
from typing import Any
import flax
import jax
import numpy as np
import optax
import tensorflow as tf
import tensorflow_datasets as tfds
from flax import linen as nn
from flax.training import train_state
from jax import grad
from jax import numpy as jnp
from jax import vmap

目標受眾

本教材面向以下人群:

  • 學生(大學部或研究所)
  • 工程師
  • 研究人員

尋求深度學習實用技術紮實掌握的人員。

預備知識要求

  • 適量的線性代數知識
  • 微積分基礎
  • 機率論基礎
  • Python程式設計基礎

學習資源

線上資源

取得方式

  • 可執行程式碼形式
  • 實體書
  • 可下載PDF
  • 網站線上版本

所有筆記本都可以在D2L.ai網站和GitHub上免費下載。

教材優勢

  1. 免費開放:面向所有人免費提供
  2. 技術深度:提供成為應用機器學習科學家的起點所需之技術深度
  3. 可運行程式碼:展示如何在實踐中解決問題
  4. 快速更新:支援作者和社群的快速更新
  5. 社群支援:配有互動論壇進行技術討論和答疑

創新特點

  • 可能是第一本使用整合工作流程發布的書籍
  • 結合了教科書品質的闡述和實踐教學的整潔可運行程式碼
  • 採用GitHub分享原始碼,Jupyter筆記本混合程式碼、方程式和文本
  • 使用Sphinx作為渲染引擎,Discourse作為討論平台

學習建議

  1. 註冊討論論壇帳戶
  2. 在電腦上安裝Python
  3. 透過章節底部的論壇連結尋求幫助和討論
  4. 邊做邊學,充分利用可執行程式碼
  5. 參與社群討論,與作者和更廣泛的社群交流

這本教材代表了深度學習教育的一個重要里程碑,為學習者提供了一個全面、實用且易於取得的深度學習學習資源。