今日頭條:
- 輸入爲 ,卷積核爲 ,還有步長 和 填充 ,求輸出尺寸?求操作的 FLOPs?
答:輸出尺寸爲 ,
- 過擬合要怎麼解決?
通常解決過擬合的方法有:Dropout(隨機失活)、Weight Decay(權重衰減)、減少模型參數、Early Stop、Regularization(正則化,包括正則化等)、Augmentation(數據增強)、合成數據、Batch Normalization(批次標準化)、Bagging 和 Boosting(模型融合)等;
- 幾個激活函數都有什麼優缺點(Sigmoid, Tanh, Relu)?
Sigmoid:
- 定義式:
- 函數曲線:
- 優點:
3.1 輸出爲 0 到 1 之間的連續實值,此輸出範圍和概率範圍一致,因此可以用概率的方式解釋輸出;
3.2 將線性函數轉變爲非線性函數;- 缺點:
4.1 冪運算相對來講比較耗時;
4.2 輸出均值爲非 0;
4.3 容易出現梯度消失的問題;Tanh:
- 定義式:
- 函數曲線:
- 優點:
3.1 Tanh 函數的導數比 Sigmoid 函數導數值更大、梯度變化更快,在訓練過程中收斂速度更快;
3.2 使得輸出均值爲 0,可以提高訓練的效率;
3.3 將線性函數轉變爲非線性函數;- 缺點:
4.1 冪運算相對來講比較耗時;
4.2 容易出現梯度消失;ReLU:
- 定義式:
- 函數曲線:
- 優點:
3.1 解決了梯度消失的問題;
3.2 計算速度和收斂速度非常快;- 缺點:
4.1 低維特徵向高維轉換時會部分丟失;
4.2 均值爲非零;
- 概率題: 服從 均勻分佈,求 的概率? 服從 均勻分佈,求 的概率?
- Batch Normalization 的原理和作用?
將一個 batch 的數據變換到均值爲 0、方差爲 1 的正態分佈上,從而使數據分佈一致,每層的梯度不會隨着網絡結構的加深發生太大變化,從而避免發生梯度消失並且加快收斂,同時還有防止過擬合的效果;
- 舉一個改進激活函數的例子?
h-swish 函數,是 MobileNet V3 提出的,用於改進 swish 函數在嵌入式設備計算效率低的問題;
拼多多:
- L2正則化的特點和使用場景?
正則化目的是限制參數過多或者過大,避免模型更加複雜,適用於數據充足的場景下防止過擬合;
- L1正則化損失函數如何求解?
參考這一篇:https://www.cnblogs.com/heguanyou/archive/2017/09/23/7582578.html
- LSTM 的結構及公式?
虹軟科技:
- Loss 優化的幾個方法?
主要有三大類:
- 基本梯度下降法,包括 GD,BGD,SGD;
- 動量優化法,包括 Momentum,NAG 等;
- 自適應學習率優化法,包括 Adam,AdaGrad,RMSProp 等
- 動量法的表達式?
- 標準動量優化方法(MomentumOptimizer):
- 牛頓加速梯度動量優化方法(NAG, Nesterov accelerated gradient):
- 隨機梯度下降相比全局梯度下降好處是什麼?
- 當處理大量數據時,比如SSD或者faster-rcnn等目標檢測模型,每個樣本都有大量候選框參與訓練,這時使用隨機梯度下降法能夠加快梯度的計算;
- 每次只隨機選擇一個樣本來更新模型參數,因此每次的學習是非常快速的,並且可以進行在線更新;
- 介紹 Inception-resnet v1?
並行結構、非對稱卷積、殘差;
小紅書:
- 歸一化有哪些方式?
- min-max 標準化(Min-max normalization):
1.1 公式:
1.2 適用場景:
適用於數據集中的場景,如果 max 和 min 不穩定,很容易使得歸一化結果不穩定;- z-score 0均值標準化(zero-mean normalization):
2.1 公式:
2.2 適用場景:
在分類、聚類算法中,需要使用距離來度量相似性的時候、或者使用PCA技術進行降維的時候,表現更好;
海康威視:
- L1、L2正則化在什麼任務上分別會優先考慮?
假設模型中有很多特徵,其中不乏相關性特徵,可以用L1消除共線性問題;
在訓練樣本足夠多的情況,然後嘗試使用L2來防止過擬合問題;
- 兩層神經網絡的權重都是0,bias有值,這個網絡能正常訓練嗎?
不能,因爲權重爲 0,每次傳入不同數據得到的結果相同;
網易:
- C++和python的區別?
- C++是靜態類型的,而python是動態類型的;
- python是一種腳本語言,是解釋執行的,不需要經過編譯;C++需要編譯後運行語言,在特定的機器上編譯後在特定的機上運行,運行效率高,安全穩定,但編譯後的程序一般是不跨平臺的;
- python是逐句解釋執行的,C++是先編譯成本地代碼,期間還有編譯期的類型檢查,不存在動態類型、動態檢查,並且可以進行編譯器優化;
- Python比C++好在哪裏?
自動能實現內存回收機制,開發效率高;
- python怎麼做內存回收?
- 當對象不再被引用指向的時候,垃圾收集器可以釋放該對象;
- 手動回收:gc.collect();
招銀網絡科技:
- 哪種激活函數能緩解梯度爆炸彌散 ?
relu、leakrelu、elu 等;
- Pooling是不是線性操作?
不是;
- Dropout介紹?
Dropout 是指在模型訓練時隨機讓網絡某些隱含層節點的權重不工作,不工作的那些節點可以暫時認爲不是網絡結構的一部分,但是它的權重得保留下來(只是暫時不更新而已),用於防止模型過擬合;
- 輸入是特徵向量的分類網絡,怎麼找比較重要的那些特徵?
使用 SE-Net 的 SE 模塊;
- yolo 介紹?
- 檢測任務中解決正負樣本不均衡的方法?
- online hard example mining(OHEM);
- Focal Loss;
- class balanced cross-entropy;
- local rank,PISA,ISR;
- 過採樣;
- dropout爲什麼能解決過擬合 ?
簡單的回答是:防止參數過分依賴訓練數據,減少神經元之間複雜的共適應關係,增加參數對數據集的泛化能力;
- 卷積有哪些變種?
分組卷積(Group Convolution)、空洞(擴張)卷積(Dilated/Atrous Convolution)、深度可分離卷積(depthwise separable convolution)、可變形卷積網絡(Deformable Convolution)、反捲積(deconvolution)、圖卷積(Graph Convolution)和 X-卷積(PointCNN);