AI時代系列(3) 機器學習三部曲: 📘 第三部:《強化學習 —— AI 的決策與進化》
86/100 第九週:📌 強化學習應用實戰
86.醫療決策系統 🏥 AI 幫你選擇最佳治療路徑!
_______________________________________
📍 單元導言
醫療決策一直以來都仰賴醫生的經驗與專業判斷,但在大量臨床數據積累與 AI 的發展下,強化學習(Reinforcement Learning, RL)被逐漸應用於疾病診療、藥物選擇、個人化治療等場景。AI 不再只是「參考」,而是能實際學習並提出最佳的治療策略路徑,幫助病人得到更精準與高效的醫療。
________________________________________
🩺 一、醫療決策中的挑戰
問題 說明
決策具有連續性 治療過程可能需要經過數週甚至數月的多次調整
回報具有延遲性 成效常在若干週後才顯現,例如癌症治療反應
每位病患狀況不同 病情、年齡、基因背景差異大,需個人化決策
錯誤代價高 錯誤決策可能影響生命,需風險控制機制
________________________________________
🧠 二、強化學習如何應用於醫療?
元件 說明
狀態 State 病患資料(年齡、體溫、檢驗數值、目前治療反應)
行動 Action 治療決策(給藥/劑量調整/檢查建議/轉院等)
獎勵 Reward 病情改善(正向)、副作用或惡化(負向)
策略 π(a s)
________________________________________
🧪 三、Python 模擬實作:模擬糖尿病治療策略選擇
以下是一個簡化版強化學習環境,用於模擬血糖管理中的每日劑量調整。
________________________________________
📘 問題設定
• 目標:控制病人血糖在健康範圍(80~120 mg/dL)
• 每天可以選擇:降糖劑量(小、中、大)或暫停
• 血糖受治療劑量與波動影響
________________________________________
🧾 程式碼實作
python
import random
actions = ['none', 'low', 'medium', 'high'] # 對應劑量
q_table = {} # 初始化 Q 表
alpha = 0.1
gamma = 0.9
epsilon = 0.2
def get_reward(glucose):
if 80 <= glucose <= 120:
return 10
elif 60 <= glucose < 80 or 120 < glucose <= 140:
return -2
else:
return -10
def update_glucose(glucose, action):
effect = {
'none': random.randint(-5, 5),
'low': random.randint(-10, -2),
'medium': random.randint(-20, -5),
'high': random.randint(-35, -10)
}
return max(40, min(200, glucose + effect[action]))
# 建立 Q 表
for glucose in range(40, 201):
q_table[glucose] = {a: 0 for a in actions}
# 訓練
for episode in range(5000):
glucose = random.randint(100, 160)
for _ in range(30): # 30 天療程
if random.random() < epsilon:
action = random.choice(actions)
else:
action = max(q_table[glucose], key=q_table[glucose].get)
next_glucose = update_glucose(glucose, action)
reward = get_reward(next_glucose)
old_q = q_table[glucose][action]
next_max = max(q_table[next_glucose].values())
q_table[glucose][action] = old_q + alpha * (reward + gamma * next_max - old_q)
glucose = next_glucose
這段程式碼模擬血糖控制情境,利用 Q-Learning 訓練 AI 學會在不同血糖數值下,自主決定藥物劑量(none、low、medium、high),讓血糖穩定落在健康區間。藉由隨機模擬藥效變化與獎勵設計,引導模型學習在短期控制效果與長期穩定之間取得平衡。經過多次訓練,AI 能逐漸形成最佳控糖決策策略,展現強化學習在智慧醫療決策輔助的應用潛力。
________________________________________
🔍 測試:觀察 RL 學到的行為
python
glucose = 150
print("初始血糖:", glucose)
for day in range(15):
action = max(q_table[glucose], key=q_table[glucose].get)
glucose = update_glucose(glucose, action)
print(f"第 {day+1} 天:執行 {action},目前血糖 {glucose}")
這段程式碼用來測試訓練後的血糖控制策略。
從血糖值 150 開始,連續模擬 15 天的治療過程。每天根據 Q 表中學到的最佳行動選擇適合的劑量(none、low、medium、high),並更新血糖值。每一步都輸出執行的動作與新的血糖狀態,觀察整個控糖過程是否能有效將血糖穩定調整到理想範圍內。這是強化學習訓練後的重要驗證步驟。
________________________________________
🧪 四、真實案例應用
領域 RL 應用內容
ICU 加護 根據病人生理數據,自動調整升壓劑與鎮靜劑使用量
癌症治療 根據腫瘤變化與副作用狀況,決定化療時間與劑量
糖尿病照護 長期血糖控制策略學習與個人化飲食管理建議
精神科用藥 根據反應與副作用,逐步調整抗憂鬱/抗精神病藥物
________________________________________
📚 小測驗
1️⃣ RL 在醫療治療策略中最重要的特性是?
A. 高頻交易能力
✅ B. 能處理長期延遲回報與個人化反應
C. 建立大型圖片分類模型
D. 提高 GPU 使用率
解析:
醫療治療通常效果是累積性的,當前治療決策往往需等數日甚至數月後才觀察到最終效果。強化學習具備處理延遲回報 (Delayed Reward) 的能力,能根據長期整體療效優化治療方案,同時可結合個人病歷學習出個人化治療反應模式。
A 屬於金融領域,C、D 與醫療決策無直接關聯。
________________________________________
2️⃣ 若想強化 AI 模型對過去病人反應的記憶能力,應該使用?
A. KNN
B. CNN
✅ C. RNN 或 LSTM
D. GAN
解析:
病患治療過程中,過去幾天的藥物反應與狀態變化對未來治療決策影響很大。RNN (循環神經網路) 與 LSTM (長短期記憶網路) 能有效捕捉時間序列中長期依賴關係,非常適合處理病人治療歷史。
A (KNN) 是靜態分類模型,B (CNN) 主要用於影像處理,D (GAN) 用於資料生成,皆不適合此類時序學習需求。
🧩 思考挑戰與反思任務
1️⃣ 為什麼強化學習在醫療應用中必須特別小心風險控制?
👉 醫療決策的錯誤代價極高,任何錯誤試驗都可能導致病患病情惡化或產生嚴重副作用。與遊戲、工業不同,醫療領域不能盲目探索,必須設計「安全探索策略」與「離線訓練」來降低臨床風險,並結合醫師監督與審核機制。
2️⃣ 在醫療強化學習系統中,個人化治療為什麼很關鍵?
👉 每位病患在年齡、基因、代謝、合併症等方面存在巨大差異。相同藥物在不同病患身上的反應也不同。若 RL 模型無法捕捉個人差異,容易導致過度一般化的治療計畫。透過個人化學習,AI 可以針對病人專屬特徵優化治療策略,提高治療效果與安全性。
3️⃣ 你認為未來哪些技術可以進一步提升強化學習在醫療決策的穩定性?
👉 可引入模型驗證機制(如模擬環境先行訓練)、因果推論方法協助識別影響因子、可解釋性 AI 幫助醫師理解模型決策邏輯,並整合多模態資料(影像、基因、時序記錄)提升整體判斷力,讓 AI 模型更穩定、安全地輔助臨床決策。
________________________________________
✨ 單元金句
「強化學習不只在玩遊戲,它正在學會幫人活得更久、活得更好。」
________________________________________
🩺 延伸挑戰任務
• 加入「副作用風險」變數,結合多目標獎勵設計
• 擴展為「多病人學習」(Multi-Agent 或 Batch RL)
• 探索真實開放資料集(如 MIMIC-III)模擬醫療環境









