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.
- Data: 用來學習的資料
- Dataset contains input features with labels.
- Model: 如何轉換資料的模型
- 即數學公式,從產生資料的過程中找到輸入參數前的係數。
- Use Neural Network to process.
- Parameter Fine-Tuning (微調): Adjustments made during training.
- 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.
- 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:
- Data Collection
- Training Set Preparation: Choose a random subset for training.
- Model Training
- Prediction on Testing Subsets
根據輸入的客製化模型
Vector Models Sequence Processing Models Input 長度 固定 不一定 使用例子 CNN RNN 問題種類
- 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 這樣的模型。
- 情境理解:了解長期的上下文依賴性。
- 對齊挑戰:在翻譯任務中對齊詞語或短語。
- 超越文本和語音:適用於金融、天氣預測和生物學。
- Regression
# 非監督式學習 (Unsupervised learning)
- 定義: The model learns patterns and structures from unlabeled data without 特定指導或監督。
非監督式學習沒有 label 要怎麼學呢?
→可用來處理沒有標準答案的問題,例如 "生成"。
- Learning process:
- Collect Data
- Prepare Data: Clean your data and make sure it's in the right format.
- Choose a Model: Pick an algorithm suitable for your data (like K-Means for grouping).
- Set Parameters: Decide on settings for your model (like how many groups to find).
- Train the Model: Let the model find patterns in your data.
- 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, 分割)的方式建立集群的層次結構。
- K-Means: 通過最小化每個集群內的變異性將數據劃分為 K 個集群。
- 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 快。(以上兩個是資料探勘的演算法)
- Clustering (分群)
- 監督式學習和非監督式學習並非完全對立,它們常會被一起使用,如手寫中文字的辨識中,可以先分群來加速流程。
# 自監督學習 (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