DLNotes
- sigmoid 将所有值压缩到[0,1] 所以当input的输入变化很大时 通过sigmoid会将变化缩小至[0,1] 这个变化在network 层数越来越深时 其对于变化削减则越为明显
对于这个问题的解决方法则是使用Relu 作为activation function
Relu 当input > 0时 output仍然是input 当input小于0时 output为0
除此之外 Relu 由于函数简单 运算起来比sigmoid 快很多 且可以解决 Vanishing gradient problem的问题 - Maxout 自动去学习 activation function , Relu 作为Maxout的一种特例
- 全连接层: 将特征整合到一起 输出为一个值 (全连接之前是特征提取)
- learing rate: 学习率控制每一次迭代中梯度向损伤函数最优解移动的步长 其大小决定了网络学习速度快慢 在网络模型训练中 模型通过样本数据给出预测值 计算代价函数并通过反向传播来调整参数 重复上述过程直至模型参数逐步趋于最优解从而获得最优模型 在这个过程学习率控制每一步更新参数的步长 合适的学习率可以使得代价函数以合适的速度收敛到最小值
- drop out 在train set上跑的好 但在test set上跑的不好时加drop out
- CNN : input(image) -> Convolution -> Max Pooling (Conn -> MaxPooling 这两步课重复多次) -> Flatten -> Fully Connected Feedforward network -> result
- Property1 : pattern 只需看一张图片的一个小部分 而不需看整个image
- Property2 : 同样的pattern 会出同张image的不同区域
- Property3 : Subsampling
Property1 Property2 -> Conn
Property3 -> MaxPooling
- Normalization
- 为什么需要Normalization ->> 可以理解是为了获取数据的独立同分布
独立同分布的数据可以简化常规机器学习模型的训练 提升机器机器学习的预测能力 -> 已成为共识
因此将数据喂给机器学习模型时 需要一个重要的步骤就是”白化”
- 为什么需要Normalization ->> 可以理解是为了获取数据的独立同分布
- filter 即 kernel 滤波器 卷积核中数值为对图像中与卷积核同样大小的子块像素点进行卷积计算时所采用的权重。
- feature map 特征图(特征映射) 在每个卷积层,数据都是以三维形式存在的。你可以把它看成许多个二维图片叠在一起,其中每一个称为一个feature map。在输入层,如果是灰度图片,那就只有一个feature map;如果是彩色图片,一般就是3个feature map(红绿蓝)。层与层之间会有若干个过滤器/卷积核(kernel),这个过滤器的尺寸大小(宽、高)和深度(长)是需要人工设定的,常用的过滤器尺寸有33或55。当前层中的所有feature map分别跟当前层和下一层间的每个卷积核做卷积求和后,都会产生下一层的一个feature map。通常有多少个卷积核,下一层就会生成多少个feature map。 reference: https://cloud.tencent.com/developer/article/1766105
- CAM 特征可视化技术 称Class Activation Mapping,既类别激活映射图 reference: https://zhuanlan.zhihu.com/p/269702192
- Global Average Pooling(GAP) -> 全局平局池化
- 例如 最后一层是4个66的特征图 GAP是将每一张特征图计算所有像素点的均值 输出一个数据值 这样4个特征图输出4个数据点 将这些数据点组成一个14的向量的话 就成为一个特征向量 就可以送入到之后的计算中了
- GAP替代CNN中传统的全连接层 主要目的是减少参数量 与全连接层相比 GAP有两个优点
- GAP 通过强制使特征图和类别之间相对应,对于卷积结构更来说这个转换更自然
- GAP 层没有参数用于优化,避免了过拟合
- Embedding: 一种将离散变量转变为连续向量的方式
- RNN(recurrent neural networks)-> 循环神经网络:
- 神经网络只能单独的去处理一个个输入的数据 但前一个输入和后一个输入之间是没有联系的 但在处理一些场景的时候是考虑到前后输入的 如机器翻译的时候 那么此时则需要使用循环神经网络 即RNN
- Attention: 核心即从关注全部到关注核心重点
- 优点
- 参数少 速度快 效果好
- 主要思路: 带权求和
- 优点
- Multi-headed Self-attention: 多头自注意力机制
- padding: 填充影响输出的大小 假设如形状为n x m 卷积核则为 a x b 则输出为 (n - a + 1) * (m - b + 1)那么如此一来当经历多层卷积后 图像大小就会迅速减小 从而损失很多有效信息 故需要padding 填充来解决这一问题
- dropout: 当模型参数过多 但训练样本过少时 容易出现过拟合的情况 使用dropout可以解决这一情况
Bactch Noramaliza
在做图像预处理过程中 通常会对图像采取标准化处理 BN的目的就是使得图像(例如 feature map) 满足均值为0 方差为1的分布规律
- BN: BatchNorm 批量归一化
- 训练时要将trainning参数设置为True 在验证时设置为False(在pytorch中 model.trian() 和 model.eval())
- batch size尽可能大 这样才可以尽可能的接近整体样本 设置的越大求的均值和方差越接近整个训练集和方差
- 将BN层置于 卷积层和激激活层之间 且卷积层不要使用偏置bias
降采样
- 降采样:
- pooling: 网络小时效果好
- stride: 网络大时效果好 (stride = 2)
迁移学习
- 迁移学习: 使用预训练模型去训练
- 使用别人预训练模型参数时 要注意别人的预处理方式
- 常见迁移学习方式(2 3 适合设备有限 时间有限时采用)
- 载入权重后训练所有参数
- 载入权重后只训练最后几层参数
- 载入权重后在原网络基础上再添加一层全连接层 仅训练最后一个全连接层
Auto regressive (AR) 自回归模型
AR 是指利用预测目标的历史时间数列在不同时期取值之间存在的依存关系(即自身相关),建立起回归方程进行预测
具体说,就是用一个变量的时间数列作为因变量数列,用同一变量向过去推移若干期的时间数列作自变量数列,分析一个因变量数列和另一个或多个自变量数列之间的相关关系,建立回归方程进行预测。
再通俗一点讲,就是用过去时间点的数据预测未来时间点的数据。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 niiish32x 's blog!