## SCAICT 四月課程第三堂 ### 機器學習理論與實作(二) <br>特徵映射、卷積 --- ## 簽到 ![qrcode_docs.google.com](https://hackmd.io/_uploads/HJQRPNPCa.png) --- ## SVM ---- 以支持向量(Support Vector)找出決策邊界 ![87987987](https://hackmd.io/_uploads/BJGpTZ5gC.png =50%x) ---- 以最小化Geometric Margin為目標 $\gamma^{(i)}=y^{(i)}((\frac{w}{\Vert w \Vert})^Tx^{(i)}+\frac{b}{\Vert w\Vert})=\frac{\hat{\gamma}^{(i)}}{\Vert w\Vert}$ $$\gamma=\min_{i=1,...,n}\gamma^{(i)}$$ --- ### 那現在如果數據是長這樣 就不能線性分割了 ![flow.drawio (3)](https://hackmd.io/_uploads/BJGMrYVZC.png =50%x) ---- 這時我們可以考慮做 ### 特徵映射 ---- 我們先試著構造出一種方法能區別這兩種類別 ![flow.drawio (3)](https://hackmd.io/_uploads/BJGMrYVZC.png =50%x) ---- 例如可以以數據至原點的距離來判定 當數據離原點的距離$<r$就判定為$\Delta$ ![flow.drawio (4)](https://hackmd.io/_uploads/B10ASF4WC.png =50%x) ---- 所以這個函數可以表示為 $h(x)=g(r^2-(x_1^2+x_2^2))$ ---- 從這裡可以看到每一項都帶有係數 $h(x)=g(r^2-(x_1^2+x_2^2))$ ---- 所以又可以表示為 $\begin{aligned}h(x)&=g(\tilde{w_1}z_1+\tilde{w_2}z_2+\tilde{w_3}z_3)\\&=g(\tilde{w}z)\end{aligned}$ ---- 所以在轉換後的坐標系 資料變成線性可分了 ![flow.drawio (5)](https://hackmd.io/_uploads/HJQUdKIb0.png =50%x) ---- 這個過程就被稱作 #### 特徵映射(feature map) ---- 我們可以用$\phi(x)$表示特徵映射 $\begin{aligned}h(x)&=g(\tilde{w_1}+\tilde{w_2}x_1^2+\tilde{w_3}x_2^2)\\&=g(\tilde{w}\phi(x))\end{aligned}$ ---- $\phi(x)可以將特徵映射至任意維$ 即可以$\mathbb{R}^d\mapsto\mathbb{R}^p$ ![1__Uhpj662QpxoIa8qlPYJ9A](https://hackmd.io/_uploads/HyHe4ScZC.png) --- ## 卷積 ---- ### 卷積在機器學習的應用 音頻和語音識別、NLP、醫學影像分析、 自動駕駛、圖像增強 ---- ### 以卷積為核心概念的神經網路 卷積神經網路CNN ![CNN_International_logo.svg](https://hackmd.io/_uploads/S1hqSH5-C.png =30%x) ---- ### 什麼是卷積? ---- ### 卷積是在做函數的疊加 ---- 有一間工廠生產麵包 遵循以下兩條規則 1. $f(x)=$隨時間麵包的產量 2. $g(x)=$隨時間麵包未腐壞率 ---- 那如果想知道在第$t$個時間單位共有多少麵包呢? ---- 我們先想一下 在第0個時間單位生產的麵包數量為 $f(0)g(t)$ ---- 所以在時間為$x$時的麵包有 $f(x)g(t-x)$個 ---- 所以共有 $\sum_{x=0}^tf(x)g(t-x)$個麵包 ---- 或是 $\int_0^t f(x)g(t-x)dx$個麵包 ---- 這就是卷積公式 我們用 $\ast$ 表示卷積運算 $$(f\ast g)(t)=\int_0^t f(\tau)g(t-\tau)d\tau$$ --- 練習:用陣列做卷積 $[1,2,3]\ast[4,5,6]$ ---- 先把其中一個陣列反轉 然後依序移動做對應項的乘積和 ![IMG_0711](https://hackmd.io/_uploads/HkSXL4QPp.jpg =40%x) ---- ![IMG_0711](https://hackmd.io/_uploads/HkSXL4QPp.jpg =40%x) 目前答案: [**1*4**, , , , ] ---- ![IMG_0712](https://hackmd.io/_uploads/SyxnLEmPT.jpg =32%x) 目前答案: [4, **1\*5+2\*4**, , , ] ---- ![IMG_0713](https://hackmd.io/_uploads/Hy1gwNmw6.jpg =25%x) 目前答案: [4, 13, **1\*6+2\*5+3\*4**, , ] ---- ![IMG_0714](https://hackmd.io/_uploads/SyMBPVXDp.jpg =32%x) 目前答案: [4, 13, 28, **2\*6+3\*5**, ] ---- ![IMG_0715](https://hackmd.io/_uploads/ry_wDN7wa.jpg =40%x) 目前答案: [4, 13, 28, 27, **3\*6**] ---- 所以最後得出 $[1,2,3]\ast[4,5,6]=[4, 13, 28, 27, 18]$ --- ![螢幕擷取畫面 2023-12-22 231924](https://hackmd.io/_uploads/HkDGYm7Dp.png =70%x) from 3blue1brown --- ## 圖像卷積 --- ### 圖的數值化 在圖像中會以8個bit儲存顏色資訊 也就是說每個像素可以調整出256種不同的顏色強度 ![234562345](https://hackmd.io/_uploads/BkhnWI9ZA.png =60%x) ---- 彩色圖片則可以分為RGB三個channel 一樣以8bit分別儲存顏色資訊 ![螢幕擷取畫面 2024-04-27 182344](https://hackmd.io/_uploads/BkUIzIc-R.png) ---- 所以一張圖片最後會這樣子表示 ![93419C04-5B40-48CC-8C36-30D19758B0E7_L0_001-2024_4_16 上午10_29_20](https://hackmd.io/_uploads/B1BpGUcW0.jpg) ---- ### 卷積核(Kernel) 因為卷積需要兩個訊號, 所以除了圖片還需要Kernel ![螢幕擷取畫面 2023-12-23 161649](https://hackmd.io/_uploads/rkUPtfED6.png =70%x) ---- ### 圖像卷積方式 將Kernel放上圖片 接著將對應項相乘後求乘積和 再移動Kernel繼續運算 ![螢幕擷取畫面 2023-12-23 161649](https://hackmd.io/_uploads/rkUPtfED6.png =70%x) --- ### Padding 卷積後圖像大小會小一圈 所以我們在卷積前可以將原始圖像加上一圈0 確保在運算後圖像大小會相同 ![螢幕擷取畫面 2023-12-23 104050](https://hackmd.io/_uploads/BJwTup7wT.png =70%x) --- ### 各種Kernel的效果展示 --- ### 補充資料 為什麼卷積叫卷積:https://reurl.cc/GjoQXd 很好的影片:https://youtu.be/KuXjwB4LzSA ---- ## 沒了 ### 作業放在dc --- ## 回饋表單 ![qrcode_docs.google.com (1)](https://hackmd.io/_uploads/Sy98_NwRT.png)
{"title":"四月課程第三堂","contributors":"[{\"id\":\"8270ce89-c16d-4965-af18-50cdee721260\",\"add\":4153,\"del\":400}]"}
    391 views