k-NN 是什麼:手刻最近鄰,以及向量檢索為什麼改用近似搜尋
從 2017 年那支用 Scipy 手刻的 k-NN 出發:iris 對半切、for 迴圈掃過全部訓練資料,再看 KD tree 怎麼把 75 萬筆的精確查詢壓到毫秒等級,以及維度上到 768 之後樹狀索引為什麼失效、向量檢索為什麼改用 HNSW 這類近似索引。
從 2017 年那支用 Scipy 手刻的 k-NN 出發:iris 對半切、for 迴圈掃過全部訓練資料,再看 KD tree 怎麼把 75 萬筆的精確查詢壓到毫秒等級,以及維度上到 768 之後樹狀索引為什麼失效、向量檢索為什麼改用 HNSW 這類近似索引。
LSTM 用遺忘門、輸入門、輸出門三道閘控制 cell state,讓資訊靠加法而不是連乘往前傳,避開一般 RNN 的梯度消失。這篇把當年只列了名字的閘門部分補完,並交代它在 Transformer 之後的位置。
Kaggle Titanic 解題紀錄:2017 年用 Logistic Regression 拿到 0.76555,加上回頭讀那支程式的筆記。preprocessing 先把 Age 正規化才跑 Age 小於 16 的規則,Sex 整欄變成同一個值;0.76555 換算回去是 418 題裡答對 320 題。
TensorFlow 練習:用 skip-gram 實作 word2vec 詞向量,並拆開 nce_loss 那一行:訓練時為什麼不掃整張詞彙表,改抽 K 個負面樣本問是非題,以及那些負面樣本是怎麼抽出來的。
TensorFlow 練習:用卷積神經網路 CNN 辨識 MNIST 手寫數字,實作兩層 convolution + max pooling + dropout 架構,準確率達 97%~99%。
根據林軒田機器學習基石課程實作 PLA,並拆開 w ← w + y·x 這一步:它對內積做了什麼、線性可分為什麼是收斂的前提、資料不可分時為什麼不會停,以及 Pocket PLA 和今天的損失函數換掉了什麼。
TensorFlow 練習:用神經網路擬合二維四次多項式 Polynomial Regression,介紹 tf.placeholder、tf.Variable、square error loss 和梯度下降優化器的基礎用法。
Contact KbWen — email for article corrections, technical collaboration, tool feedback, or anything related to the site.