安科第一面+中兴软创第一面 总结

安科第一面

面试的是图像处理方面的实习生,安科主要做的是医学图像后期处理
面试我的应该是个技术部门的主管,随便聊了聊关于神经网络方面的知识。
印象最深的是CNN,卷积神经网络中的卷积是怎么样卷的。当时一脸蒙蔽,印象中记得是矩阵发生运算,具体怎么运算,上课的时候有人讲过,自己当时没认真听讲忘记了。现在回过头来补下关于卷积的操作。

1、卷积操作

卷积就是矩阵直接的点积(对应元素乘积的和),详细吴恩达CNN讲解见博客
这里写图片描述
通过以下的水平过滤器和垂直过滤器,可以实现图像水平和垂直边缘检测。
以下列出了一些常用的过滤器,对于不同的过滤器也有着不同的争论,在卷积神经网络中把这些过滤器当成我们要学习的参数,卷积神经网络训练的目标就是去理解过滤器的参数。

padding

  1. 做完卷积运算,图像不断缩小
  2. 边缘元素只能使用一次,在图像边缘检测中会导致边缘特征信息丢失
    于是引入了padding,边缘填充。tensorflow中提供SAME或者是VALID两种选择,SAME表示全零填充(输出图像和输入图像一样大),VALID表示不添加。
    关于padding部分:简书上写得很详细https://www.jianshu.com/p/05c4f1621c7e
    根据tensorflow中的conv2d函数,我们先定义几个基本符号

1、输入矩阵 W×W,这里只考虑输入宽高相等的情况,如果不相等,推导方法一样,不多解释。

2、filter矩阵 F×F,卷积核

3、stride值 S,步长

4、输出宽高为 new_height、new_width

当然还有其他的一些具体的参数,这里就不再说明了。

我们知道,padding的方式在tensorflow里分两种,一种是VALID,一种是SAME,下面分别介绍这两种方式的实际操作方法。

1、如果padding = ‘VALID’

new_height = new_width = (W – F + 1) / S (结果向上取整)

也就是说,conv2d的VALID方式不会在原有输入的基础上添加新的像素(假定我们的输入是图片数据,因为只有图片才有像素),输出矩阵的大小直接按照公式计算即可。

2、如果padding = ‘SAME’

new_height = new_width = W / S (结果向上取整)

在高度上需要pad的像素数为

pad_needed_height = (new_height – 1) × S + F - W

根据上式,输入矩阵上方添加的像素数为

pad_top = pad_needed_height / 2 (结果取整)

下方添加的像素数为

pad_down = pad_needed_height - pad_top

以此类推,在宽度上需要pad的像素数和左右分别添加的像素数为

pad_needed_width = (new_width – 1) × S + F - W

pad_left = pad_needed_width / 2 (结果取整)

pad_right = pad_needed_width – pad_left

2、全连接层为什么可以看作是特例卷积层?

https://blog.csdn.net/zxyhhjs2017/article/details/78605283
1*1卷积可以代替全连接层

中兴软创面试问题

  1. 在决策树中,决策树的思想?当数据相差比较大的时候,采用什么方法?(如果数据的分布比较大,那么信息熵和信息增益有什么变化之类的?)前剪枝和后剪枝怎么处理,信息熵,信息增益。类型有很多CART、ID3、C4.5等。信息熵的公式是什么?
  2. 介绍一下集成学习。什么是集成学习?
  3. 过拟合和欠拟合。什么是过拟合?
  4. 迪杰斯特拉算法?关于图论的知识,迪杰斯特拉算法是在有向图中,计算一个顶点到其余各顶点的最短路径。解决的是有向图中最短路径的问题。
  5. 介绍一下什么是神经网络
  6. 介绍一下卷积神经网络
  7. 学过线性代数吗?有没有用过矩阵相关的包?

暂时先写到这,由于我是第一个开始面试的,面试的人还没进入面试状态,问我的问题都比较简单。面试人挺注重自己动手实践这块的,问了我有没有自己动手处理数据集,并且解决出问题,效果怎么样。以后在动手实践方面还是要多多加强!

你可能感兴趣的:(Machine,learning,interview,algorithm,interview,question)