Professor: 江政欽
Class name: 深度學習基石與實務

參考書籍: Dive into deep learning

老師講義地址: Heptabase 首頁
├── ch1: Introduction to Deep Learning
├── ch2: Preliminaries (預備知識)
├── ch
├── ch
├── ch

└── ch

Colab1: 深度學習課堂用
Colab2: 深度學習作業用

Ch1: Introduction to Deep Learning

講義地址: Heptabase 首頁
參考書籍: Dive into deep learning
上課日期: 2024/2/27, w2

# 解決問題的發展

# Traditional Programming Approach: 規則導向 (programmer-defined rules)

  • 難涵蓋所有可能的 situation
  • 不夠彈性,不同場景要不同的 rule,且很需要各個領域的專家系統

# Transition to Traditional Machine Learning: Data 導向

  • 由統計方法從大量 dataset 中找出 rules

  • 為了找出更有用的特徵,所以發展出 Feature Engineering (特徵工程),結果尚需專家的協助,因此為 hand-crafted 的。

  • Traditional Machine Learning:

    • Training Models: Utilizes data sets for training models to make predictions or decisions.
    • Applications: Weather Prediction, Natural Language Processing, Image Recognition
  • Considerations:

    • Data Requirements: Needs large volumes of high-quality data.
    • Model Sophistication: Complex issues require advanced models.
    • 運算需求:通常需要大量的運算資源。

# Deep Learning: 機器學習的一個主要分支,期望能做到 automatic Feature Engineering

  • 找出從低到高 level 的 features

  • Applications: Computer Vision, Natural Language Processing (NLP)

  • 學習機制:

    • 利用人工神經網路來學習表示法(特徵),且更適合跨學科應用。
  • Advantages:

    • 非結構化資料處理:對文字和圖像非常有效。
    • 複雜模式識別:識別廣泛資料集中的複雜模式。
  • Challenges:

    • Data and Computing Needs: Requires large datasets and substantial computational power.
    • Interpretability Issues: Neural networks can be difficult to interpret or explain.

# Four key components that each machine learning contains.

  1. Data: 用來學習的資料
    • Dataset contains input features with labels.
  2. Model: 如何轉換資料的模型
    • 即數學公式,從產生資料的過程中找到輸入參數前的係數。
    • Use Neural Network to process.
    • Parameter Fine-Tuning (微調): Adjustments made during training.
  3. Objective Function: 用來量化模型的有效性之目標函數,不同問題會套用不同的函數。
    • Loss/Cost Function: Measures model prediction accuracy against actual labels.
    • Minimization Target: Used to assess and improve model accuracy.
    • Cross-Entropy (熵 / 亂度) Loss: Common choice for binary classification.
  4. Algorithm: 調整模型參數以最佳化目標函數的演算法
    • Parameter Adjustment Process: 涉及減少目標函數
    • Gradient Descent: 神經網路中迭代參數更新的流行演算法。

# 機器學習的類別

# 監督式學習 (Supervise learning): Learning from Answers

  • Datasets composed of features and associated labels.

  • Predicts labels based on input features.

  • Output: Estimation of conditional probabilities or real-value numbers

    • 條件機率如: P (cat|x (input, 此時為照片) )=0.4, P (人 | x)=0.1, P (dog|x)=0.5,且總和為 1
  • Learning process:

    1. Data Collection
    2. Training Set Preparation: Choose a random subset for training.
    3. Model Training
    4. Prediction on Testing Subsets
  • 根據輸入的客製化模型

    Vector ModelsSequence Processing Models
    Input 長度固定不一定
    使用例子CNNRNN
  • 問題種類

    • Regression
      • 預測連續數值型資料,如:房屋價格、降雨量、文字接龍 (eg: P (學 | 東華大)=0.8) 等。
      • 特徵向量:包括房屋面積、臥室數量等。
    • Classification
      • Binary or multiclass classification
      • Model predicts probabilities for each class.
    • Tagging (標記)
      • Multi-label Classification: Each example can have multiple associated labels.
      • Applications: Tagging Systems
    • Sequence Learning
      • 處理 Variable-Length Data
      • 上下文有相依性 (∴順序很重要)
      • Variable Input/Output: Common in tasks like machine translation.
      • 重要性質:
        • 模型適應性:需要像 RNN 或 Transformer 這樣的模型。
        • 情境理解:了解長期的上下文依賴性。
        • 對齊挑戰:在翻譯任務中對齊詞語或短語。
        • 超越文本和語音:適用於金融、天氣預測和生物學。

