iT邦幫忙

2024 iThome 鐵人賽

DAY 14
0
AI/ ML & Data

Let's Go To The AI Party!系列 第 15

Day14-半監督式學習

  • 分享至 

  • xImage
  •  

半監督式學習(Semi-supervised learning)

是一種機器學習方法,介於 監督式學習(Supervised learning)非監督式學習(Unsupervised learning) 之間。在監督式學習中,所有訓練資料都已標記有正確的答案。在非監督式學習中,所有訓練資料都沒有標記。在半監督式學習中,部分訓練資料已標記,部分訓練資料沒有標記
https://ithelp.ithome.com.tw/upload/images/20240814/20163257iXm4AfGccE.png
圖片來源:AGentle Introduction to Semi Supervised Learning

學習方法

  • 自訓練 (Self-training)
    • 利用現有標籤數據訓練一個初始模型
    • 使用模型對未標籤數據進行預測,並將置信度高預測結果作為新標籤數據
    • 用新標籤數據重新訓練模型,重複上述過程
  • 生成模型 (Generative Models)
    • 學習數據的生成過程,並利用生成模型對未標籤數據進行標註
    • 例如:生成對抗網路 (GAN) 可以生成新數據樣本,從而擴大訓練數據集
  • 半監督支持向量機 (Semi-Supervised Support Vector Machine)
    • 將未標籤數據引入到支持向量機決策邊界約束中
    • 使決策邊界盡可能地通過數據點低密度區域
  • 共訓練(Co-training)
    • 訓練兩個分類器,使用不同的特徵集來對資料進行分類
    • 每個分類器都將其預測置信度較高未標記資料作為新的標記資料,並提供給另一個分類器進行訓練
  • 期望最大化(Expectation-maximization,EM)

半監督式學習應用

  • 圖像識別:使用未標記圖像來提高圖像識別準確率
  • 自然語言處理:使用未標記文本來提高機器翻譯和文本分類準確率
  • 語音識別:使用未標記語音來提高語音識別準確率
    https://ithelp.ithome.com.tw/upload/images/20240814/20163257rQgnE64ytX.png
    圖片來源:AGentle Introduction to Semi Supervised Learning

半監督式優缺點

  • 利用大量未標記資料來提高學習效率
  • 減少標記資料的獲取成本
  • 對未標記資料的質量敏感
  • 容易陷入局部最優

公式範例自訓練

假設有一個分類問題,使用softmax函數作為分類器

初始模型

p(y|x; θ) = softmax(θ^T x)

θ 模型參數
x 輸入樣本
y 預測類別

自訓練過程

  1. 使用已標籤數據訓練θ
  2. 對未標籤數據x_u,計算p(y|x_u; θ)
  3. 選取置信度最高的預測結果y_u作為新的標籤
  4. 將(x_u, y_u)加入到訓練數據中,重新訓練θ

程式碼(Python-Scikit-learn)

from sklearn.semi_supervised import LabelPropagation
import numpy as np

# 生成隨機數據
X = np.random.rand(100, 2)
y = np.array([0, 0, 1, 1, -1, -1, -1, -1, -1, -1])  # -1表示未標籤數據

# 創建LabelPropagation模型
label_prop_model = LabelPropagation()

# 訓練模型
label_prop_model.fit(X, y)

# 預測所有數據點的標籤
y_pred = label_prop_model.predict(X)

半監督式學習是一種具有廣泛潛力的機器學習方法。隨著研究的深入,半監督式學習理論和方法將會得到進一步的發展,並在更多的領域得到應用


上一篇
Day13-監督式學習
下一篇
Day15-非監督式學習
系列文
Let's Go To The AI Party!31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言