Skip to content

Commit 2903aac

Browse files
committed
添加若干道【机器学习】【计算机视觉】【传统图像处理】面试题
1 parent 812b957 commit 2903aac

File tree

8 files changed

+67
-84
lines changed

8 files changed

+67
-84
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
- :surfer: [SLAM](docs/SLAM.md)
1414
- :busts_in_silhouette: [推荐算法](docs/推荐算法.md)
1515
- :bar_chart: [数据结构与算法](docs/数据结构与算法.md)
16-
- :snake: [编程语言](docs/编程语言.md)
16+
- :snake: [编程语言:C/C++/Python](docs/编程语言.md)
1717
- :fireworks: [深度学习框架](docs/深度学习框架.md)
1818
- :pencil2: [面试经验](docs/面试经验.md)
1919
- :bulb: [面试技巧](docs/面试技巧.md)

docs/传统图像处理.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@
8787

8888
- [ ] TODO
8989

90+
## 如何求一张图片的均值?
91+
92+
- [ ] TODO
93+
9094
## 线性插值
9195

9296
- [ ] TODO
@@ -214,7 +218,7 @@ TODO
214218

215219
- [ ] TODO
216220

217-
## 如何求一张图片的均值?
221+
## KCF 算法
218222

219223
- [ ] TODO
220224

docs/机器学习.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ $$J(\phi(z),y;w)=-yln(\phi(z))-(1-y)ln(1-\phi(z))$$
135135

