本周主要学习了以下内容:
1. 目标检测中YOLO模型的基本思想,学习了YOLO的包围框和置信度概念。
处理图像细节主要有:(1)对图像数据进行归一化;(2)进行置信度计算,计算相应IOU;(3)训练值:将一个 grid 是否有物体进行区分并赋值;(4)训练数据与网络输出
2. 目标检测中的损失函数
一共包括五项内容
其中对于边界框的宽度、高度损失开根号,是为了让误差更显著,保证回归精度;对于和
取值,可以选择放大第一项和第二项,缩小第四项,使梯度更稳定,防止模型上带来的不稳定。
3. 训练与NMS
NMS 核心思想是:选择得分最高的作为输出,与该输出重叠的去掉,不断重复这一过程直到所有备选处理完。
算法要点(非极大值抑制):
(1)首先丢弃概率小于预定 IOU 阈值(例如 0.5 )的所有边界框;对于剩余的边界框:
(2)选择具有最高概率的边界框并将其作为输出预测;
(3)计算 “作为输出预测的边界框”,与其他边界框的相关联 IoU值;舍去 IoU 大于阈值的边界框;其实就是舍弃与“作为输出预测的边界框” 很相近的框框。
(4)重复步骤 2 ,直到所有边界框都被视为输出预测或被舍弃
通过举例对NMS算法进行验证,对数据集进行训练,先使用 ImageNet 数据集对前 20 层卷积网络进行预训练,然后使用完整的网络,在 PASCAL VOC 数据集上进行对象识别和定位的训练和预测,训练中采用了 drop out 和数据增强来防止过拟合。最后一层采用线性激活函数 因为要回归 bb 位置 )),其它层都是采用 Leaky ReLU 激活函数。
4. 语义分割
(1)概念
语义分割:找到同一画面中的不同类型目标区域;语义分割与目标检测的不同在于:实例分割是同一类型目标要分出来具体实例(谁是谁),而目标检测只是单纯地标出来外包围矩形。
(2)语义分割算法的发展及主要成果
(3)基本思想
语义目标:对图中每一个像素进行分类,得到对应标签
基本思想:滑动窗口,但滑动次数太多,计算太慢,重复计算太多,因此建立FCN网络结构。
网络结构分为两个部分:全卷积部分和反卷积部分。全卷积部分借用了一些经典的 CNN 网络,并把最后的全连接层换成卷积,用于提取特征,形成热点图;反卷积部分则是将小尺寸的热点图上采样得到原尺寸的语义分割图像。
(4)反池化
具体主要存在三种反池化方式:
(5)FCN网络具体实现
①全卷积部分
全连接层层都是通过 1×1卷积得到的,最后得到1000 个大小是7×7的特征图(称为 heatmap)。输出的特征图
称为 heatmap,像素颜色越贴近红色表示对应数值越大
②反卷积部分
蓝色:卷积层;绿色:Max Pooling 层;黄色 求和运算;灰色 裁剪。
其跳级结构如下:
(6)FCN评价指标与标注工具
常见标注工具:①Labelme;②EISeg
5. 风格迁移
(1)概念
使用卷积神经网络自动将某图像中的样式应用在另一图像之上,即风格迁移。需要两张输入图像,一张是内容图像,另一张是样式图像,用神经网络修改内容图像使其在样式上接近样式图像。
(2)方法
①初始化合成图像,例如将其初始化成内容图像。该合成图像是样式迁移过程中唯一需要更新的变量,即样式迁移所需迭代的模型参数。
②选择一个预训练的卷积神经网络来抽取图像的特征,其中的模型参数在训练中无须更新。深度卷积神经网络凭借多个层逐级抽取图像的特征。我们可以选择其中某些层的输出作为内容特征或样式特征。
③通过正向传播计算样式迁移的损失函数,并通过反向传播迭代模型参数,即不断更新合成图像。
样式迁移的损失函数由三部分组成:
内容损失( content loss ):使合成图像与内容图像在内容特征上接近
样式损失( style loss ):令合成图像与样式图像在样式特征上接近
总变差损失( total variation loss ):有助于减少合成图像中的噪点。
最后,当模型训练结束时,我们输出样式迁移的模型参数,即得到最终的合成图像。
(3)代价函数
①内容代价函数
②风格代价函数
通过风格矩阵量化风格差异
③总体代价函数
6. 人脸识别
(1)两类问题的区别
①人脸验证: 一对一
②人脸识别: 多对一
(2)从人脸验证到人脸识别: 调用人脸验证检测输入与数据库中照片上的是否为同一人
(3)构建神经网络:Siamese 网络
定义相似度函数:
(4)训练神经网络
采用二分类方式,通过训练神经网络,我们希望同一人的两张照片间的相似度函数值尽可能小,不同人的两张片间的相似度函数值尽可能大。定义代价函数:
(5)运行神经网络
利用人脸验证实现人脸识别,对于训练完毕的神经网络,输入照片,通过简单的for 循环语句遍历数据库中存储的所有照片,依次通过相似度函数进行计算,记录遍历过程中相似程度最大的值,在遍历结束后与预先设定的阈值进行比较,得出预测结果,完成人脸识别。
7.视觉应用展望
主要了解了生成对抗网络,其整体结构如下:
8. 循环神经网络与NLP
(1)数据处理基础
①特征编码
一般分为数值特征和类别特征,数值特征不适合表示类别,因此一般使用独热编码。根据不同特征对数据进行处理。
②文本处理
第一步:文本切分;给定文本片段,将文本切分成单词序列;
第二步:统计词频;创建词典并遍历文本,更新词典直至遍历结束;
第三步:独热编码。
(2)文本处理与词嵌入
①文本预处理
1° 将文本作为字符串加载到内存中。
2° 将字符串切分为词元(如单词和字符)。
3° 建立一个字典,将拆分的词元映射到数字索引。
4° 将文本转换为数字索引序列,方便模型操作。
当训练样本非对齐(长度不同)时,采取剪切或填充方式补齐。
②词嵌入
如何将词映射成向量的方法是使用之前所述的独热向量,然而容易维数过高,因此将独热向量映射为低维向量是必须的。引入映射参数矩阵,该矩阵根据训练数据学习得到。
(3)RNN模型
其本质与线性控制系统相同,根据反馈和状态方程可以将其表示出来。
随着输入的增加,会产生“遗忘”问题,针对较短文本可以提取以往输入信息进行信息输出;而针对较长文本则输出信息可能就不会那么准确,因此引入LSTM模型进行解决。将在下一节进行介绍。