大疆
- 填空題
1.具體題目記不太清楚了,是關(guān)于輸如一個200x200的圖像,經(jīng)過幾次卷積和池化后,求維度大小。
卷積后的輸出尺寸和維度可以用公式計算:
out_height=(in_height+2pad-filter_height)/strides[1]+1
out_width=(in_width+2pad-filter_width)/strides[2] +1
2.在訓(xùn)練集標(biāo)簽為[0,0,0,1,1,1,1,1], 求信息熵的大小。
根據(jù)信息熵的計算公式
H = -3/8 * log(3/8) - 5/8 * log(5/8)
- 簡答題
1.BP算法推導(dǎo)
網(wǎng)上資料很多
參考 https://www.cnblogs.com/HolyShine/p/6413653.html
2.寫出Leaky-ReLu的數(shù)學(xué)公式,相對于sigmoid函數(shù)的優(yōu)點
參考 https://www.cnblogs.com/chamie/p/8665251.html
3.Adagrad的優(yōu)缺點
優(yōu)點:在整個更新期間學(xué)習(xí)率不是固定的,會隨著訓(xùn)練變化,適合面對稀疏梯度;
缺點:依賴于一個人工設(shè)定的全局學(xué)習(xí)率,中后期分母上的梯度放平累加會越來越大,使得更新提前停滯,訓(xùn)練提前結(jié)束。
參考:https://blog.csdn.net/u010089444/article/details/76725843
4.在圖像處理中,Data augmentation有哪些方式
數(shù)據(jù)增強是深度學(xué)習(xí)中有效方法,可以在不實質(zhì)性增加數(shù)據(jù)的情況下,讓有限的數(shù)據(jù)產(chǎn)生等價于更多數(shù)據(jù)的價值。
數(shù)據(jù)增強分為有監(jiān)督數(shù)據(jù)增強、無監(jiān)督數(shù)據(jù)增強。有監(jiān)督數(shù)據(jù)增強包括單樣本數(shù)據(jù)增強和多樣本數(shù)據(jù)增強。
在圖像處理中,常用的有:
A. 幾何變換。對原圖進(jìn)行幾何變換,包括 翻轉(zhuǎn)、旋轉(zhuǎn)、裁剪、變形、縮放。
B. 顏色變換。包括噪聲、模糊、顏色變換、擦除、填充。
C. SMOTE,通過人工合成新樣本抑制樣本不均衡的問題。SMOTE是一種插值方法,在python中封裝在imbalanced-learn庫中。
D. SamplePairing,從訓(xùn)練集中隨機(jī)抽取兩張圖片經(jīng)過數(shù)據(jù)增強基礎(chǔ)操作(隨機(jī)翻轉(zhuǎn)等)后對像素求平均,疊加形成新樣本。
5.為什么要進(jìn)行數(shù)據(jù)歸一化,有哪些方式
歸一化可以簡化計算,將有量綱的表達(dá)式變?yōu)闊o量綱的,同時可以提升模型的收斂速度和精度。
參考 https://blog.csdn.net/pipisorry/article/details/52247379
- 編程題
1.給你一個數(shù)列a[0], n[1],…,a[n-1],n大于4,必定存在i, j, p, q, 使得i<j<p<q,且n[j]?n[i]+n[q]?n[p]值最大,求出這個最大值,并說明時間復(fù)雜度。
首先想到暴力解法,依次遍歷i, j, p, q, 時間復(fù)雜度O(n^4)。
需要考慮數(shù)組中可能會有重復(fù)元素。
遍歷數(shù)組,將其分為左子數(shù)組和右子數(shù)組,在子數(shù)組中尋找i < j, 使 nums[j]-nums[i] 最大,從而獲得問題的解。時間復(fù)雜度 O(n*(n2+n2)) = O(n^3)。
void main(){
vector<int> nums{ 1,1,1,1,3,3 };
int length = nums.size();
int max_result = INT_MIN;
for (int mid = 1; mid < length-2; ++mid){
int max_left = INT_MIN;
for (int i = 0; i < mid; ++i)
for (int j = i + 1; j <= mid; ++j)
if (nums[j] - nums[i] > max_left)
max_left = nums[j] - nums[i];
int max_right = INT_MIN;
for (int p = mid+1; p < length-1; ++p)
for (int q = p + 1; q < length; ++q)
if (nums[q] - nums[p] > max_right)
max_right = nums[q] - nums[p];
if (max_left + max_right > max_result)
max_result = max_left + max_right;
}
cout << max_result << endl;
}
2.給你一個數(shù)組,求一個k值,使得前k個數(shù)的方差+后面n-k個數(shù)的方差最小,并說明時間復(fù)雜度。
這道題容易想到的是暴力解法,從左往右遍歷用數(shù)組記錄左子數(shù)組均值,再從右往左遍歷用數(shù)組記錄右子數(shù)組均值,然后再遍歷數(shù)組計算左、右子數(shù)組方差的和,時間復(fù)雜度O(n^2),空間復(fù)雜度O(n)。
更快的解法:需要用到一個概念,方差等于平方的均值減均值的平方。利用這個公式,首先還是從左往右遍歷數(shù)組,記錄左子數(shù)組的方差,再從右往左遍歷,記錄右子數(shù)組的方差,最后遍歷一次數(shù)組計算使方差和最小的k。時間復(fù)雜度O(n),空間復(fù)雜度O(n)。
void main(){
vector<int> nums{ 1,1,1,1,3,3 };
int length = nums.size();
vector<float> left(length, 0.0);
vector<float> right(length, 0.0);
// 計算從左向右掃描左子數(shù)組的方差
float left_sum = 0.0, left_square = 0.0;
for (int i = 0; i < length; ++i){
left_sum += nums[i];
left_square += nums[i] * nums[i];
left[i] = left_square / (i + 1) - (left_sum / (i + 1)) * (left_sum / (i + 1));
}
// 計算從右向左掃描右子數(shù)組的方差
float right_sum = 0.0, right_square = 0.0;
for (int i = length - 1; i >= 0; --i){
right_sum += nums[i];
right_square += nums[i] * nums[i];
right[i] = right_square / (length - i) - (right_sum / (length - i)) * (right_sum / (length - i));
}
for (int i = 0; i < length; ++i)
cout << left[i] << ' ' << right[i] << endl;
// 需要注意,分割點是i,左子數(shù)組是[0, i], 右子數(shù)組是(i, n];
float min_var = right[0];
int k = -1;
for (int i = 0; i < length - 1; ++i){
if (left[i] + right[i + 1] < min_var)
min_var = left[i] + right[i + 1], k = i;
}
cout << k+1 << endl;
}
馬上就要畢業(yè)了,記錄一些的資料:
2019最新春招網(wǎng)申時間 Excel 表(持續(xù)更新)
筆試面經(jīng)和試題:
計算機(jī)視覺算法&面試準(zhǔn)備
收集筆試面試題型(機(jī)器學(xué)習(xí)+目標(biāo)檢測)
計算機(jī)視覺及深度學(xué)習(xí)崗位應(yīng)聘問題匯總
深度學(xué)習(xí)(計算機(jī)視覺)面試中問題(一)
深度學(xué)習(xí)(計算機(jī)視覺)面試中問題(二)
深度學(xué)習(xí)崗位面試問題整理筆記
深度學(xué)習(xí)100題
github面經(jīng)匯總
2017秋招面試總結(jié)-計算機(jī)視覺/深度學(xué)習(xí)算法
求職大禮包:
2019校園招聘求職大禮包及電子雜志