136136
- [通俗理解线性回归(一)](https://blog.csdn.net/alw_123/article/details/82193535)
137137

138-
### 线性回归与逻辑回归的区别
138+
### 线性回归与逻辑回归(LR)的区别
139139

140140
**参考资料**
141141

@@ -708,6 +708,10 @@ CART在生成子树时,是选择一个特征一个取值作为切分点,生
708708

709709
- [ ] TODO
710710

711+
### 随机森林与决策树关系
712+
713+
- [ ] TODO
714+
711715
## XGBoost
712716

713717
### 基本原理
@@ -1285,6 +1289,8 @@ L2正则化参数
12851289

12861290
## Softmax
12871291

1292+
### 基本原理
1293+
12881294
- [ ] TODO
12891295

12901296
### Softmax是和什么loss function配合使用?

docs/深度学习.md

Lines changed: 14 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,14 @@ if (this->layer_param_.pooling_param().pool() == PoolingParameter_PoolMethod_MAX
133133

134134
- [ ] TODO
135135

136+
### 平均池化(average pooling)
137+
138+
- [ ] TODO
139+
140+
### 最大池化(max pooling)
141+
142+
- [ ] TODO
143+
136144
## 感受野计算
137145

138146
- [ ] TODO
@@ -361,12 +369,18 @@ ReLU 相关变体
361369

362370
## Dropout
363371

372+
### Dropout 基本原理
373+
364374
- [ ] TODO
365375

366376
**参考资料**
367377

368378
- [理解dropout](https://blog.csdn.net/stdcoutzyx/article/details/49022443)
369379

380+
### Dropout 如何实现?
381+
382+
- [ ] TODO
383+
370384
### Drop 在训练和测试的区别
371385

372386
- [ ] TODO
@@ -627,68 +641,6 @@ identity mapping顾名思义,就是指本身,也就是公式中的x,而res
627641

628642
- [ ] TODO
629643

630-
## YOLO系列
631-
632-
**YOLOv1**
633-
634-
(1) 给个一个输入图像,首先将图像划分成7 * 7的网格。
635-
636-
(2) 对于每个网格,每个网格预测2个bouding box(每个box包含5个预测量)以及20个类别概率,总共输出7×7×(2*5+20)=1470个tensor
637-
638-
(3) 根据上一步可以预测出7 * 7 * 2 = 98个目标窗口,然后根据阈值去除可能性比较低的目标窗口,再由NMS去除冗余窗口即可。
639-
640-
YOLOv1使用了end-to-end的回归方法,没有region proposal步骤,直接回归便完成了位置和类别的判定。种种原因使得YOLOv1在目标定位上不那么精准,直接导致YOLO的检测精度并不是很高。
641-
642-
**YOLOv2**
643-
644-
看YOLOv2到底用了多少技巧,以及这些技巧起了多少作用:
645-
646-
Batch Normalization
647-
648-
CNN在训练过程中网络每层输入的分布一直在改变, 会使训练过程难度加大,但可以通过normalize每层的输入解决这个问题。新的YOLO网络在每一个卷积层后添加batch normalization,通过这一方法,mAP获得了2%的提升。batch normalization 也有助于规范化模型,可以在舍弃dropout优化后依然不会过拟合。
649-
650-
High Resolution Classifier
651-
652-
目前的目标检测方法中,基本上都会使用ImageNet预训练过的模型(classifier)来提取特征,如果用的是AlexNet网络,那么输入图片会被resize到不足256 * 256,导致分辨率不够高,给检测带来困难。为此,新的YOLO网络把分辨率直接提升到了448 * 448,这也意味之原有的网络模型必须进行某种调整以适应新的分辨率输入。
653-
654-
对于YOLOv2,作者首先对分类网络(自定义的darknet)进行了fine tune,分辨率改成448 * 448,在ImageNet数据集上训练10轮(10 epochs),训练后的网络就可以适应高分辨率的输入了。然后,作者对检测网络部分(也就是后半部分)也进行fine tune。这样通过提升输入的分辨率,mAP获得了4%的提升。
655-
656-
Convolutional With Anchor Boxes
657-
658-
之前的YOLO利用全连接层的数据完成边框的预测,导致丢失较多的空间信息,定位不准。作者在这一版本中借鉴了Faster R-CNN中的anchor思想,回顾一下,anchor是RNP网络中的一个关键步骤,说的是在卷积特征图上进行滑窗操作,每一个中心可以预测9种不同大小的建议框。看到YOLOv2的这一借鉴,我只能说SSD的作者是有先见之明的。
659-
660-
661-
662-
为了引入anchor boxes来预测bounding
663-
664-
boxes,作者在网络中果断去掉了全连接层。剩下的具体怎么操作呢?首先,作者去掉了后面的一个池化层以确保输出的卷积特征图有更高的分辨率。然后,通过缩减网络,让图片输入分辨率为416 * 416,这一步的目的是为了让后面产生的卷积特征图宽高都为奇数,这样就可以产生一个center cell。作者观察到,大物体通常占据了图像的中间位置, 就可以只用中心的一个cell来预测这些物体的位置,否则就要用中间的4个cell来进行预测,这个技巧可稍稍提升效率。最后,YOLOv2使用了卷积层降采样(factor为32),使得输入卷积网络的416 * 416图片最终得到13 * 13的卷积特征图(416/32=13)。
665-
666-
加入了anchor boxes后,可以预料到的结果是召回率上升,准确率下降。我们来计算一下,假设每个cell预测9个建议框,那么总共会预测13 * 13 * 9 = 1521个boxes,而之前的网络仅仅预测7 * 7 * 2 = 98个boxes。具体数据为:没有anchor boxes,模型recall为81%,mAP为69.5%;加入anchor boxes,模型recall为88%,mAP为69.2%。这样看来,准确率只有小幅度的下降,而召回率则提升了7%,说明可以通过进一步的工作来加强准确率,的确有改进空间。
667-
668-
669-
670-
Dimension Clusters(维度聚类)
671-
672-
作者在使用anchor的时候遇到了两个问题,第一个是anchor boxes的宽高维度往往是精选的先验框(hand-picked priors),虽说在训练过程中网络也会学习调整boxes的宽高维度,最终得到准确的bounding boxes。但是,如果一开始就选择了更好的、更有代表性的先验boxes维度,那么网络就更容易学到准确的预测位置。
673-
674-
和以前的精选boxes维度不同,作者使用了K-means聚类方法类训练bounding boxes,可以自动找到更好的boxes宽高维度。传统的K-means聚类方法使用的是欧氏距离函数,也就意味着较大的boxes会比较小的boxes产生更多的error,聚类结果可能会偏离。为此,作者采用的评判标准是IOU得分(也就是boxes之间的交集除以并集),这样的话,error就和box的尺度无关了,最终的距离函数为:
675-
676-
**参考资料**
677-
678-
[YOLOv2 论文笔记](https://blog.csdn.net/jesse_mx/article/details/53925356)
679-
680-
[目标检测网络之 YOLOv3](https://www.cnblogs.com/makefile/p/YOLOv3.html)
681-
682-
## R-CNN系列
683-
684-
**参考资料**
685-
686-
- [浅谈RCNN、SPP-net、Fast-Rcnn、Faster-Rcnn](https://blog.csdn.net/sunpeng19960715/article/details/54891652)
687-
- [From R-CNN to Faster R-CNN: The Evolution of Object Detection Technology](https://dzone.com/articles/from-r-cnn-to-faster-r-cnn-the-evolution-of-object)
688-
- [目标检测技术演化:从R-CNN到Faster R-CNN](https://zhuanlan.zhihu.com/p/40679183)
689-
690-
- [Faster R-CNN 源码解析(Tensorflow版)](https://blog.csdn.net/u012457308/article/details/79566195)
691-
692644

693645
## FCN
694646

docs/编程语言.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -380,4 +380,8 @@ sizeof(A)大小为8,因为struct中i和j各自得到了一块内存,每人4
380380

381381
### Python中可变和不可变对象是什么意思?
382382

383-
TODO
383+
- [ ] TODO
384+
385+
## tuple 和 list 的区别
386+
387+
- [ ] TODO

docs/自然语言处理.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@
66

77
答:文档频率、信息增益、互信息、X^2统计、TF-IDF
88

9-
## RNN为什么会梯度消失
9+
## RNN 为什么会梯度消失
1010

1111
- [ ] TODO
1212

13-
## LSTM怎么能解决梯度消失问题?
13+
## RNN 为什么会梯度爆炸?
14+
15+
## LSTM 怎么能解决梯度消失问题?
1416

1517
- [ ] TODO
1618

docs/计算机视觉.md

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,22 @@ class IOUMetric:
331331
return acc, acc_cls, iu, mean_iu, fwavacc
332332
```
333333

334+
**Python 简版实现**
335+
336+
```python
337+
#RT:RightTop
338+
#LB:LeftBottom
339+
def IOU(rectangle A, rectangleB):
340+
W = min(A.RT.x, B.RT.x) - max(A.LB.x, B.LB.x)
341+
H = min(A.RT.y, B.RT.y) - max(A.LB.y, B.LB.y)
342+
if W <= 0 or H <= 0:
343+
return 0;
344+
SA = (A.RT.x - A.LB.x) * (A.RT.y - A.LB.y)
345+
SB = (B.RT.x - B.LB.x) * (B.RT.y - B.LB.y)
346+
cross = W * H
347+
return cross/(SA + SB - cross)
348+
```
349+
334350
**参考资料**
335351

336352
- <https://github.com/rafaelpadilla/Object-Detection-Metrics>
@@ -1107,23 +1123,25 @@ NMS_demo.py:<https://github.com/humengdoudou/object_detection_mAP/blob/master/
11071123

11081124
- [SSD 论文原文完整翻译](https://zhuanlan.zhihu.com/p/65484308)
11091125

1110-
## YOLOv1算法
1126+
## YOLO系列(V1-V3)
1127+
1128+
### YOLOV1
11111129

11121130
- [ ] TODO
11131131

1114-
**参考资料**
1132+
### YOLOv2算法
11151133

1116-
- [YOLOv1,YOLOv2,YOLOv3解读](https://blog.csdn.net/hancoder/article/details/87994678)
1134+
- [ ] TODO
11171135

1118-
## YOLOv2算法
1136+
### YOLOv3算法
11191137

11201138
- [ ] TODO
11211139

1122-
**参考资料**
1140+
### YOLOv1 YOLOv2 YOLOv3的发展
11231141

1124-
- [YOLOv1,YOLOv2,YOLOv3解读](<https://blog.csdn.net/hancoder/article/details/87994678>)
1142+
- [ ] TODO
11251143

1126-
## YOLOv3算法
1144+
### YOLOv2和YOLOv3的损失函数区别
11271145

11281146
- [ ] TODO
11291147

docs/面试经验.md

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -157,15 +157,12 @@
157157
- [ ] [蘑菇街CV视频一面](https://www.nowcoder.com/discuss/104235?type=0&order=0&pos=67&page=1)
158158
- [ ] [19届春招秋招面经-NLP方向](https://www.nowcoder.com/discuss/103406)
159159
- [ ] [上海杭州比较好的公司-算法NLP方向](https://www.nowcoder.com/discuss/103414?type=0&order=0&pos=26&page=1)
160-
- [ ] [牛客访谈|阿里腾讯美团华为,大佬如何斩获4大算法offer](https://zhuanlan.zhihu.com/p/43710339)
161-
- [ ] [渣硕秋招算法岗位面经](https://www.nowcoder.com/discuss/103047?type=0&order=0&pos=93&page=1)
162-
- [ ] [陌陌CV算法岗一面挂经](https://www.nowcoder.com/discuss/102492?type=0&order=0&pos=53&page=1)
163-
- [ ] [大华智能算法工程师一二凉面经](https://www.nowcoder.com/discuss/102369?type=0&order=0&pos=71&page=1)
164-
- [ ] [2019秋招算法面经](https://zhuanlan.zhihu.com/p/42936891)
165-
- [ ] [记录一下秋招内推凉凉的一些面经](https://www.nowcoder.com/discuss/97825?type=0&order=0&pos=48&page=1)
166-
- [ ] [大华、虹软 算法面试分享](https://www.nowcoder.com/discuss/97981?type=0&order=0&pos=15&page=1)
167-
- [ ] [网易互娱人工智能研究工程师一面](https://www.nowcoder.com/discuss/97689?type=0&order=0&pos=227&page=1)
168-
- [ ] [网易:我可能面了假的视觉岗](https://www.nowcoder.com/discuss/97487?type=0&order=0&pos=23&page=1)
160+
- [x] ♥♥ [牛客访谈|阿里腾讯美团华为,大佬如何斩获4大算法offer](https://zhuanlan.zhihu.com/p/43710339)
161+
- [x] [渣硕秋招算法岗位面经](https://www.nowcoder.com/discuss/103047?type=0&order=0&pos=93&page=1)
162+
- [x] [陌陌CV算法岗一面挂经](https://www.nowcoder.com/discuss/102492?type=0&order=0&pos=53&page=1)
163+
- [x] [大华智能算法工程师一二凉面经](https://www.nowcoder.com/discuss/102369?type=0&order=0&pos=71&page=1)
164+
- [x] [2019秋招算法面经](https://zhuanlan.zhihu.com/p/42936891)
165+
- [x] [记录一下秋招内推凉凉的一些面经](https://www.nowcoder.com/discuss/97825?type=0&order=0&pos=48&page=1)
169166
- [x] [2019秋招|阿里蚂蚁-机器学习算法工程师-共四面 面经](https://zhuanlan.zhihu.com/p/42705310)
170167
- [x] [2018秋招算法岗面经与提问总结(蚂蚁/美图/宜信/滴滴)](https://www.nowcoder.com/discuss/93743)
171168
- [x] [19校招AI算法面经(百度+京东+美团+地平线offer)](https://www.nowcoder.com/discuss/95895?type=0&order=0&pos=28&page=1)

0 commit comments

Comments
 (0)