講師:4yü
講師:4yü
講師:4yü
講師:4yü
GDG@NCU Coreteam 25-26 技術組
SCIST 南臺灣學生資訊社群 S5 總召
SITCON 學生計算機年會 2026 行銷組
NFIRC 社團創辦人 & 社長 & 講師
南 9 校資訊社 x SCIST x 成大資工
2024 聯合寒訓 【資得其樂】副召
APCS 5+5, CPE Expert (6/7, PR99)
高中學科能力競賽 112 & 113 學年複賽佳作
AIS3 Junior 2024 最佳專題獎
南四校聯合社課 AI 講師
北四校聯合工作坊 AI 講師
FunAI 2025 RL 競賽 rk.3
陽明交大中學人才培育計畫 AI 課程結訓
Instagram > 4yu.dev.318
個人網站 > https://4yu.dev/
資工一A
AI 發展簡史
Explainable AI
發燒 + 鼻塞 = 感冒
發燒 + 咳嗽 + 肌肉酸痛 = 流感
上腹部痛 + 進食後舒緩 = 胃潰瘍
上腹部痛 + 進食後加重 + 噁心 = 胃炎
頻尿 + 多飲 + 體重減輕 = 糖尿病
大小
顏色
味道
數量
...
loss
sum(loss) = cost
局部最小值
(Local Minima)
全局最小值
(Global Minima)
(Hyperparameter)
容易震盪
無法收斂
下降速度較慢
容易陷入 Local minima
| 訓練方法 | 英文 | 有無標籤 | 目的 | 應用 |
|---|---|---|---|---|
| 監督式學習 | Supervised Learning | 有 | 學習資料與標籤之間的關係 | 線性回歸問題 |
| 無監督式學習 | Unsupervised Learning | 無 | 學習資料之間的隱藏結構 | 分類分群問題 |
| 半監督式學習 | Semi-supervised Learning | 部分有 | 在有限標籤數據下學習 | 泛化能力 |
| 自監督式學習 | Self-supervised Learning | 標籤由輸入生成 | 學習資料內在的結構或特徵 | 自然語言處理 |
| 強化學習 | Reinforcement Learning | 有 | 透過環境互動與回饋強化自身 | 增強能力 |
多數時候選擇模型時就有搭配的訓練方法了
均方誤差 (MSE):真實資料與預測資料相減後的平方
均方根誤差 (RMSE):是 MSE 的平方根,常用於迴歸問題
平均絕對值誤差 (MAE):真實資料與預測資料的絕對值
交叉熵 (Cross-entropy):透過機率分佈處理分類問題
梯度下降演算法 (Gradient Descent, GD)
模擬退火演算法 (Simulated Annealing, SA)
遺傳演算法 (Genetic Algorithm, GA)
粒子群演算法 (Particle Swarm Optimization, PSO)
import pandas as pd
# 抓取 csv 檔
url = "https://raw.githubusercontent.com/ShiYu0318/SCIST_2025_WC_AI/main/study_hours_scores.csv"
# 存進 data
data = pd.read_csv(url)
# 將兩欄資料分開
x = data["Study_Hours"]
y = data["Scores"]
# 顯示 data
dataimport matplotlib.pyplot as plt
from ipywidgets import interact
def plot_pred(w, b):
# 初始化預測線權重
y_pred = x*w + b
# 畫資料點分布
plt.scatter(x, y, color="blue", label="data")
# 畫線
plt.plot(x, y_pred, color="red", label="predict")
# 軸名稱
plt.xlabel("Study Hours")
plt.ylabel("Scores")
# 範圍限制
plt.xlim([0, 12])
plt.ylim([0, 100])
# 顯示圖例
plt.legend()
# 顯示圖表
plt.show()
# 使用互動元件動態調整並顯示
interact(plot_pred, w=(-100, 100, 1), b=(-100, 100, 1)) # (min,max,space)# w=-100~100 b=-100~100 的 cost
import numpy as np
def compute_cost(x, y, w, b):
y_pred = w*x + b
loss = (y - y_pred)**2
cost = loss.sum() / len(x)
return cost
ws = np.arange(-100, 101)
bs = np.arange(-100, 101)
costs = np.zeros((201, 201))
i = 0
for w in ws:
j = 0
for b in bs:
cost = compute_cost(x, y, w, b)
costs[i,j] = cost
j = j+1
i = i+1
costs3. 用暴力窮舉法找出 w= -100 ~ 100、b= -100 ~ 100 所有可能的權重組合 對每一種組合都計算 cost
from ipywidgets import interact
# 畫出所有 cost 並尋找最低點
def plot_3d(elev,azim):
# 圖片尺寸
plt.figure(figsize=(10, 10))
# 創建 3D 圖
ax = plt.axes(projection="3d")
# 旋轉角度
ax.view_init(elev, azim)
# 矩陣轉二維網格
b_grid, w_grid = np.meshgrid(bs, ws)
# 繪製三維表面,cmp 顏色、alpha 透明度
ax.plot_surface(w_grid, b_grid, costs, cmap="Spectral_r", alpha=0.7)
# 繪製邊框
ax.plot_wireframe(w_grid, b_grid, costs, color="black", alpha=0.1)
# 軸標題
ax.set_xlabel("w")
ax.set_ylabel("b")
ax.set_zlabel("cost")
# 回傳最低 cost 的 index
w_index, b_index = np.where(costs == np.min(costs))
# 畫出最低點 (x,y,z,color,size)
ax.scatter(ws[w_index], bs[b_index], costs[w_index, b_index], color="red", s=60)
plt.show()
print(f"當w={ws[w_index]}, b={bs[b_index]} 會有最小cost:{costs[w_index, b_index]}")
interact(plot_3d, elev=(0, 90, 1), azim=(0, 360, 1))4. 將結果畫成三維立體圖並標示出最低點
5. 梯度下降演算法 最小化損失函數
y_pred
Loss
Cost
a. 計算成本函數
b. 計算梯度:分別對 w、b 求導
c. 更新參數:學習率 * 梯度
目前只實作了這個而已
訓練收斂後可直接對 state 查表選擇最佳 action
st:當前狀態
ata_tat:採取的動作
rt+1r_{t+1}rt+1:即時回報(reward)
st+1s_{t+1}st+1:下一個狀態
α\alphaα:學習率,控制更新幅度
γ\gammaγ:折扣因子,控制未來回報的重要性maxa′Q(st+1,a′)\max_{a'} Q(s_{t+1}, a'
= 用神經網路來近似 Q 函數
Actor 策略網路:決定動作
Critic 價值網路:評估當前動作的好壞
卷積核 (kernel)
保留長期記憶,避免梯度消失
Multi-Head Attention
Masked Self-Attention
Generative Pre-trained Transformer
(Bidirectional Encoder Representations from Transformers)
“我是一名智力低下的大学生,我想学习一下这篇论文,
请用傻子都能懂的语言详细给我讲一下这篇文章怎么做的
,特别是模型和实证方面”
Artificial General Intelligence
通用人工智慧
人工智慧的終極目標
QML、QNN、QRL
變分量子算法 (VQA)
量子退火 (Quantum Annealing)
誰叫他上課一直提到我的名字
Thanks for your attention