名詞筆記
速查表
| 中 (英) 文名詞 | 說明 |
| 過擬合 (Overfitting) | 指模型在訓練資料上表現良好,但在新資料上表現差 |
| 欠擬合 (Underfitting) | 指模型過於簡單,無法學習到資料中的模式。 |
| 泛化能力 (Generalization Ability) | 指機器學習模型在未⾒過的新資料上的表現能⼒。 |
| 超參數 (Hyperparameter) | 訓練模型時用來控制訓練過程的變數。哪些是有效的超參數以及超參數的最佳值,可以手動或透過超參數演算法自動調校。 |
| 遷移式學習 (Transfer Learning) | 讓已訓練完畢的 AI 模型進行知識轉移,輔以新的數據再訓練後,便可完成相似度較近的任務。遷移式學習實務上能解決小樣本訓練的課題,如可應用於如製造業瑕疵檢測。 |
| 幻覺 (Hallucination) | 指模型自信地生成了不真實的答案 (或稱: 一本正經地胡說八道)。最新研究論文指出,語言模型之所以會產生幻覺,是因為標準的訓練和評估流程更鼓勵模型去猜測,而不是承認自己的不確定性。 |
演算法 vs 模型
- 演算法是針對輸入資料執行一系列運算或處理的過程。
- 模型是基於演算法與訓練過程的產物,能反映出演算法學習的成果。
例如,演算法從大量資料中學習到一套分類規則後,將其建立為模型,使用者後續輸入資料時,模型將以同樣分類規則進行分類。
李宏毅:模型是一個函式 f(x)
y = f(x) = ax + b
- 輸入 x:
例如一張動物照片例如一張動物照片,寫一首詩。 - 參數 a, b:例如模型參數
- 輸出 y:
例如貓或狗例如貓或狗,床前明月光...
訓練集 vs 驗證集 vs 測試集
- 訓練集:用於訓練AI 模型
- 驗證集:特定AI 演算法將需要預留驗證集,可看作模型中有多個不同參數,須以驗證集資料做測試後,建立出表現最好的模型。
- 測試集:用於測試最後AI 模型表現,檢查預測或分類效能。
特徵 (Feature) vs 標籤 (Label)
- 特徵(Feature)是「描述你要處理事物的屬性」;標籤(Label)則是「你想讓模型學會預測或分類的答案」
- 特徵是輸入;標籤是輸出。兩者有對應關係。
- 房價預測:特徵 - 房間數、距近地鐵距離、建築年份;標籤 - 房子最終成交價格
- 天氣預測:特徵 - 溫度、濕度、風速;標籤 - 明天是否降雨(是/否)
數據品質 5V 特性
- Volume (數據量)
- Velocity (數據速度)
- Variety (數據多樣性)
- Veracity (數據真實性)
- Value (數據價值)
平均數/中位數/眾數
平均值、中位數及眾數是統計學中用來描述一組數據的集中趨勢的三種不同方法。下面是對這三種方法的具體說明和案例:
-
平均值(Mean):平均值是指一組數據的總和除以數據的個數。計算平均值的時候,所有的數據都會被考慮到。平均值對於描述數據的整體水平很有用,但如果數據中有極端值(例如異常高或異常低的數據),平均值可能會被這些極端值所影響,從而不能準確地反映數據的真實情況。
案例:假設有一家公司有5名員工,分別的工資是2000、2500、3000、3500和4000元。平均工資 = (2000 + 2500 + 3000 + 3500 + 4000) / 5 = 3000元。
-
中位數(Median):中位數是指將數據按從小到大的順序排列後,位於中間位置的數據。如果數據的個數是奇數,中位數就是中間的那個數據;如果數據的個數是偶數,中位數就是中間兩個數據的平均值。中位數對於描述數據的中間位置很有用,尤其是在數據中有極端值的情況下。
案例:假設有一組數據:1、3、5、7、9。中位數是5,因為它是中間的數據。
-
眾數(Mode):眾數是指在一組數據中出現次數最多的數據。一個數據集可能有多個眾數,也可能沒有眾數(如果所有數據都不同)。適合用於類別資料分析,例如教育程度。
案例:假設有一組數據:1、2、2、3、4、4、4。眾數是4,因為它出現的次數最多。
綜上所述,平均值、中位數和眾數都是描述數據集中趨勢的重要指標,但它們反映的方面不同,適用的情況也不同。平均值對於描述整體水平很有用,但可能受極端值的影響;中位數對於描述中間位置很有用,尤其是在有極端值的情況下;眾數則反映了最常見的數據值。
直方圖/散佈圖/雷達圖
以下是簡單的解釋:
- 直方圖(Histogram):是一種統計圖表,用於顯示資料的分布情況。它將資料分成多個區間(bin),並計算每個區間的頻率(frequency)。直方圖可以幫助我們了解資料的集中趨勢、離散程度和分布形狀。
例子:如果我們想要了解一組學生的考試成績分布情況,可以使用直方圖來顯示成績的分布。
- 散佈圖(Scatter plot):是一種統計圖表,用於顯示兩個變數之間的關係。它將每個資料點繪製在座標平面上,x軸代表一個變數,y軸代表另一個變數。散佈圖可以幫助我們了解兩個變數之間的相關性和模式。
例子:如果我們想要了解身高和體重之間的關係,可以使用散佈圖來顯示這兩個變數之間的關係。
- 雷達圖(Radar chart):是一種統計圖表,用於顯示多個變數之間的關係。它將每個變數繪製在極坐標系上,形成一個多邊形圖形。雷達圖可以幫助我們了解多個變數之間的相關性和模式。
例子:如果我們想要了解一組產品的多個特性(如價格、性能、設計等)之間的關係,可以使用雷達圖來顯示這些變數之間的關係。
4. 箱型圖 (Box chart):展示數據的分布情況,可顯示中位數、四分位數與異常值。
四分位數
四分位數(Quartile):是一種統計量,用於描述資料的分布情況。它將資料分成四個區間,每個區間包含25%的資料。四分位數包括:
-
- 第一四分位數(Q1):資料的下25%的值
- 第二四分位數(Q2):資料的中位數(中間50%的值)
- 第三四分位數(Q3):資料的上25%的值
- 四分位距(IQR):Q3 - Q1,代表資料的離散程度
例子:如果我們想要了解一組學生的考試成績分布情況,可以使用四分位數來描述成績的分布。例如,Q1 = 60,Q2 = 70,Q3 = 80,IQR = 20,代表成績的中位數是70,下25%的成績是60以下,上25%的成績是80以上,成績的離散程度是20。
四分位距 (IQR) 特點:
- 常用來檢測異常值
- 不受極端值影響
- 僅代表 50% 資料的分散程度
計算例子:
要計算 Q1、Q2 和 Q3,需要按照以下步驟進行:
- 將數據集依小至大排序:80, 85, 85, 90, 90, 95, 95, 100, 100
- 計算數據集的位置:
- 第一四分位數 (Q1) 是排序後數據集的 25% 位置的值。
- 第二四分位數 (Q2) 是排序後數據集的 50% 位置的值,即中位數。
- 第三四分位數 (Q3) 是排序後數據集的 75% 位置的值。
- 由於數據集有 9 個值,計算位置如下:
- 25% 位置 = (9 + 1) * 0.25 = 2.5,四捨五入為 3,所以 Q1 是第 3 個值。
- 50% 位置 = (9 + 1) * 0.5 = 5,所以 Q2 是第 5 個值。
- 75% 位置 = (9 + 1) * 0.75 = 7.5,,所以 Q3 是第 7 個值。
- 根據排序後的數據集,找到對應的值:
- Q1 = 第 3 個值 = 85
- Q2 = 第 5 個值 = 90
- Q3 = 第 8 個值 = 100
因此,Q1 = 85,Q2 = 90,Q3 = 95。
四分位距 (IQR) = Q3 - Q1 = 95 - 85 = 10
DALL-E vs Midjourney
DALL-E 和 Midjourney 是兩種基於人工智慧的圖像生成工具,以下是簡單的說明和比較:
DALL-E
- DALL-E 是一種基於變分自編碼器(VAE)和_transformer 的圖像生成模型。
- 它可以根據文字描述生成圖像,例如「一隻狗坐在椅子上」。
- DALL-E 的生成圖像通常具有高品質和細節,但可能需要大量的計算資源和數據。
- DALL-E 的主要優點是其生成圖像的多樣性和創造性,但也可能產生不合理或不現實的圖像。
Midjourney
- Midjourney 是一種基於生成對抗網絡(GAN)和_diffusion 模型的圖像生成工具。
- 它可以根據文字描述生成圖像,例如「一座未來城市的風景」。
- Midjourney 的生成圖像通常具有高品質和細節,且比 DALL-E 更加快速和高效。
- Midjourney 的主要優點是其生成圖像的速度和效率,但也可能產生不夠多樣或不夠創造性的圖像。
比較
- 生成品質:DALL-E 和 Midjourney 都可以生成高品質的圖像,但 DALL-E 的生成圖像可能更加多樣和創造性。
- 計算資源:Midjourney 比 DALL-E 更加快速和高效,需要較少的計算資源。
- 文字描述:DALL-E 和 Midjourney 都可以根據文字描述生成圖像,但 DALL-E 的文字描述可能更加複雜和細節。
- 應用場景:DALL-E 可能更加適合於需要高品質和創造性的圖像生成任務,例如藝術和設計;Midjourney 可能更加適合於需要快速和高效的圖像生成任務,例如廣告和行銷。
總之,DALL-E 和 Midjourney 是兩種不同的圖像生成工具,各有其優缺點和適用場景。
BERT (Transformer)
- 基於Transformer架構:BERT的核心是Transformer模型,該模型使用自注意力機制(Self-Attention)來處理序列數據。這使得BERT能夠捕捉到文本中詞彙之間的長距離依賴關係和上下文信息。
- 預訓練:BERT通過大規模的預訓練數據集進行訓練,學習到通用的語言特徵和語義信息。預訓練任務包括掩碼語言模型(Masked Language Modeling)和下一句預測(Next Sentence Prediction)。
- 細調訓練:在預訓練的基礎上,BERT可以通過少量的任務特定數據進行細調訓練,以適應特定的下游任務,如文本分類、命名實體識別等。
- 文本分類:BERT在文本分類任務中表現出色,如情感分析、主題分類等。
- 命名實體識別:BERT可以用於識別文本中的命名實體,如人名、地名、組織名等。
- 問答系統:BERT可以用於自然語言問答系統,理解問題的意圖和上下文。
- 文本生成:BERT可以用於文本生成任務,如自動摘要、文本填充等。
- 語言翻譯:BERT可以用於語言翻譯任務,特別是在低資源語言的翻譯中。
GPT vs BERT
GPT is one directional while BERT is bidirectional. You use GPT to predict the next token GIVEN the previous context, while you use BERT to predict the token in between GIVEN the token of both previous and future context. So you use GPT for text generation while you use BERT for text classification (understanding text). In terms of architecture, GPT is transformer-decoder only while BERT is transformer-encoder only.
準確度/精確率/錯誤率/召回率
模型評估指標
- 準確度(Accuracy):判斷正確的比例,(真陽性+真陰性) / 總樣本數,不適用於數據(類別)不平衡的資料。
- 精確率(Precision):預測為正的樣本中,實際為正的比例,真陽性 / (真陽性+偽陽性)。減少誤判(FP)很重要時使用。
- 召回率(Recall):實際為正的樣本中,被成功找出的比例,真陽性 / (真陽性+偽陰性)。避免漏判(FN)很重要時使用。
- 錯誤率(Error):判斷錯誤的比率。
- 錯誤率 = (FP+FN) / 總數
- 錯誤率 = 1 - 準確度
- F1 Score:Precision 與 Recall 的調和平均值。適用於資料不平衡的情況。
- AUC-ROC:衡量模型整體區分正負樣本的能力,數值愈高愈好(1 是完美)。
不同應用場景需要不同評估重點:
- 機場安檢:召回率優先
- 金融詐騙:召回率優先
- 醫療診斷:召回率與精確率都重要
- 自動駕駛:各項指標都需要極高標準
損失函數 (Loss Function)
什麼是損失函數?
在機器學習中,損失函數(Loss Function),也稱為成本函數(Cost Function),是一個用來衡量模型預測值與真實值之間差異的數學函數。簡單來說,它告訴我們模型做得有多「差」。
想像一下,你正在教一個孩子如何射箭。每次他射中靶心,你都給他一個高分;每次他射偏了,你都記錄下他離靶心的距離。這個「離靶心的距離」就是損失,而這個記錄距離的過程,就是損失函數在做的事。
損失函數的用途
損失函數是機器學習模型學習和優化的關鍵。它的主要用途如下:
- 評估模型表現: 損失函數給出一個量化的數值,讓我們知道模型在當前資料集上的表現好壞。損失值越小,代表模型預測得越準確;損失值越大,代表預測越不準確。
- 指導模型學習: 機器學習的目標,就是透過不斷調整模型的參數(例如神經網路中的權重和偏差),來最小化損失函數的值。這個過程通常透過梯度下降(Gradient Descent)等優化演算法來實現。
可以把損失函數想像成一張地圖,地圖上的高度代表損失值。梯度下降演算法就像是從地圖上隨機一點出發,每次都朝著最陡峭的下坡方向走一小步,最終找到地圖上的最低點。
幾種常見的損失函數
損失函數的選擇取決於你要解決的問題類型。
- 均方誤差 (Mean Squared Error, MSE)
- 用途: 主要用於迴歸問題,也就是預測連續數值(例如房價、氣溫)。
- 原理: 衡量模型預測結果與實際數據之間平均誤差大小的數字,通過將每個誤差平方後取平均來計算,計算出的數值越小表示模型預測越準確。
- 特點: 對於較大的誤差會給予更高的懲罰,因為誤差被平方了。
- 交叉熵 (Cross-Entropy)
- 用途: 主要用於分類問題,特別是邏輯迴歸和神經網路。
- 原理: 衡量兩個機率分布之間的差異。在分類問題中,就是衡量模型預測的機率分布與真實類別(一個one-hot 編碼的機率分布)之間的差異。
- 特點: 當預測錯誤時,會產生巨大的損失,能有效引導模型修正錯誤。
- 平均絕對誤差 (Mean Absolute Error, MAE)
- 用途: 也是用於迴歸問題。
- 原理: 衡量模型預測結果與實際數據之間平均誤差大小的數字,通過將每個誤差取絕對值後取平均來計算,計算出的數值越小表示模型預測越準確。
- 特點: 相較於 MSE,MAE 對於異常值(Outliers)的影響較不敏感,因為它不會將誤差平方。
- 判定係數 (R-Square):計算出數值表示模型對數據變化的解釋程度,數值範圍從0 到1,數字越接近1,表示模型預測越準確。
學習率 (Learning Rate)
學習率 ( Learning Rate ) 是梯度下降優化算法中的一個重要 超參數,它決定了在每一步更新模型參數時,參數應該調整多少。學習率的選擇對於優化算法的效果和速度都有顯著影響。
想像你正走在一條山路上尋找最低點:
- 學習率太大 → 你可能“跳過”最低點,甚至翻到另一座山峰(收斂不穩或失敗)。
- 學習率太小 → 你走得太慢,需要花很多時間才能到達最低點(訓練時間過長)。
如何選擇合適的學習率:
- 若模型訓練不穩定,先把學習率降 10 ~ 100 倍試試。
- 使用 Adam / AdamW 之類的自適應優化器,內建自動調整學習率的機制,初始學習率可設為 1e‑3。
- 在「微調」預訓練模型時,前面幾層學習率設為 1/10–1/100 的大小,最後幾層用較大的學習率。
小結:
- 學習率 是「權重更新步長」的大小;決定模型學得快不快、能否收斂。
- 過大容易發散,過小則訓練慢。
- 通過 搜索、學習率訓練曲線、調度器 等手段可找到合適的值。
- 在實際工程中,常見做法是先以大學習率快速逼近,再用自動調度或手動降低,以達到最佳績效。
LLM 評估基準(Benchmark)
| 基準名稱 | 類型 | 特性與用途 | 主要評估能力 |
| MMLU | 通用型 | 包含 57 個學科的多選題,從人文到理工科皆有,能全面評估模型的知識廣度。 | 專業知識、常識、多領域理解 |
| HellaSwag | 通用型 | 測試模型在日常情境中的常識推理能力,選項設計得非常相似,能有效評估語境理解。 | 日常推理、語境理解、常識判斷 |
| ARC | 通用型 | 包含來自小學到高中程度的科學問題,重點在於評估模型的科學推理與解題能力。 | 科學知識、邏輯推理、多步驟解題 |
| HumanEval | 特定型 | 專為評估程式碼生成而設計,提供函式說明讓模型生成程式碼。 | 程式碼生成、除錯能力、邏輯編程 |
| GSM8K | 特定型 | 包含小學程度的數學應用題,雖問題簡單,但需多步驟推理才能解答。 | 數學運算、邏輯推理、數學解題 |
| AlpacaEval | 特定型 | 透過另一個更強大的 LLM(如 GPT-4)作為評審,來評估模型的回應品質。 | 指令遵循、對話流暢度、回答品質 |
聯合學習 (Federated Learning)
保護資料隱私的機器學習方案
聯合學習是一種分散式機器學習方法,允許多(手機、平板、IoT、公司內部伺服器等)在本地保留數據,僅將「模型更新」或「梯度」傳回中央服務器來共同訓練一個全局模型。
核心理念:數據不離開本地,只有學習到的「知識」被匯聚。
過去為優化AI 演算法,會將用戶資料上傳到資料中心進行訓練,但國際法規規定對個人資料的使用行為必須要有用戶的授權與同意,讓資料使用、整合與共享形成一道難以跨越的高牆。聯合學習突破「資料共享」與「資料隱私」之間的難題,以「模型共享」方式,在資料不用離開用戶裝置的情況下,進行AI 演算法訓練,如醫療產業、手機上的 Siri/Google Gemini App 等主要應用領域。
聯合式學習的目的,就是希望做到各個參與端的自有的數據不出自己的單位來各自訓練模型,並且通過加密的機制建立一個共有的模型與進行模型的更新,這不僅保護了隱私,還降低大量數據集中傳輸的成本。
聯合學習種類:
- 橫向聯合學習:適用於特徵重疊性高且樣本重疊少時的情境,比如不同地區的醫院,他們的業務相似(特徵相似),但病患不同(樣本不同)。
首先, 每個參與方會得到同樣的模型定義,並且統一模型的初始化參數。
不斷迭代以下步驟訓練模型:
① 每個參與端(企業或設備用戶)利用自己的資料訓練模型,各自計算梯度,再將加密過的梯度修正量上傳至 Server。
② 由 Server 整合各參與端的梯度並且更新模型。
③ Server 回傳模型更新後的梯度給各個參與端。
④ 參與端更新各自的模型。
目前橫向聯盟式學習因為他的架構簡單,因此也被運用的最為廣泛。 - 縱向聯合學習:適用於樣本重疊多且特徵重疊少的情境,而其中某一方還擁有模型需要預測的標籤(label)。比如同一地區的醫院和藥局,他們接觸的病患都為該地區的居民(樣本相同),但業務不同(特徵不同)。
基於隱私權規範與安全考量,不能直接公開交換數據。因此, A與B需要利用加密樣本對齊的技術(Encrypted entity alignment)確認雙方共有的客戶,之後再利用這些數據進行加密訓練。縱向聯盟雖然解決特徵重疊少的問題,但是只要參與端越多流程架構就會越複雜,更難以執行。 - 聯合式遷移學習:當擁有數據者間的特徵和樣本重疊都很少時,則是可以使用聯盟式遷移學習, 這種狀況就不會針對數據進行切割,而會引入遷移式學習(transfer learning)來克服資料與標籤不足的狀況。
Temperature/Top-P/Top-K
- Temperature: 文字生成的隨機性,0.0 ~ 2.0,數值越高,每次回答更隨機,數值低,回答會趨於保守。
- Top-P: 類似 Temperature,但提供更精細的控制,0.0 ~ 1.0,建議與 Temperature 只選擇其中之一,不要同時調整這兩項。
- Top-K: 確保生成的文字更集中、更符合主題,避免出現過於發散或不相關的內容。-100 ~ 100,數值低可避免生成無關的內容,數值高可以提升內容創造性。
交叉驗證 (Cross-Validation)
是一種用於評估機器學習(Machine Learning)模型表現的技術。它的目的是要確保模型的準確度和泛化能力,不是只因為模型對訓練數據(Training Data)過度擬合(Overfitting)而產生的假象。
在機器學習中,交叉驗證的過程如下:
- 將訓練數據分成多個子集(Fold)。
- 選擇一個子集作為測試數據(Test Data),其餘的子集作為訓練數據。
- 訓練模型並評估其表現。
- 將步驟2-3重複多次,每次使用不同的子集作為測試數據。
- 計算模型在所有子集上的平均表現。
假設你有 120 筆樣本,設定 K = 5(5 折):
-
分割
- 把 120 筆平均切成 5 份,每份 24 筆。
- 1: 1‑24,2: 25‑48,3: 49‑72,4: 73‑96,5: 97‑120。
-
迭代
- 第一輪:
- 訓練:第 2‑5 折 (25‑120)
- 測試:第 1 折 (1‑24)
- 第二輪:
- 訓練:第 1、3‑5 折
- 測試:第 2 折
- … 以此類推,直至第 5 折做測試。
- 第一輪:
-
評估
- 每輪得到一個測試評分(如 MSE、Accuracy)。
- 平均所有 5 次評分,得到模型的 CV 分數。
- 可選擇 標準差 來衡量評分穩定性。
交叉驗證的優點包括:
- 避免過度擬合:交叉驗證可以幫助模型避免過度擬合訓練數據。
- 提高泛化能力:交叉驗證可以幫助模型提高泛化能力,讓它能夠更好地應對新的、未見過的數據。
- 提供更準確的評估:交叉驗證可以提供更準確的評估模型的表現。
交叉驗證有多種變體,包括:
- K折交叉驗證(K-Fold Cross-Validation):將數據分成K個子集,每次使用一個子集作為測試數據。
- 留出法交叉驗證(Holdout Method):將數據分成兩個子集,一個作為訓練數據,另一個作為測試數據。