# 非監督式學習 (Unsupervised learning)

  • 定義: The model learns patterns and structures from unlabeled data without 特定指導或監督。

非監督式學習沒有 label 要怎麼學呢?
→可用來處理沒有標準答案的問題,例如 "生成"。

  • Learning process:
    1. Collect Data
    2. Prepare Data: Clean your data and make sure it's in the right format.
    3. Choose a Model: Pick an algorithm suitable for your data (like K-Means for grouping).
    4. Set Parameters: Decide on settings for your model (like how many groups to find).
    5. Train the Model: Let the model find patterns in your data.
    6. Evaluate (評估): Check how well your model is doing and make sure it makes sense.
  • 難點:
    • 評估困難:缺乏明確的 “正確” 答案,因此評估指標較難確定。
    • 模型複雜度:通常比監督式學習涉及更複雜的設計和訓練過程。
  • 問題種類
    • Clustering (分群)
      • Groups similar data points without predefined labels.
      • 演算法:
        • K-Means: 通過最小化每個集群內的變異性將數據劃分為 K 個集群。

          非監督式學習演算法只基於輸入資料找出模式,無法正確找出結果。K-Means 就是透過這個概念將資料做分群,顧名思義就是將資料分成一群一群,如下圖右所示。

        • DBSCAN (基於密度的聚類演算法,Density-Based Spatial Clustering of Applications with Noise): 根據數據點的密度形成集群,適用於帶有噪聲和異常值的數據。
        • 階層式分群法 (Hierarchical clustering): 使用 tree 結構,以 bottom-up approach (agglomerative, 聚合)或 top-down approach (divisive, 分割)的方式建立集群的層次結構。
    • Dimensionality Reduction
      • 降低資料複雜性,同時保留重要特徵。
      • 演算法:
        • 主成分分析 (Principal Component Analysis, PCA): 用來分析資料、降低數據維度以及去關聯的線性降維方法。核心精神在於將原始數據拆解成具有代表性的主成分,達到降維的目的,並重新描述數據。優點是降維不會損失過多資訊且結果可能甚至更好。
    • Euclidean Space Representation (歐幾里德空間表示)
      • 旨在在空間上下文中保留符號關係。
      • 演算法:
        • 自組織映射網路 (Self-Organizing Map, SOM): 一種使用非監督學習訓練的人工神經網路,用於生成訓練樣本輸入空間的低維(通常是二維)、離散化表示。
        • t - 分佈隨機鄰域嵌入 (t-Distributed Stochastic Neighbor Embedding, t-SNE) and 均勻流形近似和投影 (Uniform Manifold Approximation and Projection, UMAP): 用於降低維度,同時保留數據的局部結構,這對於理解空間關係可能很有用。其中 t-SNE 會把高維度的資料變成 2 維的圖,可用來生成。
    • Causal Inference and Probabilistic Models (因果推理和機率模型)
      • 分析關係以了解 data 中的根本原因。
      • 演算法:
        • Apriori 演算法:找出在異動 (transaction) 中經常一起出現的項目。
        • FP-Growth 演算法:具有類似的目的,但通常比 Apriori 快。(以上兩個是資料探勘的演算法)
  • 監督式學習和非監督式學習並非完全對立,它們常會被一起使用,如手寫中文字的辨識中,可以先分群來加速流程。

