算法工程师要求–深度学习
写在开始
第一次在csdn写东西,希望能逐渐积累,在技术层面有所沉淀,尤其是前沿技术。
技术要求
根据某一岗位的职位要求进行针对性学习
-
基本算法
:CNN,FCN,LSTM,GANS; -
学习框架
:TensorFlow,Mxnet等; -
编程语言
:C/C++,python; -
其他
:有CV,Multi-Media,NLP等相关领域研究经验;
知识拓展
-
算法概要
CNN(卷积神经网络)
参考:
https://blog.csdn.net/love__live1/article/details/79481052
卷积神经网络CNN的结构一般包含这几个层
:-
输入层
:用于数据的输入;
卷积神经网络中输入层的结构可以是多维的,例如MNIST数据集中是28×28像素的灰度图片,因此输入为28×28的的二维矩阵。
常见的
彩色
图像(RGB)则是N×N×3的三维矩阵。 -
卷积层
:使用卷积核进行特征提取和特征映射;
卷积运算在图像、通信应用较多,可理解为对数据的图像或信号进行过滤的操作,得到与
滤波器
模式相似程度的结果(某特征)。
参考知识:
https://www.cnblogs.com/shine-lee/p/9932226.html
-
激励层
:由于卷积也是一种线性运算,因此需要增加非线性映射;
激活数据,逐个元素操作,进行非线性转换。常见的激活函数有:-
ReLU / Rectified-Linear and Leaky-ReLU
ReLU函数用得最多,因为其收敛快。
标准的ReLU函数为max(x,0),当x>0时,输出x; 当x<=0时,输出0 -
Sigmoid
-
TanH / Hyperbolic Tangent
双曲正切函数 -
Absolute Value
求绝对值 -
Power
幂运算
-
ReLU / Rectified-Linear and Leaky-ReLU
-
池化层
:进行下采样,对特征图稀疏处理,减少数据运算量;
池化层的输入通常来自上一个卷积层,主要有2个作用:
1. 保留主要特征,同时减少下一层的参数和计算量,防止过拟合;
2. 保持某种不变性,包括平移(translation)、旋转(rotation)、尺度(scale)等,常用的有最大池化(max-pooling)、平均池化(mean-pooling)等。
如:对4×4的特征矩阵进行
不重叠
的最大池化(2×2),得到2×2的输出。
-
全连接层
:通常在CNN的尾部进行重新拟合,减少特征信息的损失。
FCN(全卷积网络)
FCN对图像进行像素级的分类,从而解决了语义级别的图像分割(semantic segmentation)问题。与经典的CNN在卷积层之后使用全连接层得到固定长度的特征向量进行分类(全联接层+softmax输出)不同,FCN可以接受任意尺寸的输入图像,采用反卷积层对最后一个卷积层的feature map进行上采样, 使它恢复到输入图像相同的尺寸,从而可以对每个像素都产生了一个预测, 同时保留了原始输入图像中的空间信息, 最后在上采样的特征图上进行逐像素分类。
LSTM
LSTM,即Long Short Term Memory Networks
长短时间记忆网络
,是RNN的一个变种,专门用于解决Simple-RNN上述的俩问题。
GANS
GAN是“生成对抗网络”(Generative Adversarial Networks)的简称,由2014年还在蒙特利尔读博士的Ian Goodfellow引入深度学习领域。
-
研究领域
计算机视觉(CV)
多媒体(Multi-Media)
NLP(自然语言处理)