器學(xué)習(xí)綜合題型復(fù)盤)
又到刷題時(shí)間。這個(gè)系列我自己都想吐槽說好每周更新一次結(jié)果硬是拖成了不定期更新。好在前三次的內(nèi)容都是實(shí)打?qū)嵉牡谝淮伟裀ython工具鏈和NumPy廣播機(jī)制過了一遍第二次集中刷了邏輯回歸、決策樹這些經(jīng)典算法的推導(dǎo)第三次用PyTorch完整搭了一個(gè)手寫數(shù)字分類網(wǎng)絡(luò)。如果你是從第一篇跟到現(xiàn)在的基礎(chǔ)部分基本穩(wěn)了如果是中途進(jìn)來的直接做第四次這套綜合練習(xí)遇到不懂的再回頭翻前面的文章補(bǔ)課效率反而更高。AI入試這個(gè)詞我按最寬泛的理解來用人工智能方向的入學(xué)復(fù)試、企業(yè)算法崗筆試、以及各類AI能力認(rèn)證考試都算。這類考核有個(gè)共同點(diǎn)就是特別愛考看起來基礎(chǔ)、實(shí)際上容易翻車的問題而且經(jīng)常把數(shù)學(xué)推導(dǎo)、代碼實(shí)現(xiàn)和概念判斷揉在同一道題里。第四次練習(xí)我就故意把這種綜合題挑出來做成了帶詳細(xì)解析的練習(xí)合集適合正在備考、或者想檢驗(yàn)自己是否真正掌握AI基礎(chǔ)的人。整套題不追求偏難怪而是追求問到你平時(shí)忽略的為什么。1. 第四次練習(xí)的整體定位與選題思路1.1 前三次練習(xí)留下的地基先簡(jiǎn)單交代一下系列進(jìn)度。第一次我?guī)е蠹野裀ython的列表推導(dǎo)式、NumPy的廣播機(jī)制、矩陣乘法練到閉著眼能寫第二次重點(diǎn)講邏輯回歸和決策樹的公式推導(dǎo)以及它們?cè)谡鎸?shí)數(shù)據(jù)上的表現(xiàn)第三次主要是用PyTorch搭建全連接網(wǎng)絡(luò)把數(shù)據(jù)加載、模型定義、訓(xùn)練循環(huán)完整走了一遍。三輪下來你會(huì)發(fā)現(xiàn)一個(gè)尷尬的事實(shí)單個(gè)知識(shí)點(diǎn)做題都會(huì)一旦混在一起腦子就容易卡殼。于是第四次我換了一種玩法不再按知識(shí)點(diǎn)為單位出題而是按題型為單位出題——同一個(gè)考點(diǎn)用選擇題、推導(dǎo)題、編程題輪番轟炸看看自己是不是真懂了。這也是我備考AI入試最真實(shí)的需求考試不會(huì)只問什么是過擬合它一定會(huì)讓你判斷這個(gè)現(xiàn)象是不是過擬合或者讓你想辦法減輕過擬合。所以這次練習(xí)每一類題我都盡量做成概念推導(dǎo)場(chǎng)景的復(fù)合結(jié)構(gòu)而不是孤立的記憶題。做題時(shí)你可以先獨(dú)立完成一遍再看后面的解析這樣效果比直接閱讀答案好得多。1.2 為什么這輪選題主打綜合手推認(rèn)真研究過幾套相關(guān)筆試和復(fù)試題目之后我發(fā)現(xiàn)出題人有一個(gè)共同偏好希望篩選出真懂原理而不是背住結(jié)論的人。所以概念題后面往往跟著一個(gè)為什么計(jì)算題又要求你寫出中間步驟。給我的啟發(fā)是平時(shí)刷題不能只盯著答案對(duì)錯(cuò)而是要練推導(dǎo)速度和表達(dá)的嚴(yán)謹(jǐn)性。第四次的四類題型我是這樣規(guī)劃的題型考察能力本次題量建議用時(shí)概念辨析題是否真正理解核心術(shù)語3道每題3分鐘手推計(jì)算題能否獨(dú)立完成公式推導(dǎo)2道每題8分鐘公式應(yīng)用題能否把數(shù)學(xué)知識(shí)落到場(chǎng)景3道每題5分鐘編程實(shí)現(xiàn)題能否把算法轉(zhuǎn)成代碼1道12分鐘選擇題檢驗(yàn)?zāi)阒恢篮?jiǎn)答題檢驗(yàn)?zāi)隳懿荒苤v清楚計(jì)算題檢驗(yàn)?zāi)愀也桓覄?dòng)手算編程題檢驗(yàn)?zāi)懿荒馨压阶兂煽蓤?zhí)行代碼。四類都過一遍才算真正掌握一個(gè)考點(diǎn)。這套思路你在準(zhǔn)備任何技術(shù)考核時(shí)都可以復(fù)用。2. 機(jī)器學(xué)習(xí)基礎(chǔ)概念題與易錯(cuò)點(diǎn)復(fù)盤2.1 類別不平衡下指標(biāo)選擇是個(gè)送命題先上這道選擇題它在我刷過的題目里出現(xiàn)頻率極高。題目在一個(gè)二分類任務(wù)中正樣本僅占1%你覺得哪個(gè)評(píng)估指標(biāo)最不靠譜A. AccuracyB. F1-ScoreC. AUCD. Recall正確答案是A。原因很簡(jiǎn)單如果模型把所有樣本都預(yù)測(cè)為負(fù)類Accuracy能到99%可這個(gè)模型一點(diǎn)用都沒有。用生活化的話說就像天氣預(yù)報(bào)天天報(bào)不下雨一個(gè)月里雖然只錯(cuò)了兩三回但我們想要的從來不是這種平均正確率。在正負(fù)樣本嚴(yán)重失衡的業(yè)務(wù)場(chǎng)景里準(zhǔn)確率會(huì)被多數(shù)類主導(dǎo)完全掩蓋少數(shù)類上的表現(xiàn)。F1-Score是精確率和召回率的調(diào)和平均在這種場(chǎng)景下能反映模型對(duì)少數(shù)類是否真的捕捉到了AUC看的是正負(fù)樣本排序能力受不平衡影響相對(duì)較小Recall則直接關(guān)心真正的正樣本我撈回來多少。所以看到類別不平衡五個(gè)字第一反應(yīng)應(yīng)該是排除Accuracy優(yōu)先考慮F1、AUC、PRC。這里特別提醒PRC在正樣本極少時(shí)比ROC更敏感很多參考答案不提這一點(diǎn)但你答出來會(huì)是加分項(xiàng)。再補(bǔ)一道延伸思考如果業(yè)務(wù)場(chǎng)景是識(shí)別交易欺詐正樣本就是欺詐交易非常稀少你會(huì)更看重Precision還是Recall答案取決于代價(jià)。如果一次誤判會(huì)把正常用戶凍住損失很大那就往Precision偏如果要盡可能抓住所有欺詐不管誤傷就主攻Recall。所以考試?yán)锊灰槐持笜?biāo)公式還要學(xué)會(huì)結(jié)合場(chǎng)景說取舍。2.2 偏差-方差分解簡(jiǎn)答題這樣答才能拿全分第二道高頻簡(jiǎn)答題請(qǐng)用偏差-方差分解解釋過擬合與欠擬合。我的建議答題框架分四步。第一步直接寫公式泛化誤差 偏差^2 方差 噪聲。第二步說清偏差和高低欠擬合模型太簡(jiǎn)單對(duì)訓(xùn)練數(shù)據(jù)都擬合不好屬于高偏差、低方差過擬合模型把訓(xùn)練數(shù)據(jù)里的噪聲都學(xué)進(jìn)去了屬于低偏差、高方差。第三步舉一個(gè)具體例子佐證比如用線性模型去擬合二次函數(shù)偏差很大、方差不大用九次多項(xiàng)式擬合少量點(diǎn)偏差小、方差極大。第四步給對(duì)策高偏差時(shí)增加模型復(fù)雜度、加特征、減少正則化高方差時(shí)增加訓(xùn)練數(shù)據(jù)、降低模型復(fù)雜度、加正則化、做交叉驗(yàn)證。四步說完基本就是個(gè)小滿分答案。我在批改自己練習(xí)時(shí)發(fā)現(xiàn)一個(gè)常見錯(cuò)誤很多同學(xué)把偏差理解成預(yù)測(cè)值和真實(shí)值的差這沒錯(cuò)但在機(jī)器學(xué)習(xí)語境下偏差描述的是模型在大量不同訓(xùn)練集上的平均預(yù)測(cè)與真實(shí)值的差異方差描述的是模型在不同訓(xùn)練集上的變動(dòng)程度。這兩個(gè)概念一定要從多次采樣訓(xùn)練集的角度理解否則一旦被追問為什么增加數(shù)據(jù)能減小方差就會(huì)卡住。事實(shí)上數(shù)據(jù)增多時(shí)模型見過的樣本分布更接近真實(shí)分布它對(duì)訓(xùn)練集具體樣本的依賴變小方差自然下降。2.3 梯度下降的變體們別只記名字這種題通常以填空或選擇形式出現(xiàn)。比如比較批量梯度下降BGD、隨機(jī)梯度下降SGD和小批量梯度下降Mini-batch GD的優(yōu)缺點(diǎn)。批量梯度下降每次用全量數(shù)據(jù)計(jì)算梯度方向最準(zhǔn)但數(shù)據(jù)量大時(shí)速度慢而且容易停在局部極小隨機(jī)梯度下降每次用一個(gè)樣本更新快但震蕩劇烈?guī)г肼暦炊袡C(jī)會(huì)跳出局部極小小批量梯度下降折中每次用一小批兼顧穩(wěn)定與速度是實(shí)際深度學(xué)習(xí)訓(xùn)練最常用的方式。答題時(shí)最好補(bǔ)一句現(xiàn)代框架里的SGD默認(rèn)指小批量隨機(jī)梯度下降而不是嚴(yán)格意義上的單樣本更新。這種摳定義的小細(xì)節(jié)很容易讓閱卷人覺得你確實(shí)動(dòng)過手。這里再補(bǔ)充一個(gè)常被追問的點(diǎn)學(xué)習(xí)率怎么設(shè)。學(xué)習(xí)率太大損失曲線會(huì)震蕩甚至發(fā)散太小又收斂慢。常見的做法是用余弦退火或warmup加動(dòng)態(tài)衰減初始學(xué)習(xí)率一般取0.01到0.001之間再根據(jù)驗(yàn)證集損失做調(diào)整?;卮疬@類問題時(shí)只要把控制更新步長(zhǎng)這個(gè)本質(zhì)講明白再給出一個(gè)具體量級(jí)和調(diào)整方向會(huì)顯得很有實(shí)操感。3. 深度學(xué)習(xí)與神經(jīng)網(wǎng)絡(luò)手推反向傳播3.1 從零手推一個(gè)神經(jīng)元不再怕鏈?zhǔn)椒▌tAI入試?yán)锸滞品聪騻鞑セ臼潜乜柬?xiàng)。很多同學(xué)一看公式就頭大其實(shí)只用記住一句話梯度是損失對(duì)參數(shù)的偏導(dǎo)鏈?zhǔn)椒▌t就是逐層求導(dǎo)再相乘。我們來看經(jīng)典的最小例子。設(shè)輸入 x2目標(biāo) y0.5初始參數(shù) w1.0b0.5激活函數(shù)是Sigmoid損失函數(shù)是均方誤差MSE。前向傳播的計(jì)算為z wx b 1.0 × 2 0.5 2.5 a sigmoid(z) 1 / (1 e^(-2.5)) ≈ 0.924 L 0.5 × (a - y)^2 0.5 × (0.924 - 0.5)^2 ≈ 0.0899反向計(jì)算 dL/dw 時(shí)按照鏈?zhǔn)椒▌t拆成三段dL/da a - y ≈ 0.424 da/dz a(1 - a) ≈ 0.924 × 0.076 ≈ 0.0702 dz/dw x 2相乘得到 dL/dw ≈ 0.424 × 0.0702 × 2 ≈ 0.0595。偏置的梯度是 dL/db ≈ 0.424 × 0.0702 ≈ 0.0298。如果學(xué)習(xí)率設(shè)為0.1參數(shù)更新為 w_new ≈ 1.0 - 0.1 × 0.0595 0.99405b_new ≈ 0.5 - 0.1 × 0.0298 0.49702。手推這種題有幾個(gè)坑。第一個(gè)是搞混損失對(duì)輸出的導(dǎo)數(shù)交叉熵配合Sigmoid時(shí)推導(dǎo)會(huì)簡(jiǎn)潔很多但這里用的是MSE必須老老實(shí)實(shí)算。第二個(gè)是參數(shù)更新的方向梯度下降是減去梯度方向別反。第三個(gè)是Sigmoid在z較大時(shí)梯度接近0這就是梯度消失的雛形手推題里如果激活輸出接近1或0梯度值會(huì)非常小要能意識(shí)到并說明。我的習(xí)慣是前向把 z 和 a 分別存成中間變量反向直接取用這樣既快又少出錯(cuò)。備考時(shí)建議把用乘法鏈寫清每一步偏導(dǎo)當(dāng)成固定書寫格式閱卷人看著清晰自己也容易發(fā)現(xiàn)錯(cuò)誤。3.2 特征圖尺寸與感受野別再被padding和stride繞暈這個(gè)知識(shí)點(diǎn)幾乎每次筆試都會(huì)出現(xiàn)考法通常是給輸入尺寸、卷積核大小、padding和stride讓你算輸出特征圖尺寸或者反過來求某個(gè)參數(shù)。通用公式是輸出尺寸 floor((W 2P - F) / S) 1其中W是輸入邊長(zhǎng)P是padding單邊填充數(shù)F是卷積核大小S是stride步長(zhǎng)。為什么加2P因?yàn)閜adding是在左右兩側(cè)都填充。為什么最后加1因?yàn)榫矸e核要覆蓋到最后一個(gè)可行位置類似從0開始的計(jì)數(shù)。用floor還是ceil取決于框架PyTorch默認(rèn)是floor手算結(jié)果和機(jī)器結(jié)果一致。比如輸入32x323x3卷積padding1stride2先算32 2×1 - 3 31除以2得到15.5向下取整15再加1得到16輸出是16x16。再堆一層同樣參數(shù)16 2 - 3 15除以2得7.5取整7加1得8輸出8x8。很多同學(xué)在15.5這里直接四舍五入成16然后忘記再加1得出17這是最常見的錯(cuò)誤。我建議用直覺檢查stride為2時(shí)輸出尺寸大致接近輸入的一半。32變成16符合直覺如果算出來是17或33大概率是取整和加1的順序錯(cuò)了。池化層公式通常是 floor((W - F) / S) 1沒有padding。比如14x14輸入2x2池化stride2輸出是7x7因?yàn)?14-2)/217。真題里還喜歡讓你比較最大池化和平均池化在梯度傳播上的差異最大池化梯度只會(huì)回傳到前向中選中的那個(gè)位置平均池化則把梯度均勻分配到各位置。這些小點(diǎn)都答上說明你不是只會(huì)算尺寸。3.3 用感受野解釋為什么CNN喜歡堆小卷積核再補(bǔ)充一道簡(jiǎn)答題感受野是什么意思怎么理解為什么很多網(wǎng)絡(luò)堆好幾層3x3卷積而不是直接用一個(gè)大卷積核感受野指某層特征圖上每個(gè)像素對(duì)應(yīng)原圖區(qū)域的尺寸。兩個(gè)3x3卷積堆疊特征圖上的一個(gè)點(diǎn)其實(shí)可以看到原圖5x5的區(qū)域參數(shù)量卻是2×(3×3×C×C)18C^2而一個(gè)5x5卷積的參數(shù)是25C^2。所以小卷積核堆疊在相同感受野下更省參數(shù)還引入了更多非線性層表達(dá)能力更強(qiáng)。計(jì)算參數(shù)量時(shí)注意不要漏掉輸入輸出通道單個(gè)卷積核的參數(shù)量是F×F×C_in×C_out有偏置還要加C_out。以上就是這類簡(jiǎn)答題的完整答法先給定義再給參數(shù)對(duì)比最后說非線性帶來的收益。4. 數(shù)學(xué)基礎(chǔ)與編程實(shí)戰(zhàn)從推導(dǎo)到實(shí)現(xiàn)4.1 特征值特征向量PCA的前置考點(diǎn)矩陣特征值是線性代數(shù)部分的重頭戲考法很直白給你一個(gè)2x2矩陣求特征值和對(duì)應(yīng)的特征向量。例題A [[2,1],[1,2]]。先寫特征方程 det(A - λI) 0(2-λ)(2-λ) - 1×1 0 化簡(jiǎn)得 (2-λ)^2 - 1 0 解得 λ 1 或 λ 3。λ1時(shí)代入 A - I [[1,1],[1,1]]解方程 (A-I)v0 得到 x1 x2 0所以取一個(gè)特征向量 v [1,-1]單位化就是 [1/√2, -1/√2]。λ3時(shí)代入 A - 3I [[-1,1],[1,-1]]解方程得到 x1 - x2 0取 v [1,1]單位化 [1/√2, 1/√2]。這一題在考試?yán)锿皇瞧瘘c(diǎn)后續(xù)會(huì)問用特征值大小說明矩陣性質(zhì)。最大特征值3對(duì)應(yīng)方差最大的方向如果把這個(gè)矩陣當(dāng)成某個(gè)數(shù)據(jù)的協(xié)方差矩陣主成分方向就是 [1,1] 方向它解釋了總方差的 3/(31)75%。這就是PCA的底層邏輯找到協(xié)方差矩陣特征值最大的幾個(gè)方向?qū)崿F(xiàn)降維。我備考時(shí)總結(jié)的答題模板是寫特征方程、求λ、逐個(gè)代回求特征向量、說明幾何含義。千萬不要只求λ就完事特征向量才是后續(xù)問題的關(guān)鍵。另外注意特征向量可以乘任意非零常數(shù)寫一個(gè)特征向量為...也可乘以任意非零常數(shù)既嚴(yán)謹(jǐn)又能避免和標(biāo)準(zhǔn)答案有出入。4.2 信息熵與基尼指數(shù)決策樹計(jì)算題怎么拿分決策樹計(jì)算題在AI入試中屬于送分題前提是公式記熟并能手算。給一個(gè)常見考法給定劃分前后的純度指標(biāo)判斷哪個(gè)特征更好。假設(shè)一個(gè)二分類數(shù)據(jù)集有15個(gè)樣本其中正例9個(gè)、負(fù)例6個(gè)。某個(gè)特征把數(shù)據(jù)劃分為兩個(gè)子節(jié)點(diǎn)第一個(gè)子節(jié)點(diǎn)包含6個(gè)樣本正負(fù)各3個(gè)第二個(gè)子節(jié)點(diǎn)包含9個(gè)樣本正例6個(gè)、負(fù)例3個(gè)。請(qǐng)計(jì)算基尼指數(shù)。先算劃分前的基尼指數(shù)Gini(D) 1 - (9/15)^2 - (6/15)^2 1 - 0.36 - 0.16 0.48劃分后按樣本量加權(quán)Gini(D1) 1 - (3/6)^2 - (3/6)^2 0.5 Gini(D2) 1 - (6/9)^2 - (3/9)^2 1 - 4/9 - 1/9 ≈ 0.444 Gini_after (6/15)×0.5 (9/15)×0.444 ≈ 0.467基尼系數(shù)下降量 0.48 - 0.467 0.013。做特征選擇時(shí)應(yīng)該選讓基尼系數(shù)下降量最大的特征。同樣如果題里用信息熵就是用信息增益表示下降量。這兩種指標(biāo)本質(zhì)都衡量劃分前后不確定性減少多少。這類題最容易出錯(cuò)的地方有兩個(gè)一是忘記按樣本數(shù)量加權(quán)直接把兩個(gè)子節(jié)點(diǎn)的純度做平均二是把基尼指數(shù)最小和基尼指數(shù)下降量最大搞混。決策樹在CART里建樹時(shí)是遍歷特征和閾值選擇下降量最大的切分點(diǎn)所以如果問哪個(gè)特征更好比的是下降量不是節(jié)點(diǎn)純度的絕對(duì)值。我在實(shí)際練習(xí)中會(huì)把這類題寫在錯(cuò)題本上重點(diǎn)標(biāo)記加權(quán)平均四個(gè)字。4.3 樸素貝葉斯一個(gè)條件概率的應(yīng)用題樸素貝葉斯高頻考點(diǎn)集中在貝葉斯公式和樸素的由來。例題已知 P(A|B)0.8P(B)0.3P(A|非B)0.2求 P(B|A)。根據(jù)貝葉斯公式P(B|A) [P(A|B)P(B)] / [P(A|B)P(B) P(A|非B)P(非B)] (0.8×0.3) / (0.8×0.3 0.2×0.7) 0.24 / 0.38 ≈ 0.6316這道題考的不只是公式還考分母是否寫全。分母里必須包含互補(bǔ)條件下的全概率項(xiàng)也就是 P(A|非B)P(非B)很多同學(xué)會(huì)漏掉這一項(xiàng)。另一個(gè)常考的點(diǎn)是樸素二字的含義即特征之間條件獨(dú)立的假設(shè)P(x1,x2|y)P(x1|y)P(x2|y)?;卮饡r(shí)說明這個(gè)假設(shè)簡(jiǎn)化了聯(lián)合概率計(jì)算雖然實(shí)際很難完全滿足但很多場(chǎng)景下效果依然不錯(cuò)所以被稱為樸素。4.4 編程題手寫K折交叉驗(yàn)證不調(diào)庫最后是一道代碼題。我選了K折交叉驗(yàn)證因?yàn)樗诠P試?yán)锍霈F(xiàn)頻率高而且手寫能檢驗(yàn)?zāi)銓?duì)數(shù)據(jù)切片、隨機(jī)種子、循環(huán)流程是否真正理解。用NumPy手寫一個(gè)簡(jiǎn)單的切分函數(shù)import numpy as np def kfold_split(n_samples, k, shuffleTrue, seed42): index np.arange(n_samples) if shuffle: rng np.random.default_rng(seed) rng.shuffle(index) # 每折至少 n_samples // k 個(gè)樣本余數(shù)從第一折開始分配 fold_sizes np.full(k, n_samples // k, dtypeint) fold_sizes[: n_samples % k] 1 folds [] current 0 for fold_size in fold_sizes: folds.append(index[current:current fold_size]) current fold_size return folds使用邏輯很簡(jiǎn)單。n_samples20、k5時(shí)每折大小是4n_samples23時(shí)前3折大小為5后2折大小為4。訓(xùn)練循環(huán)里把驗(yàn)證折以外的所有索引拼成訓(xùn)練集folds kfold_split(23, 5) for i in range(5): val_idx folds[i] train_idx np.concatenate([folds[j] for j in range(5) if j ! i]) # 在這里訓(xùn)練模型用 train_idx 訓(xùn)練用 val_idx 驗(yàn)證注意 np.concatenate 傳入的是一個(gè)列表列表里每個(gè)元素是一個(gè)數(shù)組不要用列表相加否則會(huì)變成嵌套而不是扁平化。實(shí)踐里最常見的錯(cuò)誤是忘記shuffle導(dǎo)致有序數(shù)據(jù)直接按類別塊切分驗(yàn)證集就會(huì)全是同一類評(píng)估結(jié)果虛高或虛低。另一個(gè)細(xì)節(jié)是使用 np.random.default_rng(seed) 而不是 np.random.seed np.random.shuffle這樣可以避免污染全局隨機(jī)狀態(tài)在多次重復(fù)實(shí)驗(yàn)時(shí)尤其重要。如果筆試要求的是嚴(yán)格的Stratified KFold還需要按類別比例逐層分配樣本手寫復(fù)雜度會(huì)高很多先寫出基礎(chǔ)版并說明若要保證類別比例還需分層抽樣已經(jīng)能拿到大部分分?jǐn)?shù)。5. 易錯(cuò)點(diǎn)與應(yīng)試策略踩坑記錄5.1 AI入試筆試最常見的三個(gè)丟分位置根據(jù)我自己的練習(xí)記錄和身邊備考者的反饋丟分往往不在難題而在基礎(chǔ)題三個(gè)位置。第一個(gè)是概念混淆Bagging和Boosting搞反、L1和L2正則化說不清、歸一化和標(biāo)準(zhǔn)化用錯(cuò)場(chǎng)景。解決方法是畫一張對(duì)比表把相似概念的區(qū)別寫清楚考前只看這張表。第二個(gè)是計(jì)算粗心特征圖尺寸公式里漏了padding的2倍、特征值方程展開錯(cuò)符號(hào)、基尼指數(shù)忘記加權(quán)。解決方法是每道計(jì)算題都先寫公式再帶入不要跳步。第三個(gè)是代碼細(xì)節(jié)手寫交叉驗(yàn)證時(shí)忘記shuffle梯度下降里把梯度和參數(shù)更新方向搞反。這些坑在平時(shí)刷題時(shí)發(fā)現(xiàn)比考試時(shí)丟分更值錢。我建議把錯(cuò)題按概念型/計(jì)算型/代碼型分類記錄考前只看錯(cuò)誤原因欄效率極高。5.2 我的答題順序與時(shí)間分配建議AI入試這類綜合性筆試時(shí)間通常比較緊。我的習(xí)慣是先用2分鐘掃一遍所有題目標(biāo)記哪些是需要長(zhǎng)時(shí)間計(jì)算的、哪些是概念題。做題順序上先做計(jì)算題和編程題因?yàn)樗鼈冃枰竽X在高喚醒狀態(tài)下手算越做到后面越容易疲勞和粗心概念簡(jiǎn)答題放中間用來調(diào)劑節(jié)奏最后留10分鐘檢查計(jì)算題的符號(hào)和公式。單題時(shí)間控制上選擇題不超過3分鐘簡(jiǎn)答題5分鐘左右計(jì)算題可以放到8分鐘編程題最多15分鐘。如果一道題卡了超過預(yù)計(jì)時(shí)間的一半果斷先跳過后面有時(shí)間再補(bǔ)。這套節(jié)奏在多次模擬練習(xí)里讓我保持了較高完成度推薦你也試試。你可以根據(jù)自己強(qiáng)弱項(xiàng)微調(diào)順序但核心原則是不要在低分值的難題上耗盡腦力影響后面更多基礎(chǔ)題的得分。5.3 如何把錯(cuò)題變成真正屬于自己的東西我不太建議反復(fù)刷同一套題那會(huì)產(chǎn)生假性記憶。更有效的做法是把做錯(cuò)的題改造成變體比如把K折交叉驗(yàn)證里n_samples從23改成100要求寫出每折樣本數(shù)把特征圖尺寸里的padding改成0重新算一遍。這樣比再做一次原題更能檢驗(yàn)?zāi)闶欠裾娴恼莆?。我也?xí)慣在題干旁邊寫一句話標(biāo)記這道題在真實(shí)項(xiàng)目中對(duì)應(yīng)什么場(chǎng)景。比如特征圖尺寸計(jì)算對(duì)應(yīng)改網(wǎng)絡(luò)結(jié)構(gòu)時(shí)確認(rèn)維度是否匹配反向傳播手推對(duì)應(yīng)調(diào)參時(shí)理解梯度異常來自哪里。備考不是任務(wù)而是把知識(shí)內(nèi)化成工具。帶著這個(gè)心態(tài)AI入試的題目會(huì)越做越順而且工作里遇到類似問題你也更容易想到用哪個(gè)知識(shí)點(diǎn)去解。第四次練習(xí)到這里就結(jié)束了。說實(shí)話每次整理這些題我自己也能復(fù)習(xí)一遍尤其是手推反向傳播和交叉驗(yàn)證哪怕寫過很多遍偶爾還是會(huì)踩到符號(hào)和維度的坑。所以我的個(gè)人建議是題不在多把每一道綜合題真正手推、手寫一遍比泛泛刷十道題更有用。下次第五次我打算加入Transformer的Self-Attention手推和常見激活函數(shù)對(duì)比如果你已經(jīng)把這次的內(nèi)容消化完我們下一步見。