版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
蔚來視覺算法實(shí)習(xí)生高頻面試題
【精選近三年60道高頻面試題】
【題目來源:學(xué)員面試分享復(fù)盤及網(wǎng)絡(luò)真題整理】
【注:每道題含高分回答示例+避坑指南】
1.請做一個(gè)自我介紹(基本必考)
2.請?jiān)敿?xì)介紹一段你覺得最具挑戰(zhàn)性的項(xiàng)目經(jīng)歷,重點(diǎn)講你在其中的貢獻(xiàn)(基本必考|適合
講項(xiàng)目)
3.手撕代碼:實(shí)現(xiàn)非極大值抑制(NMS)算法(極高頻|重復(fù)度高)
4.Transformer和CNN在計(jì)算機(jī)視覺任務(wù)中的區(qū)別與優(yōu)劣勢對比(極高頻|需深度思考)
5.講一下BatchNormalization(BN)的原理、作用及在訓(xùn)練推理時(shí)的區(qū)別(極高頻|重點(diǎn)準(zhǔn)
備)
6.手撕代碼:計(jì)算兩個(gè)矩形框的IoU(交并比)(高頻|重復(fù)度高)
7.詳細(xì)推導(dǎo)一下Self-Attention的計(jì)算過程和時(shí)間復(fù)雜度(極高頻|需深度思考)
8.介紹一下YOLO系列算法的演變(從v1到v8),重點(diǎn)談?wù)凙nchor-based和Anchor-free的區(qū)
別(高頻|近兩年常問)
9.常見的損失函數(shù)有哪些?請解釋FocalLoss是如何解決正負(fù)樣本不平衡問題的(極高頻|
重點(diǎn)準(zhǔn)備)
10.什么是感受野(ReceptiveField)?如何計(jì)算?(高頻|較為重要)
11.介紹一下ResNet的殘差結(jié)構(gòu)解決了什么問題?為什么有效?(極高頻|多次驗(yàn)證)
12.你的項(xiàng)目中遇到了哪些過擬合問題?具體采用了哪些手段解決?(高頻|適合講項(xiàng)目)
13.C++基礎(chǔ):虛函數(shù)和純虛函數(shù)的區(qū)別,多態(tài)是如何實(shí)現(xiàn)的?(高頻|較為重要)
14.介紹一下BEV(Bird'sEyeView)感知的基本原理及常用的轉(zhuǎn)換方法(如IPM、LSS、
Transformer)(近兩年常問|需深度思考)
15.優(yōu)化器對比:SGD、Momentum、Adam和AdamW的區(qū)別是什么?(高頻|重點(diǎn)準(zhǔn)備)
16.手撕代碼:實(shí)現(xiàn)K-Means聚類算法(高頻|網(wǎng)友分享)
17.講一下L1正則化和L2正則化的區(qū)別及幾何解釋(高頻|較為重要)
18.在目標(biāo)檢測中,mAP是如何計(jì)算的?Precision和Recall的定義是什么?(基本必考|重點(diǎn)
準(zhǔn)備)
19.對于小目標(biāo)檢測難點(diǎn),你有什么具體的改進(jìn)思路?(高頻|需深度思考)
20.Python基礎(chǔ):裝飾器(Decorator)的作用和生成器(Generator)的區(qū)別(高頻|較為重
要)
21.講一下VisionTransformer(ViT)的PatchEmbedding是如何實(shí)現(xiàn)的?(近兩年常問|重點(diǎn)
準(zhǔn)備)
22.什么是梯度消失和梯度爆炸?如何緩解?(高頻|較為重要)
23.激活函數(shù)對比:Sigmoid、ReLU、LeakyReLU和GELU的優(yōu)缺點(diǎn)(高頻|多次驗(yàn)證)
24.多模態(tài)融合(如雷達(dá)與攝像頭)常見的融合策略有哪些(前融合、特征融合、后融合)?
(近兩年常問|需深度思考)
25.你的模型在部署時(shí)做了哪些優(yōu)化?了解TensorRT或ONNX嗎?(高頻|適合講項(xiàng)目)
26.C++基礎(chǔ):智能指針(shared_ptr,unique_ptr,weak_ptr)的用法及循環(huán)引用問題(高頻|
較為重要)
27.手撕代碼:二叉樹的層序遍歷或最近公共祖先(高頻|重復(fù)度高)
28.介紹一下DETR(DetectionTransformer)的整體架構(gòu)及二分圖匹配(Hungarian
Algorithm)(近兩年常問|重點(diǎn)準(zhǔn)備)
29.深度學(xué)習(xí)中參數(shù)初始化有哪些方法?為什么不能全零初始化?(高頻|較為重要)
30.什么是GroupConvolution和DepthwiseSeparableConvolution?有什么優(yōu)勢?(高頻|較
為重要)
31.手撕代碼:最長遞增子序列(LIS)或最大子數(shù)組和(高頻|網(wǎng)友分享)
32.講一下SwinTransformer的ShiftedWindowAttention機(jī)制(近兩年常問|需深度思考)
33.如何處理長尾分布(Long-tailDistribution)的數(shù)據(jù)問題?(高頻|需深度思考)
34.介紹一下CLIP模型的原理及其在Zero-shot任務(wù)中的應(yīng)用(近兩年常問|學(xué)員分享真題)
35.你的項(xiàng)目中是如何進(jìn)行數(shù)據(jù)增強(qiáng)的?Mosaic、Mixup等方法的原理是什么?(高頻|適合
講項(xiàng)目)
36.C++中堆(Heap)和棧(Stack)的區(qū)別(高頻|較為重要)
37.相機(jī)標(biāo)定了解嗎?內(nèi)參矩陣和外參矩陣分別包含哪些信息?(高頻|重點(diǎn)準(zhǔn)備)
38.介紹一下NeRF(NeuralRadianceFields)的基本原理(近兩年常問|需深度思考)
39.常見的語義分割網(wǎng)絡(luò)(如UNet、DeepLab系列)的核心思想是什么?(高頻|較為重要)
40.為什么Transformer需要PositionEncoding?有哪些位置編碼方式?(高頻|需深度思考)
41.手撕代碼:反轉(zhuǎn)鏈表(遞歸與非遞歸實(shí)現(xiàn))(基本必考|重復(fù)度高)
42.講一下Dropout在訓(xùn)練和測試時(shí)的不同行為,以及其底層原理(高頻|較為重要)
43.什么是OccupancyNetwork(占用網(wǎng)絡(luò))?在自動駕駛中有什么應(yīng)用?(近兩年常問|需
深度思考)
44.模型量化(Quantization)了解嗎?PTQ和QAT的區(qū)別是什么?(高頻|適合講項(xiàng)目)
45.介紹一下MAE(MaskedAutoencoders)的預(yù)訓(xùn)練流程(近兩年常問|學(xué)員分享真題)
46.手撕代碼:快速排序(QuickSort)及其時(shí)間復(fù)雜度分析(高頻|重復(fù)度高)
47.Python中深拷貝和淺拷貝的區(qū)別(高頻|記住就行)
48.自動駕駛場景中,如何解決遮擋問題?(高頻|需深度思考)
49.了解知識蒸餾(KnowledgeDistillation)嗎?Teacher和Student網(wǎng)絡(luò)是如何交互的?(高
頻|較為重要)
50.最近讀了哪些計(jì)算機(jī)視覺領(lǐng)域的頂會論文?請?jiān)敿?xì)介紹一篇(高頻|考察軟實(shí)力)
51.什么是RoIAlign和RoIPooling?它們的區(qū)別是什么?(高頻|較為重要)
52.對比一下CNN中的池化層(Pooling)和Transformer中的Attention在降維/特征提取上的異
同(高頻|需深度思考)
53.手撕代碼:島嶼數(shù)量(DFS/BFS)(高頻|重復(fù)度高)
54.為什么選擇蔚來?你對自動駕駛行業(yè)的理解是什么?(高頻|考察軟實(shí)力)
55.你認(rèn)為做算法實(shí)習(xí)生最重要的素質(zhì)是什么?(高頻|考察軟實(shí)力)
56.實(shí)習(xí)期間能保證的實(shí)習(xí)時(shí)長和出勤天數(shù)是怎樣的?(高頻|重復(fù)度高)
57.如果項(xiàng)目進(jìn)展不順利,你會如何排查問題并調(diào)整方向?(高頻|考察軟實(shí)力)
58.手撕代碼:尋找數(shù)組中的第K大元素(高頻|重復(fù)度高)
59.介紹一下單目深度估計(jì)(MonocularDepthEstimation)的難點(diǎn)和常見方法(高頻|較為重
要)
60.我問完了,你有什么想問我們的嗎?(面試收尾題)
【蔚來集團(tuán)視覺算法實(shí)習(xí)生】面試題深度解答
Q1:請做一個(gè)自我介紹
?不好的回答示例:
面試官您好,我叫張三,是XX大學(xué)計(jì)算機(jī)專業(yè)的碩士研究生。我主要的研究方向是
計(jì)算機(jī)視覺。在校期間我學(xué)過Python和C++,也讀過很多論文。我有過一段在某公
司的實(shí)習(xí)經(jīng)歷,主要做圖像分類,那個(gè)項(xiàng)目讓我學(xué)到了很多。我很喜歡蔚來的車,
特別是自動駕駛技術(shù),覺得很有前景,所以非常想來這里實(shí)習(xí),希望您能給我一個(gè)
機(jī)會。
為什么這么回答不好:
1.流水賬式陳述,缺乏亮點(diǎn):只是羅列了學(xué)校和技能,沒有結(jié)合具體的量化成果(如“提升
了多少精度”、“優(yōu)化了多少耗時(shí)”),面試官無法捕捉到候選人的核心競爭力。
2.實(shí)習(xí)經(jīng)歷描述過虛:僅提到“做圖像分類”和“學(xué)到很多”,卻未提及具體解決了什么難點(diǎn)、
使用了什么SOTA模型或Trick,顯得專業(yè)度不足。
3.動機(jī)缺乏深度:對蔚來的向往停留在“喜歡車”和“覺得有前景”的客套話層面,未體現(xiàn)對蔚
來具體感知業(yè)務(wù)(如NAD、Aquila超感系統(tǒng))的調(diào)研和理解。
高分回答示例:
面試官好,我是XX大學(xué)模式識別專業(yè)的碩士研究生張三。我目前的求職意向是視覺
感知算法實(shí)習(xí)生,我的核心競爭力主要體現(xiàn)在以下三點(diǎn):
1.扎實(shí)的算法落地能力:我熟悉PyTorch框架及TensorRT部署,在上一段獨(dú)角獸企業(yè)的實(shí)習(xí)
中,我負(fù)責(zé)單目3D檢測模型的輕量化工作。面對邊緣端算力受限的痛點(diǎn),我通過引入結(jié)
構(gòu)化剪枝和知識蒸餾策略,在保持mAP僅下降0.5%的前提下,將推理延遲從45ms降低至
28ms,成功在Orin平臺上落地。
2.敏銳的學(xué)術(shù)復(fù)現(xiàn)能力:我長期關(guān)注CVPR/ICCV頂會,曾在GitHub復(fù)現(xiàn)過Swin
Transformer和DETR源碼,并針對遮擋場景下的小目標(biāo)檢測問題,提出了一種基于注意力
機(jī)制的特征融合模塊,相關(guān)論文目前在投。這讓我具備了快速理解并改進(jìn)新算法的能力。
3.極高的崗位匹配度:我非常認(rèn)可蔚來全棧自研的策略,特別是對BEV感知和多傳感器融
合很感興趣。我深入研讀過蔚來關(guān)于OccupancyNetwork的技術(shù)分享,相信我的工程落地
經(jīng)驗(yàn)?zāi)芸焖龠m配團(tuán)隊(duì)在量產(chǎn)車感知算法上的迭代需求。
Q2:請?jiān)敿?xì)介紹一段你覺得最具挑戰(zhàn)性的項(xiàng)目經(jīng)歷,重點(diǎn)講你在其中的貢獻(xiàn)
?不好的回答示例:
我之前做過一個(gè)交通標(biāo)志檢測的項(xiàng)目。這個(gè)項(xiàng)目主要就是用YOLOv5去識別路邊的
牌子。最開始效果不好,因?yàn)閿?shù)據(jù)比較少,后來我就去網(wǎng)上找了很多開源數(shù)據(jù)集加
進(jìn)去。然后我還調(diào)了一些超參數(shù),比如學(xué)習(xí)率和BatchSize。最后模型的效果提升
了,準(zhǔn)確率達(dá)到了90%以上。這個(gè)項(xiàng)目讓我熟悉了目標(biāo)檢測的整個(gè)流程,也學(xué)會了
怎么處理數(shù)據(jù),我覺得挺有挑戰(zhàn)的。
為什么這么回答不好:
1.挑戰(zhàn)點(diǎn)定義模糊:“數(shù)據(jù)少”是通用問題,不夠硬核。未能定義出具體的場景難點(diǎn)(如嚴(yán)重
遮擋、極端光照、長尾分布等),導(dǎo)致解決思路顯得平平無奇。
2.歸因過于簡單:僅僅通過“加數(shù)據(jù)”和“調(diào)參”解決問題,這是初級煉丹師的操作,無法體現(xiàn)
候選人對模型架構(gòu)、損失函數(shù)或數(shù)據(jù)增強(qiáng)深層原理的思考。
3.缺乏個(gè)人核心貢獻(xiàn):敘述中使用了通用的“我做了...”,沒有將“團(tuán)隊(duì)的工作”和“我的獨(dú)創(chuàng)性
改進(jìn)”剝離,面試官無法判斷這90%的準(zhǔn)確率主要?dú)w功于開源模型本身還是候選人的優(yōu)
化。
高分回答示例:
我想介紹在邁向L4自動駕駛項(xiàng)目中,負(fù)責(zé)“夜間雨天場景下紅綠燈檢測”的經(jīng)歷。該
項(xiàng)目的核心挑戰(zhàn)在于:夜間雨水在路面形成倒影,導(dǎo)致傳統(tǒng)檢測器極易將地面反光
誤檢為紅綠燈,且遠(yuǎn)距離小目標(biāo)僅占圖像10x10像素,極易漏檢。
1.針對誤檢問題的HardSample挖掘:我首先分析了BadCase,發(fā)現(xiàn)誤檢主要集中在強(qiáng)
反光區(qū)域。我沒有簡單加數(shù)據(jù),而是設(shè)計(jì)了一種基于顏色的自適應(yīng)閾值過濾算法進(jìn)行預(yù)處
理,并針對性地構(gòu)建了NegativeSamples(負(fù)樣本)數(shù)據(jù)集,在訓(xùn)練中引入FocalLoss
重點(diǎn)關(guān)注這些難分樣本,最終將誤檢率降低了15%。
2.針對小目標(biāo)漏檢的架構(gòu)優(yōu)化:我發(fā)現(xiàn)YOLO原生的下采樣倍率過大,導(dǎo)致小目標(biāo)特征丟
失。我修改了FPN結(jié)構(gòu),增加了一個(gè)P2層的高分辨率特征分支,并引入了SPD-Conv(空
間到深度卷積)替代部分StridedConvolution,保留了更多細(xì)粒度特征。
3.結(jié)果量化:最終,該模型在自建的極度困難測試集上,mAP@0.5從基準(zhǔn)的68%提升至
76%,且保持了實(shí)時(shí)性。這個(gè)方案后來被集成到了主線版本中。
Q3:手撕代碼:實(shí)現(xiàn)非極大值抑制(NMS)算法
?不好的回答示例:
NMS就是用來去掉重復(fù)框的。首先我們有一堆預(yù)測出來的框,每個(gè)框都有置信度。
我們先把這些框按置信度排序,選出最高的那個(gè)。然后把剩下的框和這個(gè)最高的框
算IoU。如果IoU大于一個(gè)閾值,比如0.5,就把那個(gè)框刪掉,因?yàn)樗妥罡叩目蛱?/p>
像了。重復(fù)這個(gè)過程,直到?jīng)]有框?yàn)橹埂4a的話,就是寫個(gè)循環(huán),每次取第一
個(gè),算IoU,保留剩下的,最后返回保留的列表。
為什么這么回答不好:
1.邏輯表述缺乏結(jié)構(gòu):雖然大致流程對,但缺乏算法復(fù)雜度的意識,且沒有提到邊界條件
處理(如空數(shù)組檢查)。
2.缺乏代碼細(xì)節(jié):沒有提到具體的坐標(biāo)系處理(x1,y1,x2,y2),也沒有提到在計(jì)算IoU時(shí)如
何利用向量化操作(Vectorization)來加速,這在Python中非常重要。
3.未體現(xiàn)優(yōu)化思維:沒有提及Soft-NMS或IoU-GuidedNMS等進(jìn)階變體,顯得知識面僅停
留在基礎(chǔ)教材層面。
高分回答示例:
NMS是目標(biāo)檢測后處理的核心步驟。實(shí)現(xiàn)邏輯如下:首先,輸入包含所有預(yù)測框的
坐標(biāo)和置信度得分。
1.預(yù)處理與排序:
首先判斷輸入是否為空。如果不為空,根據(jù)置信度Score對所有框進(jìn)行降序排
列。這一步是為了優(yōu)先保留最高質(zhì)量的檢測結(jié)果。
2.循環(huán)抑制(核心邏輯):
創(chuàng)建一個(gè)列表keep用于存儲最終結(jié)果。在循環(huán)中,每次取出得分最高的框A加入
keep。然后,計(jì)算框A與剩余所有框B_i的IoU(交并比)。
在計(jì)算Intersection時(shí),利用xx1=np.maximum(x1[i],x1[order[1:]])等向量化操
作,避免Python層面的for循環(huán),大幅提升效率。
計(jì)算出IoU后,保留那些IoU小于閾值(如0.5)的框,因?yàn)榇笥陂撝档谋灰暈橹貜?fù)檢測
予以剔除。
更新剩余框列表,重復(fù)直至列表為空。
3.代碼關(guān)鍵點(diǎn):
在實(shí)現(xiàn)時(shí),我會特別注意坐標(biāo)的(x2-x1+1)是否需要加1(取決于像素定
義),以及防止分母為0的情況。此外,對于Dense場景,為了避免遮擋目標(biāo)被
誤刪,實(shí)際項(xiàng)目中我可能會考慮Soft-NMS,即通過衰減得分而非直接刪除來保
留部分高重疊框。
Q4:Transformer和CNN在計(jì)算機(jī)視覺任務(wù)中的區(qū)別與優(yōu)劣勢對比
?不好的回答示例:
CNN是主要用卷積核提取特征,像ResNet、VGG這些。Transformer是用
Attention機(jī)制,像ViT。CNN的優(yōu)勢是速度快,參數(shù)少一點(diǎn),適合做實(shí)時(shí)任務(wù)。
Transformer的效果一般更好,但是它需要的數(shù)據(jù)量很大,訓(xùn)練起來很慢,顯存占
用也高?,F(xiàn)在大模型都用Transformer。CNN主要看局部,Transformer看全局。
為什么這么回答不好:
1.理論深度極淺:僅停留在“速度快/慢”、“效果好/壞”的表象對比,未觸及“歸納偏置
(InductiveBias)”這一核心概念。
2.片面化理解:簡單地說“Transformer效果一般更好”是不嚴(yán)謹(jǐn)?shù)?,在小?shù)據(jù)集上CNN往往
優(yōu)于Transformer。
3.缺乏底層機(jī)制對比:未能對比權(quán)重共享(WeightSharing)與動態(tài)權(quán)重(Dynamic
Weight)的區(qū)別,也未提及位置編碼在兩者中的不同地位。
高分回答示例:
這兩種架構(gòu)的本質(zhì)區(qū)別在于歸納偏置(InductiveBias)**和**感受野的構(gòu)建方
式。
1.歸納偏置與特征提?。?/p>
CNN具有很強(qiáng)的歸納偏置,即平移不變性和局部性。卷積核在全圖滑動共享權(quán)重,這
使得CNN在小數(shù)據(jù)集上極其高效,容易收斂,且天然適合提取邊緣紋理等底層特征。
Transformer(ViT)**則通過Self-Attention建立像素(Patch)間的長程依賴,它的
歸納偏置很弱。這意味著它需要海量數(shù)據(jù)(如JFT-300M)來“學(xué)習(xí)”空間關(guān)系,但在大
數(shù)據(jù)集下上限更高,且具有**動態(tài)權(quán)重特性(根據(jù)輸入內(nèi)容調(diào)整關(guān)注點(diǎn))。
2.感受野(ReceptiveField):
CNN的感受野隨網(wǎng)絡(luò)深度線性或線性累積增加,淺層只能看局部。
Transformer在第一層就能通過GlobalAttention擁有全局感受野,這在處理多模態(tài)融合
或大跨度目標(biāo)檢測時(shí)優(yōu)勢明顯。
3.計(jì)算復(fù)雜度與部署:
CNN的時(shí)間復(fù)雜度通常與圖像尺寸呈線性關(guān)系。
標(biāo)準(zhǔn)Transformer的Self-Attention復(fù)雜度是,對高分辨率圖像極不友好。因此,
在蔚來這種對實(shí)時(shí)性要求極高的自動駕駛場景中,我們通常會采用SwinTransformer這
樣的窗口機(jī)制,或者CNN-Transformer混合架構(gòu)(如DETR的Backbone仍常選用
ResNet)來平衡精度與速度。
Q5:講一下BatchNormalization(BN)的原理、作用及在訓(xùn)練推理時(shí)的區(qū)別
?不好的回答示例:
BN就是批歸一化。它的原理是把每一層的輸出減去均值再除以方差,變成標(biāo)準(zhǔn)正態(tài)
分布。作用是防止梯度消失,還能加快訓(xùn)練速度,防止過擬合。在訓(xùn)練的時(shí)候,是
用當(dāng)前Batch的均值和方差。在推理的時(shí)候,因?yàn)闆]有Batch了,所以要用別的方
法,好像是用訓(xùn)練時(shí)候算好的全局均值和方差。具體公式就是除以sigma。
為什么這么回答不好:
1.公式描述不完整:漏掉了至關(guān)重要的可學(xué)習(xí)參數(shù)(縮放)和(平移)。沒有這兩個(gè)
參數(shù),BN會破壞網(wǎng)絡(luò)已學(xué)到的特征分布,限制網(wǎng)絡(luò)表達(dá)能力。
2.推理機(jī)制解釋模糊:僅僅說“別的方法”,沒有準(zhǔn)確說出是使用移動平均(Running
Mean/Variance)在訓(xùn)練過程中統(tǒng)計(jì)出來的。
3.原理層面缺失:未提及InternalCovariateShift(內(nèi)部協(xié)變量偏移)這一經(jīng)典解釋,雖然
學(xué)術(shù)界有爭議,但這是標(biāo)準(zhǔn)答案的一部分。
高分回答示例:
BatchNormalization旨在解決深度網(wǎng)絡(luò)中的InternalCovariateShift(內(nèi)部協(xié)
變量偏移)問題。
1.基本原理與公式:
BN首先對當(dāng)前Batch的數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化:,使其均值為0方差為
1。
關(guān)鍵點(diǎn)在于:接著會通過兩個(gè)可學(xué)習(xí)參數(shù)和進(jìn)行線性變換:。
這一步是為了恢復(fù)網(wǎng)絡(luò)的表達(dá)能力,如果,則可以恢復(fù)原始分布,
這保證了BN至少不會降低模型性能。
2.訓(xùn)練與推理的嚴(yán)格區(qū)分:
訓(xùn)練時(shí):使用當(dāng)前Batch的統(tǒng)計(jì)量()進(jìn)行歸一化。同時(shí),模型會維護(hù)一對全
局統(tǒng)計(jì)量(RunningMean/Var),通過動量更新策略(Momentum)不斷追蹤整個(gè)數(shù)
據(jù)集的分布。
推理時(shí):單張圖片輸入沒有Batch概念,必須使用訓(xùn)練期累計(jì)下來的全局Running
Mean和RunningVar進(jìn)行歸一化,且參數(shù)被固定。
3.作用:
BN平滑了優(yōu)化地形(OptimizationLandscape),允許使用更大的學(xué)習(xí)率,顯
著加速收斂;同時(shí)引入了少量的噪聲(受Batch采樣影響),具有輕微的正則化
效果,能緩解過擬合。
Q6:手撕代碼:計(jì)算兩個(gè)矩形框的IoU(交并比)
?不好的回答示例:
IoU就是交集除以并集。假設(shè)有兩個(gè)框box1和box2。我們先算交集的面積。先找交
集矩形的左上角,是兩個(gè)框左上角坐標(biāo)取大的那個(gè)。右下角是取小的那個(gè)。然后寬
就是x2-x1,高就是y2-y1。交集面積就是寬乘以高。并集面積就是兩個(gè)框面積加起
來減去交集。最后除一下就行了。要注意寬和高如果小于0要變成0。
為什么這么回答不好:
1.變量命名混亂:純口述極其容易讓面試官聽暈,缺乏結(jié)構(gòu)化的輸入輸出定義(如box=
[x1,y1,x2,y2])。
2.關(guān)鍵邏輯缺失:提到了“小于0變成0”,但沒有強(qiáng)調(diào)這是在計(jì)算交集寬/高時(shí)的關(guān)鍵步驟m
ax(0,...),這是最容易寫bug的地方。
3.除零錯(cuò)誤風(fēng)險(xiǎn):未提及當(dāng)并集面積為0(雖然極少見,但作為健壯代碼需考慮)或極小值
時(shí)的防除零處理(EPS)。
高分回答示例:
IoU是評估檢測精度的基石。計(jì)算函數(shù)通常接收兩個(gè)框box1,box2,格式為[x1,
y1,x2,y2]。
1.計(jì)算交集(Intersection)坐標(biāo):
首先確定交集矩形的幾何邊界。
左上角xx1=max(box1[0],box2[0]),yy1=max(box1[1],box2[1])
右下角xx2=min(box1[2],box2[2]),yy2=min(box1[3],box2[3])
2.計(jì)算有效交集面積:
這是最容易出錯(cuò)的點(diǎn)。必須考慮兩個(gè)框完全不相交的情況。
w=max(0,xx2-xx1)
h=max(0,yy2-yy1)
inter_area=w*h
如果不用max(0,...),不相交時(shí)坐標(biāo)相減為負(fù),乘積可能變成正數(shù),導(dǎo)致邏輯錯(cuò)
誤。
3.計(jì)算并集(Union)與比率:
box1_area=(box1[2]-box1[0])*(box1[3]-box1[1])
box2_area=(box2[2]-box2[0])*(box2[3]-box2[1])
union_area=box1_area+box2_area-inter_area
最后返回inter_area/(union_area+1e-6),添加Epsilon防止除零異常。在
Pytorch中,我會直接使用torch.max和廣播機(jī)制來實(shí)現(xiàn)批量IoU計(jì)算。
Q7:詳細(xì)推導(dǎo)一下Self-Attention的計(jì)算過程和時(shí)間復(fù)雜度
?不好的回答示例:
Self-Attention就是Q、K、V三個(gè)矩陣。輸入X,分別乘上三個(gè)權(quán)重矩陣得到
QKV。然后Q和K轉(zhuǎn)置相乘,算出一個(gè)分?jǐn)?shù)。這個(gè)分?jǐn)?shù)要經(jīng)過Softmax。然后結(jié)果再
乘以V。這就是輸出。時(shí)間復(fù)雜度大概是N平方吧,因?yàn)橐仃囅喑?。如果是圖像的
話,N就是像素個(gè)數(shù),所以圖像大了就算不動了。
為什么這么回答不好:
1.缺乏數(shù)學(xué)嚴(yán)謹(jǐn)性:漏掉了核心的**縮放因子**。沒有這個(gè)縮放,點(diǎn)積結(jié)果會很大,
導(dǎo)致Softmax進(jìn)入飽和區(qū),梯度消失。
2.維度描述缺失:沒有說明Q、K、V的具體維度(),導(dǎo)致后續(xù)推導(dǎo)復(fù)雜度的依據(jù)
不足。
3.復(fù)雜度分析粗糙:只說了,沒有區(qū)分計(jì)算AttentionMap和加權(quán)求和V的兩個(gè)階
段,也沒有體現(xiàn)出Embedding維度的影響。
高分回答示例:
Self-Attention的核心公式是:。假設(shè)輸入
序列長度為,特征維度為。
1.計(jì)算過程:
線性映射:輸入()分別乘以(),得到,這一
步復(fù)雜度為。
相似度計(jì)算:計(jì)算,得到的AttentionMap。這一步進(jìn)行了次點(diǎn)
積,復(fù)雜度為。這里必須除以,是為了防止點(diǎn)積數(shù)值過大導(dǎo)致
Softmax梯度極小。
加權(quán)求和:將的權(quán)重矩陣與()相乘,得到最終輸出。復(fù)雜度為
。
2.時(shí)間復(fù)雜度瓶頸:
總時(shí)間復(fù)雜度為。在視覺任務(wù)中,N是圖像Patch數(shù)量(
)。
當(dāng)圖像分辨率較高時(shí),項(xiàng)占主導(dǎo),計(jì)算量呈二次方爆炸。這就是為什么ViT很
難直接處理高分辨率圖像,而需要像SwinTransformer那樣引入窗口注意力機(jī)
制,將復(fù)雜度降為線性的原因。
Q8:介紹一下YOLO系列算法的演變(從v1到v8),重點(diǎn)談?wù)凙nchor-based
和Anchor-free的區(qū)別
?不好的回答示例:
YOLOv1是最早的,把檢測當(dāng)回歸做,但是不好用。v2加了Anchor,v3加了多尺
度,效果好很多。v4用了Mosaic和CSPNet。v5是現(xiàn)在用的最多的,工程化做得
好。v8是最新的,變成了Anchor-free。Anchor-based就是需要預(yù)先設(shè)定框,
Anchor-free就是不需要框,直接預(yù)測點(diǎn)。Anchor-free更靈活,因?yàn)椴恍枰{(diào)
Anchor的大小了。
為什么這么回答不好:
1.演變邏輯斷層:只是羅列版本號,沒有講出“技術(shù)痛點(diǎn)驅(qū)動更新”的邏輯(例如:v2引入
Anchor是為了解決召回率低,v3引入FPN是為了解決小目標(biāo)檢測差)。
2.核心概念解釋淺?。簩nchor-free的解釋僅停留在“不需要框”,未觸及正負(fù)樣本匹配策
略(Assigner)的本質(zhì)變化(如SimOTA,TaskAlignedAssigner)。
3.缺乏對DecoupledHead的認(rèn)知:v8除了Anchor-free,極其重要的改進(jìn)是分類與回歸的
解耦頭(DecoupledHead),這點(diǎn)未提及。
高分回答示例:
YOLO系列的演變是一部不斷平衡精度與速度、從經(jīng)驗(yàn)主義走向這一自適應(yīng)的進(jìn)化
史。
1.v1-v3(Anchor時(shí)代的建立):YOLOv1開創(chuàng)了One-stage先河,但定位誤差大。v2引入
了AnchorBox機(jī)制,顯著提升了召回率。v3引入了Darknet53和類似FPN的多尺度預(yù)
測,徹底解決了小目標(biāo)檢測難題,確立了工業(yè)界地位。
2.v4-v5(工程化巔峰):這一時(shí)期重點(diǎn)在于Backbone優(yōu)化(CSPNet)和數(shù)據(jù)增強(qiáng)
(Mosaic,Mixup)。v5并沒有大的架構(gòu)突破,但在工程落地(自適應(yīng)Anchor、Focus
層、極簡部署)上做到了極致。
3.v6-v8(Anchor-free回歸):
Anchor-based的痛點(diǎn):需要針對不同數(shù)據(jù)集聚類設(shè)計(jì)Anchor,且大量Anchor導(dǎo)致正
負(fù)樣本極端不平衡,計(jì)算量大。
Anchor-free(YOLOv8):v8摒棄了Anchor,采用Center-based的方法,直接預(yù)測目
標(biāo)的中心點(diǎn)和到四邊的距離。更重要的是,它引入了SimOTA或TaskAligned
Assigner等動態(tài)標(biāo)簽分配策略,不再根據(jù)IoU死板分配正樣本,而是根據(jù)分類和回歸的
綜合質(zhì)量動態(tài)分配,這才是性能提升的核心。此外,v8采用了DecoupledHead,將
分類和回歸分支解耦,加快了收斂。
Q9:常見的損失函數(shù)有哪些?請解釋FocalLoss是如何解決正負(fù)樣本不平衡問
題的
?不好的回答示例:
常見的Loss有MSE、CrossEntropy。檢測里還有IoULoss、GIoULoss。Focal
Loss主要是為了解決正負(fù)樣本不平衡,比如背景太多了。它在交叉熵前面加了一個(gè)
權(quán)重。如果是容易分類的樣本,權(quán)重就小一點(diǎn);難分類的樣本,權(quán)重就大一點(diǎn)。這
樣模型就會多關(guān)注難分的樣本,效果就好了。
為什么這么回答不好:
1.公式描述缺失:面試算法崗,核心Loss必須能寫出數(shù)學(xué)形式,僅口語化描述“加了個(gè)權(quán)
重”不夠?qū)I(yè)。
2.混淆概念:沒有區(qū)分清楚類別不平衡(參數(shù))和難易樣本不平衡(參數(shù))的區(qū)別。
FocalLoss同時(shí)處理了這兩個(gè)問題,但回答只籠統(tǒng)說了一個(gè)。
3.缺乏對梯度的視角:這里的“權(quán)重變小”本質(zhì)上是主導(dǎo)了梯度的貢獻(xiàn),未從梯度傳播角度解
釋模型訓(xùn)練的動態(tài)。
高分回答示例:
在視覺任務(wù)中,分類常用CrossEntropy(CE),回歸常用L1/L2/SmoothL1及IoU
系列(GIoU,DIoU,CIoU)。關(guān)于FocalLoss,它主要由RetinaNet提出,旨在
解決One-stage檢測器中極端的正負(fù)樣本不平衡(背景框遠(yuǎn)多于目標(biāo)框)及難易樣
本不平衡問題。
1.核心公式:
其中是模型對GroundTruth類別的預(yù)測概率。
2.機(jī)制解析:
解決難易不平衡(ModulatingFactor):引入項(xiàng)(通常)。當(dāng)樣
本被簡單分類時(shí)(例如背景,),該系數(shù)趨近于0,自動降低其Loss貢獻(xiàn)。反
之,對于難分樣本(很?。?,系數(shù)趨近于1,維持Loss。這使得模型訓(xùn)練過程不會
被海量的簡單背景樣本(EasyNegatives)所主導(dǎo)。
解決類別不平衡(Alpha):引入?yún)?shù)。通常給正樣本設(shè)置較高的(如0.25vs
0.75的配置需結(jié)合具體實(shí)現(xiàn)),平衡正負(fù)樣本的總量差異。
3.應(yīng)用場景:
在我的項(xiàng)目中,當(dāng)檢測小目標(biāo)或數(shù)據(jù)存在長尾分布時(shí),用FocalLoss替換標(biāo)準(zhǔn)
CELoss,通常能顯著提升Recall,因?yàn)樗鼜?qiáng)迫模型去“啃”那些難啃的骨頭。
Q10:什么是感受野(ReceptiveField)?如何計(jì)算?
?不好的回答示例:
感受野就是特征圖上一個(gè)點(diǎn)能看到原圖多大的區(qū)域。層數(shù)越深,感受野越大。比如
3x3的卷積,第一層看3x3,第二層看5x5。計(jì)算的話就是一層層加起來。感受野越
大越好,能看到全局信息。如果感受野太小,就檢測不到大物體。
為什么這么回答不好:
1.計(jì)算邏輯錯(cuò)誤:“一層層加起來”是錯(cuò)誤的表述。感受野的計(jì)算是累乘步長(Stride)的,
不僅和KernelSize有關(guān),更和Stride息息相關(guān)。
2.缺乏數(shù)學(xué)公式:沒有給出遞推公式,顯得不夠嚴(yán)謹(jǐn)。
3.結(jié)論絕對化:“感受野越大越好”是錯(cuò)的。對于小目標(biāo)檢測,過大的感受野可能引入過多背
景噪聲,導(dǎo)致特征被淹沒。
高分回答示例:
感受野(RF)定義為卷積神經(jīng)網(wǎng)絡(luò)每一層輸出特征圖上的像素點(diǎn),在輸入圖像上映
射的區(qū)域大小。它是理解CNN捕捉上下文能力的關(guān)鍵。
1.計(jì)算公式(從后向前遞歸):
或者更直觀的從前向后公式:
這里是卷積核大小,是步長??梢钥闯?,Stride(步長)的累積乘積是導(dǎo)致
深層網(wǎng)絡(luò)感受野呈指數(shù)級增長的核心因素,而不僅僅是卷積核大小。
2.有效感受野(EffectiveRF):
理論感受野通常是一個(gè)矩形,但研究表明,像素對輸出的貢獻(xiàn)符合高斯分布,即
中心區(qū)域影響最大。因此,實(shí)際有效的感受野往往比理論值小。
3.實(shí)際意義:
在設(shè)計(jì)網(wǎng)絡(luò)時(shí),我們需要確保輸出層的感受野覆蓋目標(biāo)物體的大小。例如在
YOLO中,DetectHead的大尺度分支(檢測小物體)感受野較小,而小尺度分
支(檢測大物體)感受野必須足夠大,否則網(wǎng)絡(luò)將無法“看全”物體,導(dǎo)致識別錯(cuò)
誤。
Q11:介紹一下ResNet的殘差結(jié)構(gòu)解決了什么問題?為什么有效?
?不好的回答示例:
ResNet主要是解決了梯度消失的問題。以前網(wǎng)絡(luò)做不深,做深了效果反而變差。
ResNet加了一個(gè)Shortcut,把輸入直接加到輸出上,變成H(x)=F(x)+x。這樣
梯度就可以直接傳過去,網(wǎng)絡(luò)就能做得很深了,比如ResNet152。有效是因?yàn)樗?/p>
網(wǎng)絡(luò)更容易訓(xùn)練,不會退化。
為什么這么回答不好:
1.問題定義不精準(zhǔn):ResNet核心解決的是“退化問題(DegradationProblem)”,即深層
網(wǎng)絡(luò)在訓(xùn)練集上的誤差反而比淺層網(wǎng)絡(luò)高,這不同于簡單的梯度消失(可以通過BN解
決)。
2.原理解釋淺層:僅提到“梯度直接傳”,未提及恒等映射(IdentityMapping)在數(shù)學(xué)上的
意義,以及殘差學(xué)習(xí)讓擬合目標(biāo)從變?yōu)闉楹胃菀住?/p>
3.缺乏集成學(xué)習(xí)視角:未提及“ResNet可以被視為多個(gè)淺層網(wǎng)絡(luò)的集成(Ensemble)”這一
深層解釋。
高分回答示例:
ResNet主要解決了深層網(wǎng)絡(luò)中的退化問題(DegradationProblem),即隨著層
數(shù)增加,訓(xùn)練集準(zhǔn)確率反而下降的現(xiàn)象(非過擬合)。
1.殘差單元(ResidualBlock):
ResNet引入了ShortcutConnection,將輸出定義為。這使
得網(wǎng)絡(luò)只需要學(xué)習(xí)輸入與輸出之間的殘差(Residual),而不是直接學(xué)習(xí)
目標(biāo)映射。
2.為什么有效(數(shù)學(xué)視角):
恒等映射的易學(xué)性:如果深層特征已經(jīng)最優(yōu),模型只需將的權(quán)重學(xué)為0,即可
退化為淺層網(wǎng)絡(luò)(實(shí)現(xiàn)恒等映射)。這比學(xué)習(xí)復(fù)雜的非線性變換要容易得
多。
梯度高速公路:在反向傳播時(shí),梯度。這里的保證了
梯度可以直接無損地傳回淺層,有效避免了連乘導(dǎo)致的梯度消失。
3.為什么有效(結(jié)構(gòu)視角):
后續(xù)研究(如Veit等人)表明,ResNet表現(xiàn)得像多個(gè)淺層網(wǎng)絡(luò)的集成。刪除某個(gè)
殘差塊并不會導(dǎo)致網(wǎng)絡(luò)崩潰,說明其路徑具有獨(dú)立性和冗余性。
Q12:你的項(xiàng)目中遇到了哪些過擬合問題?具體采用了哪些手段解決?
?不好的回答示例:
我的項(xiàng)目里模型訓(xùn)練的時(shí)候,訓(xùn)練集準(zhǔn)確率很高,但是測試集很低,這就是過擬
合。解決辦法主要就是加大數(shù)據(jù)集,做了一些翻轉(zhuǎn)、旋轉(zhuǎn)的數(shù)據(jù)增強(qiáng)。然后我還用
了Dropout,設(shè)置成0.5。還有就是用了L2正則化。最后我也試了早停法,效果就好
很多了。
為什么這么回答不好:
1.手段羅列,缺乏針對性:只是背誦了教科書上的防過擬合方法,沒有結(jié)合具體的視覺任
務(wù)(如檢測、分割)說明具體用了哪種技術(shù)(如Cutout,Mixup等)。
2.缺乏深度歸因:沒有分析導(dǎo)致過擬合的具體原因(是模型參數(shù)量過大?還是數(shù)據(jù)分布單
一?),導(dǎo)致解決方案聽起來像“亂槍打鳥”。
3.Dropout在CNN中的特殊性:在現(xiàn)代CNN(特別是ResNet及以后)中,Dropout用得其
實(shí)很少(通常用BN),盲目說用Dropout0.5可能會暴露實(shí)戰(zhàn)經(jīng)驗(yàn)不足。
高分回答示例:
在我的瑕疵檢測項(xiàng)目中,由于缺陷樣本極少(正負(fù)樣本比1:100),模型在訓(xùn)練集
上mAP達(dá)到95%,但測試集僅為60%,出現(xiàn)了嚴(yán)重的過擬合。我采取了以下分層策
略:
1.數(shù)據(jù)層面(強(qiáng)增強(qiáng)):
簡單的旋轉(zhuǎn)翻轉(zhuǎn)不夠,我引入了Mosaic和Mixup增強(qiáng)。特別是Mosaic,它通過
拼接4張圖片,豐富了背景并增加了小目標(biāo)數(shù)量,這不僅擴(kuò)充了數(shù)據(jù),還利用BN
層統(tǒng)計(jì)了更魯棒的分布,這是最有效的手段。
2.模型層面(正則化與結(jié)構(gòu)調(diào)整):
我使用了LabelSmoothing(標(biāo)簽平滑),將One-hot標(biāo)簽軟化(如0.9和0.1/K),防
止模型對預(yù)測過于自信,這顯著提升了泛化能力。
針對小數(shù)據(jù)集,我發(fā)現(xiàn)ResNet50過大,將其替換為MobileNetV3,減少參數(shù)量,降低
了模型記憶噪聲的風(fēng)險(xiǎn)。
3.訓(xùn)練策略:
引入了CosineAnnealing(余弦退火)學(xué)習(xí)率策略和EarlyStopping。最終測
試集mAP提升至82%,且模型在未見過的光照條件下表現(xiàn)更加穩(wěn)定。
Q13:C++基礎(chǔ):虛函數(shù)和純虛函數(shù)的區(qū)別,多態(tài)是如何實(shí)現(xiàn)的?
?不好的回答示例:
虛函數(shù)就是前面加virtual關(guān)鍵字,子類可以重寫它。純虛函數(shù)就是后面寫等于0,沒
有函數(shù)體,子類必須重寫。多態(tài)就是父類指針指向子類對象,調(diào)用虛函數(shù)的時(shí)候,
會運(yùn)行子類的函數(shù)。原理好像是有個(gè)虛函數(shù)表,里面存了函數(shù)地址。
為什么這么回答不好:
1.定義不嚴(yán)謹(jǐn):純虛函數(shù)不是“沒有函數(shù)體”,是可以有的(雖然少見),重點(diǎn)在于強(qiáng)制子類
實(shí)現(xiàn)。
2.機(jī)制解釋太淺:“好像有個(gè)虛函數(shù)表”這種表述非常減分。需要講清楚vptr(虛表指針)存
儲在哪里,vtable(虛表)何時(shí)生成。
3.遺漏關(guān)鍵點(diǎn):未提及虛析構(gòu)函數(shù)的重要性。如果做算法落地(TensorRT/C++),內(nèi)存管
理是核心,不提虛析構(gòu)會導(dǎo)致內(nèi)存泄漏,這是面試官的大忌。
高分回答示例:
這是C++實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)的基礎(chǔ)。
1.定義區(qū)別:
虛函數(shù)(virtualvoidfoo()):父類提供默認(rèn)實(shí)現(xiàn),子類可選擇重寫
(Override)。
純虛函數(shù)(virtualvoidfoo()=0):父類不提供實(shí)現(xiàn)(通常),定義了接口規(guī)
范,包含純虛函數(shù)的類稱為抽象類,無法實(shí)例化,子類必須強(qiáng)制實(shí)現(xiàn)該接口。
2.多態(tài)實(shí)現(xiàn)原理(vptr&vtable):
編譯期:編譯器為每個(gè)包含虛函數(shù)的類創(chuàng)建一個(gè)虛函數(shù)表(vtable),表中存儲該類
對應(yīng)的虛函數(shù)地址。
運(yùn)行期:每個(gè)對象內(nèi)存頭部隱藏著一個(gè)虛表指針(vptr)。當(dāng)使用父類指針調(diào)用虛函
數(shù)時(shí)base_ptr->foo(),程序會根據(jù)對象的vptr找到對應(yīng)的vtable,再查找函數(shù)地址進(jìn)
行動態(tài)綁定(DynamicBinding)。
3.工程實(shí)踐(虛析構(gòu)):
在算法部署工程中,如果使用工廠模式返回基類指針,必須將基類析構(gòu)函數(shù)聲明
為虛函數(shù)。否則,deletebase_ptr只會調(diào)用基類析構(gòu),導(dǎo)致子類申請的內(nèi)存
(如CUDA顯存)無法釋放,造成嚴(yán)重的內(nèi)存泄漏。
Q14:介紹一下BEV(Bird'sEyeView)感知的基本原理及常用的轉(zhuǎn)換方法
?不好的回答示例:
BEV就是鳥瞰圖,把攝像頭的視角轉(zhuǎn)成從天上看下來的樣子。這樣做規(guī)劃比較好,
因?yàn)榫嚯x是真實(shí)的。轉(zhuǎn)換方法有用IPM,就是逆透視變換,假設(shè)路是平的。現(xiàn)在比
較流行用Transformer轉(zhuǎn),比如DETR3D或者BEVFormer。還有一個(gè)叫LSS的方
法。蔚來應(yīng)該也是用這些。
為什么這么回答不好:
1.原理闡述不清:沒點(diǎn)出BEV的核心難點(diǎn)是“2D到3D的深度模糊性(Ill-posed
problem)”,即一個(gè)像素對應(yīng)一條射線。
2.方法對比缺乏深度:只是報(bào)菜名(IPM,LSS,BEVFormer),沒有解釋它們的適用場景
和優(yōu)缺點(diǎn)。例如IPM無法處理顛簸路面,LSS極其依賴深度估計(jì)準(zhǔn)確性。
3.缺乏對Attention機(jī)制的解釋:提到Transformer但沒說Query是什么,Key/Value是什么,
這是考察重點(diǎn)。
高分回答示例:
BEV感知的核心是將多視角攝像頭的2D圖像特征統(tǒng)一轉(zhuǎn)換到以車身為中心的3D
(鳥瞰)坐標(biāo)系下,消除透視畸變,便于后續(xù)規(guī)劃控制。核心難點(diǎn)在于解決深度模
糊性。主流轉(zhuǎn)換方法有三類:
1.基于幾何假設(shè)(IPM):
利用相機(jī)內(nèi)外參和路面平坦假設(shè)進(jìn)行投影。優(yōu)點(diǎn)是計(jì)算快,缺點(diǎn)是路面顛簸或有
障礙物時(shí)會產(chǎn)生嚴(yán)重拉伸畸變,目前僅用于車道線檢測等輔助任務(wù)。
2.基于深度估計(jì)(LSS-Lift,Splat,Shoot):
先預(yù)測每個(gè)像素的離散深度分布(Lift),結(jié)合相機(jī)內(nèi)參將特征點(diǎn)云化,再投射
到BEV網(wǎng)格(Splat)。優(yōu)點(diǎn)是顯式利用了幾何先驗(yàn),缺點(diǎn)是極度依賴深度預(yù)測
的準(zhǔn)確性,且計(jì)算量較大(需高效CumSum算子優(yōu)化)。
3.基于Transformer(Query-based,如BEVFormer):
預(yù)定義一組BEV網(wǎng)格上的GridQueries,通過Cross-Attention機(jī)制,利用相機(jī)
內(nèi)外參索引到對應(yīng)的2D圖像特征區(qū)域進(jìn)行聚合。
蔚來/自動駕駛趨勢:這種方法不依賴顯式深度,端到端學(xué)習(xí)能力強(qiáng),且容易融合
LiDAR特征,是目前SOTA的主流方向。我了解到蔚來的NAD系統(tǒng)也在向
BEV+Transformer架構(gòu)演進(jìn)。
Q15:優(yōu)化器對比:SGD、Momentum、Adam和AdamW的區(qū)別是什么?
?不好的回答示例:
SGD就是隨機(jī)梯度下降,每次選一個(gè)樣本更新,震蕩很大。Momentum加了動量,
能沖過局部極小值。Adam是自適應(yīng)的,每個(gè)人學(xué)習(xí)率不一樣,收斂快,但是容易
過擬合。AdamW就是Adam加了權(quán)重衰減。一般現(xiàn)在都用AdamW,效果最好。
為什么這么回答不好:
1.AdamW的核心改進(jìn)沒講對:僅僅說“加了權(quán)重衰減”是不準(zhǔn)確的。Adam也有L2正則,
AdamW的區(qū)別在于解耦(Decoupled)了WeightDecay和梯度更新,這才是關(guān)鍵。
2.缺乏對“二階動量”的描述:解釋Adam時(shí)未提及它利用了梯度的均值(一階)和未中心化
的方差(二階)來動態(tài)調(diào)整學(xué)習(xí)率。
3.SGD的優(yōu)勢未提及:雖然Adam快,但SGD+Momentum往往能收斂到更好的泛化解,很
多Top級論文(如ResNet,ViT)最終SOTA還是靠SGD跑出來的。
高分回答示例:
這幾種優(yōu)化器的演進(jìn)主要圍繞加速收斂和提升泛化能力展開。
1.SGD與Momentum:
SGD更新方向完全依賴當(dāng)前Batch,震蕩大。Momentum引入了一階動量(慣
性),更新量由當(dāng)前梯度和歷史更新方向共同決定。這不僅加速了收斂,還能借
慣性沖出鞍點(diǎn)或局部極小值。
2.Adam(AdaptiveMomentEstimation):
結(jié)合了Momentum(一階動量)和RMSProp(二階動量,即梯度的平方)。它
能為每個(gè)參數(shù)自適應(yīng)調(diào)整學(xué)習(xí)率:梯度大的參數(shù)步長小,梯度小的步長大了。
缺點(diǎn):這里的L2正則化通常被實(shí)現(xiàn)為加在梯度上,這在自適應(yīng)學(xué)習(xí)率下會導(dǎo)致正則化
力度不均勻,導(dǎo)致泛化性往往不如SGD。
3.AdamW(AdamwithDecoupledWeightDecay):
這是Transformer訓(xùn)練的標(biāo)配。它修正了Adam中L2正則化的實(shí)現(xiàn)方式,將
WeightDecay直接作用于權(quán)重參數(shù)本身,而不是混合在梯度中。這種解耦讓權(quán)
重衰減獨(dú)立于學(xué)習(xí)率,使得模型在保持Adam快速收斂的同時(shí),獲得了類似SGD
的優(yōu)異泛化性能。
Q16:手撕代碼:實(shí)現(xiàn)K-Means聚類算法
?不好的回答示例:
K-Means就是先隨機(jī)選K個(gè)點(diǎn)當(dāng)中心。然后算每個(gè)點(diǎn)到這K個(gè)中心的距離,離誰近
就歸誰。分好類之后,算每個(gè)類的平均值,變成新的中心。一直重復(fù),直到中心不
動了。代碼的話寫個(gè)while循環(huán),里面算距離,更新中心,判斷一下如果不動了就
break。
為什么這么回答不好:
1.初始化風(fēng)險(xiǎn)未提及:K-Means對初始化非常敏感,隨機(jī)初始化可能導(dǎo)致陷入局部最優(yōu)
(如兩個(gè)中心擠在一起)。雖然不要求寫K-Means++,但口頭必須提到這點(diǎn)。
2.收斂條件單一:僅說“中心不動”,實(shí)際代碼中通常還需要設(shè)置最大迭代次數(shù)(Max
Iterations),防止死循環(huán)。
3.距離計(jì)算細(xì)節(jié):未提及利用廣播(Broadcasting)機(jī)制批量計(jì)算距離,如果是寫Python
代碼,用for循環(huán)逐點(diǎn)計(jì)算距離是極其低效的,面試官會認(rèn)為工程能力弱。
高分回答示例:
K-Means的核心是EM算法思想(Expectation-Maximization)。代碼實(shí)現(xiàn)主要包
含三個(gè)步驟:
1.初始化:
隨機(jī)選擇K個(gè)樣本作為初始質(zhì)心(Centroids)。為了避免局部最優(yōu),實(shí)際工程中
我會使用**K-Means++**策略(即選距離已有中心越遠(yuǎn)的點(diǎn)越大概率成為新中
心),但手寫基礎(chǔ)版可先隨機(jī)選。
2.迭代循環(huán)(Assignment&Update):
E步(歸類):計(jì)算所有樣本與個(gè)質(zhì)心的歐氏距離。這里利用
廣播機(jī)制:dist=((X[:,None]-Centroids[None,:])**2).sum(axis=2),得
到矩陣,通過argmin找到每個(gè)樣本所屬的簇。
M步(更新):對歸屬同一簇的樣本求均值,作為新的質(zhì)心。注意處理空簇的情況
(即某簇沒有樣本),需重新隨機(jī)初始化該質(zhì)心。
3.終止條件:
判斷新舊質(zhì)心的位移變化是否小于閾值(Tol),或者達(dá)到最大迭代次數(shù)
(Max_Iter)。
Q17:講一下L1正則化和L2正則化的區(qū)別及幾何解釋
?不好的回答示例:
L1是絕對值,L2是平方。L1能讓權(quán)重變成0,產(chǎn)生稀疏解,可以用來做特征選擇。
L2是讓權(quán)重變小,但是不會變成0,叫權(quán)重衰減。幾何上,L1是菱形,L2是圓形。
因?yàn)榱庑斡屑饨?,所以容易相交在坐?biāo)軸上,就是0了。圓形不容易碰到軸,所以
只是變小。
為什么這么回答不好:
1.描述過于通俗:“不容易碰到軸”這種說法不夠數(shù)學(xué)化。應(yīng)該解釋等高線(Contour)**與
**約束域的相切問題。
2.貝葉斯視角缺失:高級算法崗?fù)ǔF诖牭截惾~斯先驗(yàn)的解釋(L1對應(yīng)拉普拉斯先驗(yàn),
L2對應(yīng)高斯先驗(yàn))。
3.應(yīng)用場景不明:未結(jié)合深度學(xué)習(xí)現(xiàn)狀——為什么現(xiàn)在主流(如ResNet/Transformer)多
用L2(WeightDecay)而少用L1?(因?yàn)長1不可導(dǎo),且現(xiàn)代網(wǎng)絡(luò)更傾向于保留所有特征
但抑制幅值)。
高分回答示例:
它們都是在Loss中引入罰項(xiàng)以限制模型復(fù)雜度,防止過擬合。
1.數(shù)學(xué)與功能區(qū)別:
L1(Lasso):添加權(quán)重絕對值之和。它的梯度是常數(shù)(符號函數(shù)),能使權(quán)
重強(qiáng)行歸零,產(chǎn)生稀疏解,常用于特征選擇。
L2(Ridge):添加權(quán)重平方和。它的梯度與線性相關(guān),使權(quán)重趨向于0但
不為0(平滑),防止單個(gè)特征主導(dǎo)模型,提升魯棒性。
2.幾何解釋(帶約束的優(yōu)化):
將正則化視為約束條件(或)。
Loss函數(shù)的等高線向中心收縮時(shí),會與約束域相切。
L2的約束域是圓/球,切點(diǎn)通常在圓周上,很難正好落在坐標(biāo)軸上。
L1的約束域是菱形/多面體,其“尖角”突起在坐標(biāo)軸上。等高線極大概率優(yōu)先接觸到這
些尖角,導(dǎo)致部分維度權(quán)重為0。
3.貝葉斯視角:
L1相當(dāng)于引入了拉普拉斯先驗(yàn)(LaplacePrior),L2相當(dāng)于引入了高斯先驗(yàn)
(GaussianPrior)。
Q18:在目標(biāo)檢測中,mAP是如何計(jì)算的?Precision和Recall的定義是什么?
?不好的回答示例:
Precision是查準(zhǔn)率,Recall是查全率。Precision=TP/(TP+FP),Recall=
TP/(TP+FN)。mAP就是MeanAveragePrecision。先算每個(gè)類的AP,然后取
平均。AP就是PR曲線下的面積。TP就是檢測對了,F(xiàn)P是檢測錯(cuò)了。FN是漏檢
了。計(jì)算的時(shí)候要看IoU,IoU大于0.5就算TP。
為什么這么回答不好:
1.TP定義不嚴(yán)謹(jǐn):僅僅說“IoU大于0.5”是不夠的。必須強(qiáng)調(diào)“IoU>閾值且置信度>閾值”
且“同一GT只能被匹配一次”(去重邏輯),否則多重檢測會被誤算為多個(gè)TP。
2.AP計(jì)算邏輯簡化:現(xiàn)在的COCO標(biāo)準(zhǔn)mAP不是簡單的曲線積分,而是平滑插值(比如11
點(diǎn)插值或101點(diǎn)插值)后的面積,這點(diǎn)細(xì)節(jié)能體現(xiàn)專業(yè)度。
3.mAP的具體含義混淆:COCOmAP通常指mAP@[.5:.95],即在不同IoU閾值下的平均
值,而不僅僅是IoU=0.5的情況。
高分回答示例:
mAP(MeanAveragePrecision)是衡量檢測器綜合性能的指標(biāo)。
1.基礎(chǔ)定義:
Precision(精確率):,即“檢出的框里有多少是對的”。
Recall(召回率):,即“所有的真值里檢出了多少”。
TP判定:預(yù)測框與GT的IoU>閾值(如0.5),且該GT未被其他更高分的預(yù)測框匹配
(唯一性)。
2.AP(AveragePrecision)計(jì)算:
我們將所有預(yù)測框按置信度排序,逐個(gè)納入計(jì)算,得到一系列(R,P)點(diǎn),繪制P-
R曲線。AP即為該曲線下的面積。
平滑處理:實(shí)際上,通常采用插值法(如PascalVOC的11點(diǎn)或COCO的101點(diǎn)),即
對每個(gè)Recall值,取,保證曲線單調(diào)遞減,消除“鋸
齒”波動。
3.mAP@[.5:.95]:
現(xiàn)在的標(biāo)準(zhǔn)(如COCO)不僅計(jì)算IoU=0.5時(shí)的AP,而是計(jì)算IoU從0.5到0.95
(步長0.05)共10個(gè)閾值下的AP,然后求平均。這要求模型不僅要“框住”,還
要“框得準(zhǔn)(位置貼合)”,這對自動駕駛等高精場景尤為重要。
Q19:對于小目標(biāo)檢測難點(diǎn),你有什么具體的改進(jìn)思路?
?不好的回答示例:
小目標(biāo)難檢測是因?yàn)橄袼靥倭?,特征都沒了。改進(jìn)的話,可以把圖片放大再輸進(jìn)
去?;蛘哂枚喑叨扔?xùn)練。還可以用FPN,把深層和淺層特征融合一下。另外就是
Loss上面改一下,把小目標(biāo)的權(quán)重調(diào)大一點(diǎn)。我覺得數(shù)據(jù)增強(qiáng)也很重要,比如多復(fù)
制幾個(gè)小目標(biāo)貼到圖里。
為什么這么回答不好:
1.思路散亂:缺乏系統(tǒng)性框架(輸入端、模型端、Loss端、后處理端)。
2.技術(shù)術(shù)語匱乏:“復(fù)制幾個(gè)貼進(jìn)去”應(yīng)該表述為Copy-Paste或Mosaic。
3.未觸及本質(zhì):沒提到下采樣率(Stride)的問題?,F(xiàn)有網(wǎng)絡(luò)通常下采樣32倍,小目標(biāo)可
能在FeatureMap上只剩不到1個(gè)點(diǎn),這才是核心痛點(diǎn)。
高分回答示例:
小目標(biāo)檢測(如遠(yuǎn)處的交通燈、行人)主要難在特征在下采樣中丟失及正樣本匹配
匱乏。我的改進(jìn)思路主要分為三點(diǎn):
1.數(shù)據(jù)增強(qiáng)與輸入端:
Copy-Paste/Mosaic:增加小目標(biāo)出現(xiàn)的頻次和背景多樣性。
SAHI(SlicingAidedHyperInference):針對高分辨率圖,采用切片推理。將大圖
切成重疊小塊分別推理,再合并結(jié)果,相當(dāng)于物理上放大了小目標(biāo),這在工程上極有
效。
2.模型架構(gòu)優(yōu)化:
減少下采樣倍率:很多Backbone最后Stride=32,我會在FPN中利用空洞卷積
(DilatedConv)替代部分下采樣,或者專門增加P2層(Stride=4)的高分辨率分支,
保留細(xì)粒度特征。
特征融合:加強(qiáng)FPN的橫向連接,甚至使用BiFPN(EfficientDet)來更好地融合深層
語義和淺層紋理。
3.匹配策略與Loss:
Anchor策略:如果是Anchor-based,需重新聚類設(shè)計(jì)更小的Anchor。
動態(tài)匹配(SimOTA):小目標(biāo)IoU通常很低,傳統(tǒng)IoU匹配容易將其丟棄。使用基于
Cost的動態(tài)匹配策略,能讓小目標(biāo)更容易分配到正樣本。
Q20:Python基礎(chǔ):裝飾器(Decorator)的作用和生成器(Generator)的
區(qū)別
?不好的回答示例:
裝飾器就是@那個(gè)符號,寫在函數(shù)上面。它可以給函數(shù)加功能,比如記日志、算時(shí)
間,不用改原來的代碼。生成器就是用yield的函數(shù)。它不會一下把數(shù)據(jù)都算出
來,是用一個(gè)算一個(gè),省內(nèi)存。比如range就是一個(gè)生成器。區(qū)別就是裝飾器是改
函數(shù)的,生成器是產(chǎn)生數(shù)據(jù)的。
為什么這么回答不好:
1.定義不準(zhǔn)確:range在Python3中是迭代器(Iterator)對象,雖然行為像生成器,但嚴(yán)
格來說生成器是指帶yield的函數(shù)。
2.裝飾器原理未解釋:沒說清楚裝飾器本質(zhì)是閉包(Closure),即接收一個(gè)函數(shù)返回一
個(gè)新函數(shù)。
3.應(yīng)用場景單一:生成器除了省內(nèi)存,在深度學(xué)習(xí)DataLoader中的流式讀取數(shù)據(jù)流
(Streaming)也是核心應(yīng)用,未結(jié)合崗位背景。
高分回答示例:
這兩者是Python的高級特性,在深度學(xué)習(xí)框架開發(fā)中非常常見。
1.裝飾器(Decorator):
原理:本質(zhì)是閉包。它接收一個(gè)函數(shù)作為參數(shù),并返回一個(gè)新的函數(shù),實(shí)現(xiàn)在不修改
原函數(shù)代碼的前提下擴(kuò)展功能(AOP面向切面編程思想)。
應(yīng)用:在我之前的項(xiàng)目中,我寫了一個(gè)@time_limit裝飾器來監(jiān)控推理函數(shù)的耗時(shí);
在PyTorch中,@torch.no_grad()也是典型的上下文管理器/裝飾器用法,用于推理階
段關(guān)閉梯度計(jì)算。
2.生成器(Generator):
原理:使用yield關(guān)鍵字。與普通函數(shù)一次性返回(return)所有結(jié)果不同,生成器
保存執(zhí)行狀態(tài),每次調(diào)用next()時(shí)計(jì)算并返回一個(gè)值,實(shí)現(xiàn)惰性求值(Lazy
Evaluation)。
應(yīng)用:這對AI訓(xùn)練至關(guān)重要。當(dāng)處理TB級的數(shù)據(jù)集時(shí),無法一次性讀入內(nèi)存。我們需
要自定義Dataset,利用生成器機(jī)制,在訓(xùn)練過程中流式(Streaming)讀取硬盤數(shù)據(jù)
并動態(tài)進(jìn)行Augmentation,從而用有限內(nèi)存訓(xùn)練海量數(shù)據(jù)。
Q21:講一下VisionTransformer(ViT)的PatchEmbedding是如何實(shí)現(xiàn)的?
?不好的回答示例:
PatchEmbedding就是把一張圖切成很多小方塊。比如圖片是224x224,Patch大
小是16x16,那就切成了14x14個(gè)塊。然后把每個(gè)塊拉平成一條向量,再經(jīng)過一個(gè)
全連接層(Linear)映射到想要的維度。最后再加上位置編碼輸入到Transformer
里面去。代碼里通常就用循環(huán)或者切片來實(shí)現(xiàn)這個(gè)過程。
為什么這么回答不好:
1.工程實(shí)現(xiàn)認(rèn)知偏差:雖然邏輯上是“切片+全連接”,但在PyTorch等框架的實(shí)際高效實(shí)現(xiàn)
中,幾乎沒人用循環(huán)或切片操作,而是直接使用步長等于核大小的卷積(Conv2d)。
2.遺漏關(guān)鍵Token:忘記提及CLSToken(分類Token)的拼接。ViT在序列頭部加了一個(gè)
可學(xué)習(xí)的CLSToken用于最終分類,這是復(fù)刻BERT的關(guān)鍵設(shè)計(jì)。
3.維度變化描述不清:沒有清晰描述Tensor的維度變換流程(
),這在面試中是考察對數(shù)據(jù)流理解的關(guān)鍵。
高分回答示例:
PatchEmbedding是將2D圖像轉(zhuǎn)化為Transformer能夠處理的1D序列數(shù)據(jù)的關(guān)鍵
步驟。
1.核心實(shí)現(xiàn)(Conv2dTrick):
雖然理論上是分塊鋪平,但在代碼落地時(shí),最高效的方法是使用一個(gè)卷積層。
假設(shè)輸入為,PatchSize為16,輸出維度為768。我們會定義一
個(gè)nn.Conv2d(in=3,out=768,kernel_size=16,stride=16)。
這個(gè)卷積層的步長和核大小一致,意味著它在每個(gè)Patch上滑動一次且不重疊,
直接完成了“分塊+特征映射”兩步。輸出為。
2.Flatten與維度變換:
接著將空間維度拉平(Flatten),得到的序列。
3.特殊Token與位置編碼:
CLSToken:拼接一個(gè)可學(xué)習(xí)的向量到序列頭部,用于后續(xù)匯聚全局分
類信息,此時(shí)序列長度變?yōu)?97。
PositionEmbedding:最后加上一個(gè)同樣形狀的LearnablePositionEmbedding,
以保留空間位置信息,因?yàn)門ransformer本身不具備平移不變性。
Q22:什么是梯度消失和梯度爆炸?如何緩解?
?不好的回答示例:
梯度消失就是網(wǎng)絡(luò)太深了,反向傳播的時(shí)候梯度越乘越小,最后變成0了,前面幾
層就沒法更新參數(shù)。梯度爆炸就是反過來,梯度越乘越大,變成NaN了。緩解的方
法就是用ReLU激活函數(shù),因?yàn)樗鼘?dǎo)數(shù)是1。還有就是用BatchNormalization。或
者把網(wǎng)絡(luò)層數(shù)弄少一點(diǎn)。
為什么這么回答不好:
1.數(shù)學(xué)本質(zhì)解釋不清:未能從鏈?zhǔn)椒▌t(ChainRule)的角度解釋連乘效應(yīng)。即,
當(dāng)多項(xiàng)小于1時(shí)消失,大于1時(shí)爆炸。
2.解決方案不系統(tǒng):只是零散提到了ReLU和BN,未涵蓋初始化策略(He/Xavier)和網(wǎng)絡(luò)
結(jié)構(gòu)設(shè)計(jì)(ResNetShortcut)這兩個(gè)極其重要的方面。
3.爆炸的解法缺失:針對梯度爆炸,最直接且標(biāo)準(zhǔn)的工程解法是梯度裁剪(Gradient
Clipping),回答中未提及。
高分回答示例:
這兩個(gè)問題都源于深度神經(jīng)網(wǎng)絡(luò)反向傳播中的鏈?zhǔn)椒▌t。梯度計(jì)算涉及連續(xù)矩陣乘
法:。
1.成因:
消失:當(dāng)激活函數(shù)導(dǎo)數(shù)(如Sigmoid飽和區(qū))或權(quán)重初始化過小,連乘后
梯度指數(shù)級衰減趨近于0,導(dǎo)致淺層參數(shù)無法更新。
爆炸:當(dāng)權(quán)重初始化過大,連乘后梯度呈指數(shù)級增長,導(dǎo)致權(quán)重更新幅度過大,網(wǎng)絡(luò)
不穩(wěn)定甚至溢出(NaN)。
2.系統(tǒng)性緩解策略:
模型結(jié)構(gòu):使用ResNet殘差連接。梯度可以通過Shortcut路徑直接無損回傳(
),是解決消失問題最有效的結(jié)構(gòu)手段。
激活函數(shù):使用ReLU或LeakyReLU。在正區(qū)間導(dǎo)數(shù)恒為1,避免了Sigmoid導(dǎo)數(shù)最
大只有0.25導(dǎo)致的衰減。
歸一化:BatchNormalization將每層輸入拉回標(biāo)準(zhǔn)正態(tài)分布,保證輸入落在激活函
數(shù)的敏感區(qū),且限制了權(quán)重的尺度。
初始化:采用He初始化(針對ReLU)或Xavier初始化(針對Tanh/Sigmoid),保持
每層輸出方差一致。
針對爆炸:直接使用GradientClipping(梯度裁剪),設(shè)定閾值強(qiáng)制截?cái)嗵荻确?/p>
數(shù)。
Q23:激活函數(shù)對比:Sigmoid、ReLU、LeakyReLU和GELU的優(yōu)缺點(diǎn)
?不好的回答示例:
Sigmoid是把輸壓縮到0到1,以前用的多,現(xiàn)在不怎么用了,因?yàn)樗刑荻认А?/p>
ReLU就是大于0的部分保留,小于0的變成0,計(jì)算很快,現(xiàn)在用的最多。
LeakyReLU就是給負(fù)數(shù)部分一個(gè)小斜率,不讓它死掉。GELU好像是BERT里用
的,效果比較好,比較平滑。
為什么這么回答不好:
1.Sigmoid缺點(diǎn)不全:除了梯度消失,Sigmoid還存在非零中心化(NotZero-centered)
的問題,這會導(dǎo)致收斂變慢(Zigzagpath),這點(diǎn)常被忽略。
2.DeadReLU解釋不清:提到“死掉”,但沒解釋清楚為什么會死掉(大梯度流經(jīng)導(dǎo)致權(quán)重
更新過猛,偏置變負(fù),之后永遠(yuǎn)落入負(fù)區(qū)間)。
3.GELU原理缺失:GELU是目前Transformer的標(biāo)配,只說“平滑”不夠,需要提到其概率解
釋(Dropout思想+激活)。
高分回答示例:
激活函數(shù)的演進(jìn)體現(xiàn)了對優(yōu)化性質(zhì)的追求。
1.Sigmoid:
缺點(diǎn):極易導(dǎo)致梯度消失(導(dǎo)數(shù)最大0.25);輸出非零中心化,導(dǎo)致梯度更新方向震
蕩;包含冪運(yùn)算,計(jì)算昂貴。目前主要僅用于二分類輸出層。
2.ReLU(RectifiedLinearUnit):
優(yōu)勢:正區(qū)間導(dǎo)數(shù)為1,解決梯度消失;計(jì)算極快(僅閾值判斷);收斂速度快。
缺點(diǎn):DeadReLU問題。如果某個(gè)神經(jīng)元輸入落入負(fù)區(qū)間,梯度為0,該神經(jīng)元可能
永遠(yuǎn)無法被激活。
3.LeakyReLU:
在負(fù)區(qū)間給予一個(gè)微小的斜率(如0.01),保證梯度能回傳,解決了DeadReLU問
題,通常比ReLU稍好。
4.GELU(GaussianErrorLinearUnit):
特點(diǎn):在Transformer中是SOTA。它結(jié)合了ReLU的性質(zhì)和Dropout的隨機(jī)性思想,可
以看作是期望下的ReLU:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 獸醫(yī)胸腔超聲培訓(xùn)課件
- 2026年及未來5年市場數(shù)據(jù)中國大型購物中心行業(yè)市場發(fā)展數(shù)據(jù)監(jiān)測及投資方向研究報(bào)告
- 養(yǎng)老院投訴處理與改進(jìn)制度
- 企業(yè)內(nèi)部資料管理制度
- 養(yǎng)雞肉雞技術(shù)培訓(xùn)課件
- 2026福建三明市公安局三元分局招聘警務(wù)輔助人員24人參考題庫附答案
- 2026福建泉州市面向國防科技大學(xué)選優(yōu)生選拔引進(jìn)考試備考題庫附答案
- 2026遼寧朝陽市教育局直屬學(xué)校赴高校招聘教師(第二批次)102人備考題庫附答案
- 保密及知識產(chǎn)權(quán)保護(hù)制度
- 2026陜西省面向北京科技大學(xué)招錄選調(diào)生備考題庫附答案
- 單位內(nèi)部化妝培訓(xùn)大綱
- 高校行政管理流程及案例分析
- 高效節(jié)水灌溉方式課件
- 基坑安全工程題庫及答案解析
- 《人間充質(zhì)基質(zhì)細(xì)胞來源細(xì)胞外囊泡凍干粉質(zhì)量要求》(征求意見稿)
- 中潤盛和(孝義)新能源科技 孝義市杜村鄉(xiāng)分散式微風(fēng)發(fā)電項(xiàng)目可行性研究報(bào)告
- 鄉(xiāng)鎮(zhèn)村監(jiān)會培訓(xùn)課件
- 入團(tuán)申請書教學(xué)課件
- 松下微波爐NN-DS581M使用說明書
- 2026年中國農(nóng)業(yè)銀行秋季校園招聘即將開始考試筆試試題(含答案)
- 2025年江蘇省招聘警務(wù)輔助人員考試真題及答案
評論
0/150
提交評論