# 自監督學習 (Self-supervised learning)

  • 最顯著的特點是它們不需要人類標註的標籤,這意味著它的訓練完全基於由未標記的數據樣本組成的數據集。
  • 屬於 Unsupervised Learning 的一種,透過挖掘大量無標記資料中本身的資訊,如此一來就可以使用監督式學習的方式進行訓練。
  • 把缺少的東西當作偽標籤 (pseudo-labels),將非監督式的任務轉換為監督式的任務,如:
    • 文本:使用上下文預測缺失的單詞。
    • 圖像:識別圖像補丁位置或預測被遮擋的部分。
  • 資料集不足時可以拿來生成之。
  • 模型例子:
    • Spatial Autoencoders (空間自動編碼器): 它學習將 input data 編碼為低維空間,然後解碼回原始空間,同時保持 data 中的空間關係。
    • Predictive Coding (預測編碼): 預測數據序列中未來或缺失部分的模型,例如預測句子中的下一個單詞或影片中的下一個幀。
    • Masked Language Modeling (MLM): 在自然語言處理中使用的方法,涉及屏蔽句子中的某些單詞並訓練模型來預測它們,就像 BERT 一樣。
    • Jigsaw Puzzle Solving (解拼圖遊戲): 一幅圖像被切分成 tiles (瓦片),這些 tiles 被 shuffled (洗牌),模型學習將它們重新排列成正確的順序。

# 強化學習 (Reinforcement learning)

  • Driven by reward,強調如何基於環境而行動,以取得最大化的預期利益。
  • 如訓練自動車,有 input,但沒標準答案,而是給予正面或負面的回饋。
  • 基本框架:
    • Agent-Environment 的互動: The agent receives observations and rewards from the environment based on its actions.
    • Policy: 根據當前狀態或觀察選擇行動的 "策略"。
    • Goal: 學習一個能夠隨著時間累積最大獎勵的 policy。
  • 特性:
    • 適用性廣:適用於一系列問題,包括不適合監督學習的問題。
    • 功勞分配問題 (Credit Assignment Problem): 識別導致獎勵的行動,尤其是在延遲獎勵情境下。
    • 部分可觀測性 (Partial Observability): 當 agent 對環境的訊息不完整時,會出現挑戰。
  • Dilemma: 在需要探索新策略與使用已證明有效的策略之間取得平衡。這對強化學習中的有效學習至關重要。
  • Deep Reinforcement Learning: 將神經網路與強化學習結合應用於複雜環境中。著名的有 Deep Q-Networks (DQN) and AlphaGo.
  • 挑戰:計算複雜度,特別是在存在長期依賴性 (long-term dependencies) 和部分可觀測性的環境中。

臉書首席 AI 科學家 Yann LeCun (CNN 之父) 來臺演講自監督學習,問題整理連結

  • 自監督式學習、監督式學習和強化學習,三者有何不同?
    →用蛋糕來比喻三種方法的預測能力,強化學習能預測的資料最少,因為它是為了獎勵,才能做出少量正確的預測,就像蛋糕上的櫻桃。而監督式學習的預測資料量,取決於人類提供的標記資料,像是蛋糕的表層。但是,自監督式學習是給多少資料就有多少資料能觀察,一個樣本能產生上百萬個位元的預測回饋,就像整個蛋糕本身,這是其他學習方法不能及的。
  • 自監督式學習能從許多的物件、行為等背景知識,來學習整個世界運行的方式,進而運用已知的常識來預測未知。一般稱呼具備人類常識的 AI 模型為 Artificial General Intelligence(AGI)


# 成功案例

  • 早期應用:
    • OCR: 如經典的 MNIST dataset
    • 金融安全:詐欺識別
  • 消費者導向的 AI 突破:
    • Digital Assistants: Siri, Alexa, and Google Assistant.
    • Speech Recognition
  • Object Recognition
    • ImageNet: 大型視覺資料庫
  • AI in gaming and strategy
  • Autonomous Vehicles (自動駕駛汽車)
    • Tesla, Waymo 等公司
    • 深度學習對於視覺處理至關重要。
  • 互動式 AI
    • ChatGPT: 展示了協助各種任務的能力,從提供訊息到創意寫作。
    • Midjourney 和 DALL-E