# 章節包:自然語言處理(NLP)W4(10/1)第 05 章「神經網路訓練基礎」
影片 1:03:02–1:19:35,YouTube ID 7kgOuhuIjvY,逐字稿 C:\D槽\TAICA課程\自然語言處理\第四周1151001\W4_自然語言處理_高宏宇.逐字稿.txt。Notion 章節頁 https://app.notion.com/p/3ecfc631b0308157b691e69c735de4b4(頁 ID 3ecfc631b0308157b691e69c735de4b4),頁面標題「05 神經網路訓練基礎(1:03–1:19)」。
## 1. 第一行(直接照抄,不要改)
[自然語言處理](https://app.notion.com/p/3e6fc631b03081b4a9e8f91f3411f61f) › [W4(10/1)](https://app.notion.com/p/3ecfc631b03081b8aa2cf4a97467ed41) › 05|影片 [1:03:02–1:19:35](https://www.youtube.com/watch?v=7kgOuhuIjvY&t=3782s)|投影片 W2_Word p.43–47|上一章 [04 上下文相關的詞向量(0:49–1:03)](https://app.notion.com/p/3ecfc631b030814cb876f1cf87428b37)|下一章 [06 PyTorch:訓練主循環與 Tensor(0:00–0:25)](https://app.notion.com/p/3ecfc631b03081579f0eeb810083a514)
## 1b. 最後一行(直接照抄,放在 Self-check 後面,當全頁最後一行)
讀完了嗎?下一章:[06 PyTorch:訓練主循環與 Tensor(0:00–0:25)](https://app.notion.com/p/3ecfc631b03081579f0eeb810083a514)|回到週頁:[W4(10/1)](https://app.notion.com/p/3ecfc631b03081b8aa2cf4a97467ed41)
## 2. 各段標題(照順序;每段一個 ## 標題,直接照抄連結)
- `## [1:03:02](https://www.youtube.com/watch?v=7kgOuhuIjvY&t=3782s) NN 為什麼快速帶過` 老師講什麼:這部分和第一堂 lab(裝 PyTorch、訓練簡單的 NN)有關,原本是機器學習課的內容,所以快速帶過;現在的深度學習幾乎都建立在 NN 上,很少再用 SVM、決策樹。
- `## [1:04:20](https://www.youtube.com/watch?v=7kgOuhuIjvY&t=3860s) Model、Optimizer、Loss function` 老師講什麼:Model 用權重把輸入和輸出串起來;loss function 量你離目標還有多遠,optimizer 決定參數下一步怎麼改。做研究常會改 loss,很少動 optimizer。
- `## [1:05:53](https://www.youtube.com/watch?v=7kgOuhuIjvY&t=3953s) 訓練流程與 Adam` 老師講什麼:流程是準備資料、建模型、選 loss(常用 cross-entropy)、選 optimizer、訓練、評估。框架從 TensorFlow 轉向 PyTorch;Adam 會動態調整 momentum。老師還講了審稿人問「Who is Adam」的笑話。
- `## [1:08:44](https://www.youtube.com/watch?v=7kgOuhuIjvY&t=4124s) 宣布下課、改看 lab` 老師講什麼:作業一的程式碼大多是現成的,要自己改的不多;接下來的一個半小時回去看 lab 錄影,有問題在 Slido 問助教。
- `## [1:09:02](https://www.youtube.com/watch?v=7kgOuhuIjvY&t=4142s) Activation function:非線性` 老師講什麼:activation function 讓 NN 能做非線性映射,處理不是「一刀切開」就能分開的資料,這是 NN 走進實用年代的關鍵。常見的有 sigmoid、ReLU、tanh、GELU。
- `## [1:10:10](https://www.youtube.com/watch?v=7kgOuhuIjvY&t=4210s) Sigmoid、ReLU 與硬體加速` 老師講什麼:sigmoid 輸出 0 到 1,只在 0 附近敏感;ReLU 把小於 0 的都變成 0。靈感來自神經元的離子濃度觸發。GELU 這類是 ReLU 的平滑可微版本;做硬體加速時,會改用好用電路做出來的近似函式。
- `## [1:13:47](https://www.youtube.com/watch?v=7kgOuhuIjvY&t=4427s) 收尾:PyTorch tutorial` 老師講什麼:PyTorch tutorial 從安裝開始帶 NN 程式碼,有部分講 TensorFlow;已經有基礎的人挑自己需要的部分看就好。
- `## [1:14:39](https://www.youtube.com/watch?v=7kgOuhuIjvY&t=4479s) Slido 問答` 老師講什麼:作業用個人 Colab 額度就跑得完;後加選的人 NTU COOL 名單匯入比較慢;PPMI 的 context 可以依應用自己設計,在 word2vec 裡就是 window size;feature selection 在 embedding 裡由模型自己學;lab 不算分;lab 和語料在 NTU COOL 和 GitHub 上。
## 3. 老師強調/會考/不考的地方(原句已驗證;寫進筆記時 ASR 錯字要改正)
- (1:09:02) [強調] 「其實activation function的概念其實非常重要」 → activation function 帶來非線性,是 NN 能處理非線性問題的關鍵
## 3b. 數學段候選(程式抓的,只是提示;寫「跳過提示」行用)
0 段候選(門檻 3.0 字/30 秒)
## 4. 這章摘要與重要度
快速帶過深度學習的三個元件、訓練流程和 activation function,最後回答 Slido 上的作業和 lab 問題。(一般)
## 5. 整堂課的提醒(ASR 錯字、老師口誤、投影片缺公式等;只用跟這章有關的)
- 這支只有約 1 小時 20 分(老師 1:18:56 下課),下半場改看助教預錄的 PyTorch 教學影片(約一個半小時),筆記在第 06–09 章,章名前面有「PyTorch:」,影片時間是那支影片自己的時間。
- PyTorch 教學是 2024 年錄的舊影片,片中提到的作業說法(例如建議用 teacher forcing、之後要用 Hugging Face)不代表今年,今年作業以今年公告為準。
- 課表寫的是「Text Classification, NB, NN」,但實際上還在講 W2_Word 投影片(p.17–47)的語言模型和詞向量;Naive Bayes 只在 0:55:59 拿來對比「統計」和「模型學習」。
- 開頭 0:00:27–0:02:24 有網路和回音問題,0:03:55–0:04:32 在調整直播畫面,內容沒有缺。
- 逐字稿有語音辨識重複行(0:27:41–0:29:20 幾乎每句重複兩次、0:39:37 一句重複四次),不影響理解。
- 全片沒有下課休息,一路講完(0:00:01–1:26:08)。
- 逐字稿 0:01:32–0:01:53 有語音辨識重複句與亂碼(同一句重複五次、CUDA 版本被辨識成 ientes/analytical sci-fi/evangelical sci-fi),內容只是「別直接 pip install,到官網選版本」。
- 0:35:46 老師說「這是新的嗎」,接著改用口述講 Google Bomb。p.31 的文字檔裡已經有「Google Bomb/Data Poisoning」,可能是 10/1 更新版才加的,直播畫面也許還是舊版。不確定。
- p.33–38 的 word2vec 細節,老師是用回顧的方式講的,沒有逐頁翻:p.34 共現矩陣、p.38 SGD 那頁沒有明確講到;0:47:21 的 A、B、C softmax 計算例子,對應的是 p.35 還是 p.36(只有圖),不確定。
- 老師好幾次把模型輸出的「機率」說成 perplexity(例如 0:45:48、0:48:31),應該是口誤,寫筆記時要寫成 probability,不要寫成困惑度。
- 老師 1:08:44 已經宣布下課,接著又講了約 5 分鐘 activation function(p.46–47),1:13:47 才真正收尾,所以第 05 章沒有在 1:08:44 切開。1:13:27 說的「這一段的敘述」應該是指 p.47 的 softmax、sigmoid、tanh、ReLU 表格,只用一句帶過。p.48(In text viewpoint)沒講,下週應該從 p.48 開始。
- 第 04 章長約 13.5 分鐘,比建議的 15 分鐘短一點;它講 contextual embedding,跟第 05 章的 NN 基礎主題不同,所以沒有合併。
- [PyTorch 影片,第 06–09 章] 投影片 p.7 寫模型是 y = ax²+b,助教口頭說成「y等於ax加b」(0:04:08);投影片寫「four data points」但只列三個點 (-1,1)、(1,2)、(2,3),助教口頭念的點也對不上(0:04:36 說 -1 對 1、-1 對 2、-2 對 3)。寫筆記以投影片的 y = ax²+b 和三個點為準。
- [PyTorch 影片,第 06–09 章] 逐字稿有大量語音辨識錯字,寫手要自己還原:T度=梯度、correct function=collate function、translation=truncation、badge size=batch size、relude/Renew=ReLU、MN backward=MmBackward、nodegrade=no_grad、width.backward=with torch.no_grad()、nonpy=NumPy、viewed=view、birth=BERT、復迴圈=for 迴圈、增刮號=中括號、高雄宇=高宏宇;0:23:00 的「3e」應是 stride (3, 1)、0:22:02 的「13」是 (1, 3)。
- [PyTorch 影片,第 06–09 章] 助教把 BERT 稱為「auto encoder」(1:21:5x 起),對應投影片 p.60–61 的「Transformer Auto-encoder」,指的是編碼器式 Transformer,不是一般說的自編碼器;寫筆記時要說清楚,避免混淆。
- [PyTorch 影片,第 06–09 章] 第 2 章只有約 14 分鐘,略低於 15 分鐘下限;因為「模組」是獨立概念,而第 3 章(自動微分+訓練迴圈)已約 25 分鐘,沒有再合併。若主 session 想更細,第 3 章可在 0:51:20 切成「自動微分」與「損失函數、優化器與線性迴歸」兩章(各約 11、13.5 分鐘)。
- [PyTorch 影片,第 06–09 章] 投影片檔放在 2026 資料夾,影片是 2024 年錄的;對照下來頁序與講解內容一致(p.62 是結尾的笑話頁,沒有內容),但不確定 2026 版投影片是否和 2024 錄影時的版本完全相同。
- [PyTorch 影片,第 06–09 章] emphasis 只放了助教明講作業相關或重複強調的地方;另外兩處助教有說「注意」或「建議」但跟作業無關,沒列進去:0:53:00「不要用訓練的資料來測試」、0:24:47「儘量用矩陣運算的方式來運算」(兩句都已過 quote_check)。
- [寫手注意,第 06–09 章] 這四章是助教的程式教學,但主理人不看程式碼、考試不考寫程式:預設看得到的內容寫「這個元件在做什麼、為什麼需要它」+生活比喻(例:optimizer 像導航決定下一步往哪走);程式碼最多一小段,放進「(進階,可跳過)」摺疊。Exam-ready 只放投影片上的英文概念句(例如 tensor、autograd、loss、optimizer 的說明),不放程式碼行;投影片沒有完整英文句時用短的英文定義並標 (my wording)。Self-check 問「為什麼/比較」,不問語法。助教不是老師,不標【老師強調】,要標就寫【助教強調】+時間。
## 6. 投影片文字(這章範圍)
**這幾頁的公式或內容只在圖裡(文字檔抓不到),寫 Exam-ready 與公式前先用 Read 看這幾張圖:**
- W2_Word p.44 → C:\D槽\TAICA課程\_work\notes-v2\nlp-w4\img\brief_W2_Word_p044.png
- W2_Word p.45 → C:\D槽\TAICA課程\_work\notes-v2\nlp-w4\img\brief_W2_Word_p045.png
- W2_Word p.46 → C:\D槽\TAICA課程\_work\notes-v2\nlp-w4\img\brief_W2_Word_p046.png
- W2_Word p.47 → C:\D槽\TAICA課程\_work\notes-v2\nlp-w4\img\brief_W2_Word_p047.png
--- W2_Word p.43 ---
Neural Language Models
A model structure is needed to process the hidden feature in the embeddings.
Neural LMs leverage neural networks to learn and represent complex language
patterns.
Basic Definitions
◦FFN (Feedforward network)
◦RNN (Recurrent Neural Network)
44
Word Embeddings and Language Modeling
--- W2_Word p.44 ---
Basic Definitions
45
➢In a deep learning project, there are some fundamental
components.
1. Model
▪
A model refers to the architecture or structure used to represent
relationships between input data and output predictions.
2. Optimizer
▪
An optimizer is an algorithm used to adjust the parameters of the model
during training in order to minimize the error between predicted and
actual output values.
3. Loss function
▪
A loss function (objective function) measures the difference between the
predicted output of a model and the true target output.
Word Embeddings and Language Modeling
--- W2_Word p.45 ---
Training Neural Networks
46
The training process typically involves the following steps:
1. Data Preparation: Prepare training and testing datasets.
2. Model Construction: Construct the model using a deep learning framework
(TensorFlow, PyTorch, ...)
3. Loss Function Definition: Select an appropriate loss function. (Cross-entropy,
Logloss, ...)
4. Optimizer Selection: Choose a suitable optimization algorithm. (Adam, SGD, ...)
◦
Adam: Adaptive Moment Estimation
5. Model Training: Train the model using the training dataset.
6. Model Evaluation: Evaluate the trained model using the testing dataset. (F1, LCS,
...)
Word Embeddings and Language Modeling
--- W2_Word p.46 ---
Activation functions
47
➢The core idea of using activation functions is to
introduce nonlinearity into neural networks.
➢Neural network models aim to avoid the final
processing stage being merely a linear
transformation of the inputs, so that the model is
able to have good performance on complex
problems.
➢Commonly used activation functions include:
Sigmoid, ReLU, tanh, GeLU...
Word Embeddings and Language Modeling
--- W2_Word p.47 ---
Activation functions
48
Range
Applications
softmax
[0, 1]
(sum up to 1)
It is commonly used in multi-class classification tasks where
the model needs to predict the probability distribution
over classes.
sigmoid
[0, 1]
It often used in binary classification tasks where a threshold
is needed to predict probabilities of belonging to one of the
two classes.
tanh
[-1, 1]
It is often preferred over sigmoid for hidden layers as it
produces zero-centered output
ReLU
[0, +inf]
It introduce nonlinearity and avoid gradient vanishing
Word Embeddings and Language Modeling
## 7. 逐字稿(1:03:02 前後各多 1 分鐘,原始行)
[01:02:03] 有性別歧視的這件事情
[01:02:05] 當然所有的參賽隊伍
[01:02:07] 都是用BERT來做這件事情
[01:02:09] 只要我們也是用BERT
[01:02:12] 但是我們是Foreign
[01:02:14] 我們就BERT都不動這樣子
[01:02:16] 然後那時候其實我們數據還不錯
[01:02:19] 我們還拿到第二名
[01:02:20] 然後那時候去Post的時候
[01:02:23] 其他隊伍就也很好奇我們的做法這樣子
[01:02:27] 但是他們最好奇的是
[01:02:29] 你們為什麼要Foreign BERT這樣子
[01:02:32] 我們只能說
[01:02:34] 我們圈不太動這樣子
[01:02:36] 對他們來講他們就很不可思議
[01:02:39] BERT你們沒辦法Tune他這樣子
[01:02:42] 當然這個就跟
[01:02:44] 那個國家的算力有點關係
[01:02:46] 應該說我個人的算力不足
[01:02:49] 不過Anyway其實Foreign也有Foreign的做法
[01:02:53] 那重點是有時候你Train Together也會比較好
[01:02:56] 你只會把他搞爛而已
[01:02:58] 這樣子所以也是要評估一下
[01:03:02] 好那這邊後面會提到NN的東西
[01:03:08] 那這個可能會跟著第一堂的Lab課有點關係
[01:03:13] 第一堂Lab課其實就是教你怎麼裝PyTorch
[01:03:18] 然後怎麼去做一個很簡單的NN的訓練
[01:03:21] 所以我們這邊的課程還是有帶一些NN的東西
[01:03:24] 不過這基本上應該是在
[01:03:26] 機器學習的課程會提到
[01:03:28] 那這個我在這邊就很快的帶過了
[01:03:34] 那因為一般的NN的架構
[01:03:36] 或者是說現在機器學習
[01:03:38] 或者是所謂的Deep Learning
[01:03:40] 其實都是Based on這個NN的一個
[01:03:43] 這樣的一個Architecture在做
[01:03:46] 其實幾乎沒有別的選擇
[01:03:49] 幾乎沒有別的選擇
[01:03:51] 只是說這個Architecture的不同
[01:03:53] 或是說是不是你現在是不是要
[01:03:56] Transformer或不是Transformer這樣
[01:03:58] 那基本上還是NN
[01:04:00] 你現在已經沒有別種的Training的方式
[01:04:03] 沒有Training的這種Model
[01:04:07] 不同的Model在做這件事情
[01:04:10] 我所謂的Model是說
[01:04:12] 你不太會用以前的所謂
[01:04:14] 像什麼SVN啊
[01:04:16] Dishon Tree啊
[01:04:18] 去做這樣的事情
[01:04:20] 那一個這樣的學習的Deep Learning的Project
[01:04:25] 或是一個Model
[01:04:26] 它其實大概包含的
[01:04:27] 本身的模型的部分
[01:04:29] 那這個模型其實
[01:04:31] 如果你有經驗大概知道
[01:04:32] 它就是把Input跟Output之間的關聯
[01:04:35] 靠著一些Weight的方式把它串接起來
[01:04:38] 那這東西當然裡面有所謂的
[01:04:41] 這個所謂的Optimizer跟Loss Function
[01:04:44] 這兩個東西其實
[01:04:49] 你應該能夠區分
[01:04:50] 如果你學過機器學習
[01:04:53] 應該知道說Loss Function是用來度量說
[01:04:56] 你現在距離目標還有多遠
[01:05:00] 就告訴你說
[01:05:01] 我現在還有十門課還沒有讀
[01:05:04] 那怎麼樣去達到這個目標
[01:05:06] 怎麼樣把這十門課讀得更好
[01:05:08] 就是你的Optimizer在做的事情
[01:05:10] 就是該怎麼走
[01:05:12] 接下來該怎麼走
[01:05:13] 一個是度量你現在還差多遠
[01:05:15] 另外一個是告訴你
[01:05:17] 接下來你的參數要怎麼改變
[01:05:19] 做這件事情
[01:05:21] 當然這些都是有標準的
[01:05:23] 或是常用的
[01:05:24] 或是什麼應用
[01:05:25] 會用什麼Optimizer
[01:05:27] 用什麼Loss Function在做
[01:05:29] OK
[01:05:30] 那通常你在設計的時候
[01:05:33] 這個架構你可能會改變
[01:05:36] 那你會自己設計你自己的Loss Function
[01:05:39] 如果你是要做一些比較小型的Deep Learning的研究
[01:05:44] 大概會這樣
[01:05:45] Optimizer比較少
[01:05:46] 除非你想做Optimizer的研究了
[01:05:50] 這邊通常變動性不會很高
[01:05:52] 這樣子
[01:05:53] 好
[01:05:54] 那這個大概是一個
[01:05:56] 有點像比較
[01:05:58] 接陳一點
[01:05:59] 細一點的
[01:06:00] 就是你在Train一個NNN的時候的一個比較細部的過程
[01:06:04] 就是準備資料建構你的Model
[01:06:07] 其實當初Deep Learning出來之後
[01:06:10] 有TensorFlow其實蠻紅的
[01:06:12] 因為它比較好入手
[01:06:14] 但是後來它包裝的太多
[01:06:16] 其實不太容易改太多的東西
[01:06:19] 所以現在多半都以PyTorch為主
[01:06:22] 那怎麼計算這整個NNN呢
[01:06:24] 我們的Loss Function其實有很多種
[01:06:26] 比較常用的Close Entropy在做
[01:06:29] 那Optimizer其實也有一些標準的
[01:06:31] 基本上都是算一些Momentum
[01:06:33] 算一些你跟目標距離的差距
[01:06:37] 你要怎麼改變
[01:06:38] 你這次要跨大步一點跨小步一點
[01:06:41] 或是你要怎麼跳
[01:06:43] 這樣子就是Optimizer
[01:06:45] 比較有名的像Aden或是什麼
[01:06:48] 這個就是比較動態去調整這個Momentum的
[01:06:52] 的誤刷
[01:06:54] 這時候我該緩慢
[01:06:56] 這時候我該快一點
[01:06:58] 這樣子
[01:07:00] 那Aden是一個很常用的名字
[01:07:03] 那每次講到這個我都要講這個笑話
[01:07:07] 對
[01:07:08] 這是一個事實
[01:07:10] 真實發生的事情
[01:07:11] 是國內一個老師他的論文
[01:07:13] 他在論文寫說
[01:07:15] 在模型怎樣怎樣
[01:07:17] 然後他的Optimizer是
[01:07:19] 他是說用Aden來說是
[01:07:21] 就是說用Aden來做了
[01:07:23] 當然是英文是英文
[01:07:25] 那因為這Aden看起來
[01:07:28] 他寫的就是It's done by Aden
[01:07:30] 這樣子
[01:07:32] 那他拿到那個Reviewer的意見
[01:07:35] 那個Reviewer就問他說
[01:07:39] 我們不知道Aden是誰
[01:07:41] Aden到底是誰
[01:07:42] 為什麼你在論文中去說這個東西是誰做的
[01:07:45] 這樣子
[01:07:46] 那就看到就傻眼
[01:07:48] 就說這個等到這個Reviewer不知道Aden是什麼
[01:07:51] 所以這個也凸顯出
[01:07:54] 現在頂潰很多審稿是有點問題的
[01:07:59] 就是這個其實不是那麼專業
[01:08:02] 因為就是那句話
[01:08:04] 他就寫Who is Aden這樣子
[01:08:06] 我覺得是蠻特別的
[01:08:08] 不過至少那個Reviewer應該是他自己寫的
[01:08:12] 如果叫AI Reviewer
[01:08:13] 應該不會出現Who is Aden這樣子
[01:08:16] 不過這個大概就是
[01:08:18] 有時候你會特別去描述你的模型
[01:08:21] 是這些細部的
[01:08:23] 其實比較像超參數怎麼做
[01:08:25] 然後你就會訓練
[01:08:27] 然後你就會評估這樣子
[01:08:29] 我想這個是一個標準的流程
[01:08:31] 只是說讓
[01:08:33] 因為在做第一個作業的時候
[01:08:35] 你就要做這件事情
[01:08:37] 只是說因為我們的code都現成的
[01:08:39] 所以你大概需要自己變動的東西不是很多
[01:08:42] 這樣子
[01:08:44] 所以我在講這個我們就下課了
[01:08:47] 我們今天就上到這邊
[01:08:49] 然後接下來的一個半小時
[01:08:51] 你們就回去看我們第一個lab課程的錄影
[01:08:56] 這樣子
[01:08:57] 有問題都可以在slide上再問
[01:09:00] 主教會再回復
[01:09:02] 其實activation function的概念其實非常重要
[01:09:06] 因為它其實比較像是NN能夠跨入
[01:09:10] 真正現在很有用的年代的一個很大的工程
[01:09:16] 它可以做一些non-linear的mapping
[01:09:19] 因為
[01:09:20] 你如果學過機器學
[01:09:22] 你就知道這個故事
[01:09:23] 就是
[01:09:24] 就是它沒辦法做一些這種
[01:09:27] 一刀兩切的
[01:09:29] 就是如果是linear的這種separator的時候
[01:09:32] 它沒辦法做這種
[01:09:34] 不是一刀兩切的一個data
[01:09:37] 那NN其實基本上因為
[01:09:40] 它核心的長相也是
[01:09:43] 一些weight上也是regression
[01:09:45] 只是說它靠著neuron之間的串接
[01:09:48] 靠這些activation的串接
[01:09:49] 使它可以做到一些non-linear的問題
[01:09:53] 那大家所熟悉的activation function
[01:09:55] 這個大家可能都聽過
[01:09:57] 用sigmoid,relu,tangent h
[01:10:01] 或者是給入這樣子
[01:10:03] 那這其實也不太會動
[01:10:06] 不太會動
[01:10:07] 那這個圖其實想呈現的是它們的關係
[01:10:10] 像比如說很標準的sigmoid就是
[01:10:15] 這個顏色是這樣的
[01:10:17] 就是從你可以想象
[01:10:19] 從大到無窮大
[01:10:20] 就是我現在input x
[01:10:22] 那我的output f就是y
[01:10:26] 那sigmoid是從0到1
[01:10:29] 所以它就是
[01:10:30] 負窮大就會開始從0
[01:10:32] 然後慢慢增加到1這樣子
[01:10:34] 就是這一條線
[01:10:36] 這條線其實它比較敏感的地方就在中間
[01:10:40] 就是在x介於0的正負的範圍內就是中間
[01:10:44] 所以越大跟負的越大跟正的越大
[01:10:47] 不是很敏感這樣子
[01:10:50] 那比較暴力的像relu
[01:10:52] relu就是這一條
[01:10:55] 因為蓋在一起的
[01:10:57] 這個圖是AI幫我畫的
[01:11:00] 就是它是這一條線然後長上來
[01:11:03] 就是把小於0的都把它變成0這樣子
[01:11:06] 然後大於0的就是原子output這樣子
[01:11:11] 那大家可能要先有個概念就是activation
[01:11:14] 這個東西其實當初
[01:11:16] 因為類神經網路其實是源自於人類的腦袋
[01:11:20] 人類腦袋在這個神經元在串接的時候
[01:11:24] 它其實是用一些化學物質
[01:11:27] 像是鉀離子鈉離子這種濃度
[01:11:31] 到一定地步的時候它會trigger
[01:11:33] 它會發出一個訊號
[01:11:35] 那這種就是把它轉換成這種控制
[01:11:39] 我們就用activation function的角色來做這件事情
[01:11:42] 那當然這個東西你說
[01:11:46] 那我們是要模擬人的activation function嗎
[01:11:48] 其實也沒有
[01:11:49] 就是我們就靠著這種
[01:11:51] 有點像過濾的機制
[01:11:53] 去達到我們所要做到的控制的效果
[01:11:58] 那大家可能常聽到tangent action
[01:12:00] 或者是給入
[01:12:01] 其實後面這兩個比較像是把累入
[01:12:04] 因為累入其實是非常不連續的
[01:12:07] 因為它前面就是0
[01:12:08] 然後這邊直接上升這樣子
[01:12:10] 這邊就不可為分
[01:12:13] 這種東西對模型來講很不好
[01:12:16] 所以它就把它變成一個比較連續的
[01:12:19] 連續的函式可為
[01:12:21] 然後去做一些這樣的調整
[01:12:25] 讓它子逼近這樣子
[01:12:27] 但是現在在做一些hardware的implementation
[01:12:31] 都會覺得這些function
[01:12:33] 實在太難做硬體的加速了
[01:12:36] 因為根本沒辦法去用電路去模擬
[01:12:40] 就是要做一些邏輯判斷
[01:12:42] 甚至還要算tangent去這樣子
[01:12:45] 這個成本很高
[01:12:47] 因為等於你每一個neural都要做一件這件事情
[01:12:50] 那個cost相當高
[01:12:51] 所以現在有很多做硬體加速
[01:12:53] 就直接在edification的方式裡做手腳
[01:12:55] 就是設計一個函式
[01:12:58] 然後它可以逼近這些圖案
[01:13:02] 那些函式是很容易可以靠著電路做出來的
[01:13:07] 只是說它是逼近
[01:13:09] 逼近這樣的一個pattern
[01:13:11] 所以還是行為有點不太一樣
[01:13:13] 所以他們常做就是這樣
[01:13:15] 是轉換之後
[01:13:16] 然後去看最後的模型的效能
[01:13:19] 跟原來效能差多少
[01:13:21] 但是速度會快很多
[01:13:23] 因為這個計算過程都可以用硬體加速
[01:13:26] ok
[01:13:27] 這個是在做NN後面
[01:13:29] 我有一個edification function這一段
[01:13:32] 這個是它的敘述
[01:13:35] 其實你可以想象它就是
[01:13:37] 特殊的一個正規化的一個function
[01:13:41] 去做一點壓縮做一點調整
[01:13:43] 這樣子
[01:13:47] 好
[01:13:48] 我想我們今天呢
[01:13:49] 就上到這邊
[01:13:50] 其實剛好你去看
[01:13:52] 這個PyTorch的那個tutorial
[01:13:54] 你會發現其實
[01:13:55] 因為就是從安裝開始
[01:13:57] 然後再帶類似NN網路的
[01:14:00] 的python的code
[01:14:02] 怎麼做
[01:14:03] 其實有些是講tf啦
[01:14:05] 就是講tensorflow
[01:14:08] 不過你大概可以知道這整個過程
[01:14:10] 但如果對你已經有一些基礎
[01:14:12] 你已經有訓練模型的基礎的話
[01:14:14] 可能會稍微簡單
[01:14:16] 不過你就挑你你認為需要的
[01:14:19] 就閱讀這樣子
[01:14:21] 那第一部分的PyTorch的tutorial
[01:14:23] 大概是一個半小時
[01:14:25] 所以大概可以先去看那邊的部分
[01:14:30] 好
[01:14:31] 我們今天的課程就到這裡
[01:14:39] slido上有沒有問題需要回復
[01:14:42] 跳出slido
[01:14:53] 那之前有人在slido上問
[01:14:55] 那個作業的效能
[01:14:57] 那其實那個過程
[01:15:01] 其實基本上
[01:15:02] 你都可以在你個人的collab的quota上
[01:15:07] 跑得起來這樣子
[01:15:09] 所以如果你要跑很久的時候
[01:15:11] 你可能你自己要看哪邊有問題
[01:15:14] 這樣子
[01:15:15] 好
[01:15:23] ntu庫好吧
[01:15:25] 這個的確一開始都會有這個問題
[01:15:28] 可能對於後面才加選的
[01:15:30] 他的名單的導入會稍微慢一點
[01:15:33] 這個
[01:15:35] 這個可能我問一下辦公室
[01:15:39] 好
[01:15:41] 好context怎麼取
[01:15:43] 這個當然這個context
[01:15:45] 你可能講的是
[01:15:47] 比如說我們PPMI那邊
[01:15:49] 我那個例子只是一個舉例
[01:15:51] 就是說好比如說我現在應用
[01:15:53] 要用這樣的五個維度
[01:15:55] 或是幾個重要的
[01:15:58] 的字來capture
[01:16:01] 我現在字的所有的表示
[01:16:03] 我可以自己設計
[01:16:05] 那或者是說
[01:16:07] 我你在waterbag裡面
[01:16:09] 你這個context
[01:16:10] 你可以取更大一點
[01:16:11] 你可以取這個window size是2
[01:16:14] 去看他的context有哪些字
[01:16:16] 共同出現這樣子
[01:16:19] ficial selection的select
[01:16:21] 其實這邊的
[01:16:22] 當初那個投影片的ficial selection
[01:16:24] 比較像是
[01:16:25] 就像我們在做PPMI那邊
[01:16:27] 我要用一個
[01:16:29] 我要用什麼樣的維度
[01:16:31] 來描述一個文字
[01:16:33] 其實當初的研究
[01:16:35] 有很多人去做這件事情
[01:16:37] 比如說他特別設計
[01:16:39] 這個比較語法的
[01:16:41] 或是這個詞性的什麼什麼
[01:16:45] 其實以前有人做這樣的
[01:16:47] 這種人工設計的embedding
[01:16:50] 然後去學這些東西
[01:16:52] 或者是用程式去
[01:16:54] attract他的ficial出來
[01:16:56] 這個是一個概念
[01:16:57] 是用人去設計
[01:16:58] 那我embedding
[01:17:00] 你在做的時候
[01:17:01] 你可能300維度或千百維度
[01:17:03] 765維度的時候
[01:17:04] 其實那個維度就是你的ficial
[01:17:06] 其實這個ficial的select
[01:17:08] 是模型自己去學的
[01:17:10] lab的算分
[01:17:13] 沒有
[01:17:14] 它只是有點像
[01:17:15] 帶這些比較實作
[01:17:17] 不是實作
[01:17:18] 就是
[01:17:20] 搞不好對你們來講
[01:17:21] 你會覺得比較有收穫這樣
[01:17:23] 因為老師都
[01:17:25] 講太泛泛的東西
[01:17:27] 那邊其實就是帶你真正
[01:17:29] 真正要帶這個code
[01:17:31] 真正在券的時候
[01:17:32] 你該怎麼寫這樣子
[01:17:34] 有點像助教課
[01:17:36] 那邊是沒有
[01:17:37] 有點像也是為了帶
[01:17:39] 帶這個作業相關的部分
[01:17:41] 其實也是考量
[01:17:42] 有些同學
[01:17:43] 可能經驗沒那麼多
[01:17:46] 這樣子
[01:17:52] 下載那個cobus
[01:17:53] 可能
[01:17:55] 我不知道
[01:17:56] 這個語料應該是
[01:17:58] 我們在github上
[01:17:59] 應該是可以嗎
[01:18:00] 還是你們助教
[01:18:02] 再回復一下這個問題
[01:18:03] OK好
[01:18:06] 其實以前一直有
[01:18:07] 其實第一年
[01:18:08] 第一年非常慘
[01:18:09] 因為第一年我們好像
[01:18:10] 沒放在github還是什麼
[01:18:12] 放在學校這邊
[01:18:13] 就有點掛掉了
[01:18:15] 這樣子
[01:18:17] 那
[01:18:20] OK
[01:18:29] lab應該在
[01:18:31] ntucool跟
[01:18:32] github都有
[01:18:33] 這樣子
[01:18:34] 它有投影片
[01:18:35] 跟助教預錄的影片
[01:18:39] 這樣子
[01:18:41] OK好
[01:18:42] 那我們就回復到這
[01:18:45] 那如果你在看lab的課的影片
[01:18:48] 有問題都可以在Style上問
[01:18:51] 助教都可以回覆這樣子
[01:18:54] 好
[01:18:55] 我們今天就上到這邊
[01:18:56] 我們就下課
## 8. 寫作規則
(這是 `_筆記SOP.md` 第 3.1、4、5、6 節的濃縮版。兩者衝突時以 SOP 為準。)
讀者:碩士生,兩門課期末是英文考試。要只看筆記就能學會,講得比老師好懂。畫面要簡潔。
**概念優先(2026-09-26 主理人)**:主理人只想懂概念,不想補數學、不想看程式碼和座標圖。兩門課的考試也都是問答題、不考算式(AI W1 1:16:52;NLP W3 1:47:41、2:48:36)。所以:
- 每段預設看得到的只有:白話摘要(2–4 句)+**一句生活比喻**(例:模擬退火像投資理財,年輕時敢冒險、越老越保守)+「考試可能怎麼問」一句。
- 數學推導、公式、手算、程式碼、座標圖,全部收進標題寫「(進階,可跳過)」的摺疊,例如「它到底怎麼運作?(進階,可跳過)」。每段最多一個進階摺疊,不要寫長篇計算。
- 演算法要能「用文字說出步驟」(考試可能要你描述),這一點放在預設看得到的地方,不用數字。
- **重心比例**:白話理論與概念模式(它在解決什麼問題、核心想法、跟別的方法差在哪、優缺點、生活比喻)占主要篇幅;數學與程式細節只用一兩句帶過,細節收進進階摺疊。
**圖文並茂(2026-09-26 主理人:不要只有文字)**:
- 每章至少 2–3 個圖,放在**預設看得到**的地方,每個圖前後各用一兩句白話說明「這張圖在看什麼」。
- 流程、步驟、因果、比較 → 用 mermaid 流程圖(```mermaid,flowchart LR 或 TD;節點文字用中文、加雙引號;一張圖不超過 10 個節點)。
- 投影片上的示意圖、架構圖 → 用 [[IMG: …]] 放投影片圖。
- 仍守「每個 ## 段落最多一種視覺元素」。
### 輸出兩個檔
1. `chNN.md`(Notion 寫法,不含頁面標題),結構固定:
- 第一行:章節包第 1 節那行,原樣照抄。
- 第二行起(有數學段才寫):**跳過提示**,每段一行,讓主理人看影片時知道從哪跳到哪。用章節包第 3b 節的候選當提示,對照第 7 節逐字稿確認(只標老師連續講公式、推導、矩陣、微積分、機率計算、程式細節超過約 1 分鐘的段落;概念講解和比喻不算):
`跳過提示:(1:31:02–1:35:40) 老師在推導梯度公式,聽不懂可以直接跳到 [1:35:40](YouTube 連結),接著講「步長 α 怎麼選」。`
- `## 重點`:三點中文,每點一到兩句。
- `## Exam-ready`:3–10 行英文,**從章節包的投影片文字逐字抄**,每行 `- **Term**: "原句"(Ch3 p.14)`。老師有明確證據才在行尾加 `【老師強調】(h:mm:ss)`。
**每一行下面一定要有一行縮排的中文解釋**(主理人英文不好,看不懂的英文等於沒用):
```
- **Hill climbing**: "It keeps track of one current state and on each iteration moves to the neighboring state with highest value."(Ch4 p.5)
- 中文:爬山法只記住「現在這一個狀態」,每一輪都移到分數最高的鄰居。白話:一直往比較高的地方走一步。
```
中文要先把句子意思講清楚,再補一句白話;最後用「英文(中文)」列出這句裡 1–3 個難字,例:sparse(稀疏)、distinct terms(不重複的字)。
**一行只放一句投影片原句**。同一頁有多句要考就拆成多行,每行各接一行中文;不要用分號串三句以上,不要把計算量 O(...) 塞進去。
- 章節包第 2 節的每一段:`## [h:mm:ss](連結) 標題`(照抄),下面 2–4 句白話摘要,其餘全部收進摺疊:
```
問句(例:用生活例子講,BFS 在做什麼?)
內容
```
摺疊種類(需要才放):用生活例子講?/它到底怎麼運作?/要先懂什麼?(老師假設你會的數學或概念,短版教學)/老師原話是什麼?(「原話」(h:mm:ss),只放重要的,最多 5 句)。
- 「它到底怎麼運作?」要用一組小數字把這段的演算法**真的跑 1–3 步**(例:算出梯度、更新一次、比較兩個 α),不是只示範定義的加減乘除。全章盡量沿用同一組數字,讓前一段的答案能在下一段被驗證。
- 每段正文要回答讀者最可能卡住的一個「為什麼」。投影片公式方向跟題目相反、或投影片說「解不出來」時,用一兩句講出原因,自己補的標(我補充)。
- 投影片句子停在公式前(公式在圖裡)時:Exam-ready 在粗體詞條上補公式、引號內保持原句;正文寫出同一條式子。公式圖看章節包第 6 節列出的 PNG。
- `## Self-check`:2–4 題英文考題,答案收摺疊。**至少一題考老師強調的內容**;只出 explain/why/compare 這類問答題,**不出要代數字計算的題目**(考試不考算式);不出「老師和投影片哪裡不同」這類不會考的題目。每題格式:
```
Q1. English question?(中文:中文題目)
**Answer**: English answer.
中文:把答案完整講一遍(不是只翻一句),讓看不懂英文的人也知道要怎麼答。
```
- **最後一行**:章節包第 1b 節那行(下一章連結),原樣照抄。讓讀完的人直接點下一章。
- 不要把章節包或這份規則裡的指示句寫進筆記(例如「寫筆記時照投影片寫」「已改正 ASR 錯字」)。
- 長度:全文不超過 16,000 字元(跟 check_note.py 同一個數字)。**不要為了壓字數反覆刪改**(實測一章最多花 12 輪在刪字);超過時只刪進階摺疊裡的第二組算例,比喻、比較表、圖說、「老師說不用背」的提醒都不刪。
- 預設看得到的正文不放計算量 O(...)、代號對照(例如 SMART 字母)、課本出處考據,一律移進進階摺疊。
2. `chNN.concepts.json`:JSON 陣列,4–12 個考試可能問的術語,每個物件:
`name`(英文)、`zh`、`type`(概念/演算法/公式/人物事件/前置知識/行政)、`signal`("老師說會考"/"老師強調"/"核心(我判斷)"/"")、`evidence`(有 signal 前兩種時必填:原句+時間)、`definition_en`(投影片原句;沒有就註明 (textbook)/(lecture)/(my wording))、`plain`(一句中文)、`a4`(≤150 字元英文,可夾極短中文;期末拼貼用的小方塊)、`time`、`slides`、`prereq`(英文名陣列)。
### 風格鐵律
- 不用 emoji 或裝飾符號(✓✗★⚠ 都不要;→ 可以)。不用 callout。不用 `$`。時間不要用 code 樣式。
- 每個 `##` 段落最多一種視覺元素:一張圖、或一個表格、或一個 mermaid。
- 摺疊標題是問句,前面不加符號。
- 圖片最多 3 張,只放文字取代不了的圖。放法:單獨一行 `[[IMG: | 中文圖說]]`,PNG 用 `slides_to_png.py <圖片資料夾> <頁> --dpi=110` 產生。
- 考試訊號只在老師明確說時標。老師只說「不用背」「不講」就寫「注意:……」。
- 老師口誤或跟投影片不同:照投影片寫,加「注意:老師口頭說的是……」。
- 引用老師的話時,ASR 錯字改成正確的字。
### 沒有投影片時
不要憑記憶逐字重現課本段落或數值表。英文定義用自己的話寫、句尾標 (my wording);Exam-ready 每行標「(自擬,投影片待補)」。例子只用老師講的。
### 寫完之後(只做一次)
跑檢查:
`C:\Users\user\.cache\meeting-record\venv\Scripts\python.exe C:\Users\user\.claude\scripts\check_note.py --transcript <逐字稿> --slides <投影片 txt …> --start <起> --end <訖> --vid <影片 ID>`
- STYLE/VISUAL/TIME/FORMAT:全部改掉。
- QUOTE:確認是不是你改正了 ASR 錯字(是就保留),不是就改成原文或拿掉引號。
- ENGLISH:確認是不是投影片斷行造成的(是就保留),不是就改成投影片原句。
**省額度守則**:章節包裡已經有你需要的全部資料。不要再去讀整份逐字稿、整份投影片、segments.json 或手冊。一次寫好整個檔(Write 一次),檢查後集中修改。