Fast convolutional neural network training using selective data sampling 笔记

来源:互联网 发布:sd卡数据恢复软件 编辑:程序博客网 时间:2024/05/21 06:56

论文目的

提出了一种选择性抽样方法去训练CNN网络,用来检测眼底图片中的出血块。最终实现了训练时间从170个时间周期减少到60个时间周期,并且性能提高。实验使用了两个数据集-Kaggle and Messidor。

实现步骤

  1. 图像预处理

    使用Circular template matching去获取感兴趣的区域

    resize图片大小到512*512

    调整图像对比度,公式如下:

    Ice(x,y;σ) = αI(x,y) + βG(x,y;σ) ∗ I(x,y) + γ

    *表示卷积运算符,G(x,y;σ)是具有比例σ的高斯滤波器。 参数值经验选择为:α= 4,β= -4,σ= 512/30和γ= 128。对比度增强图像值用作CNN的输入。

  2. 训练数据准备与扩充

    不包含任何出血的图像被定义为负图像,而具有出血的图像被定义为正图像。 为了构建CNN训练数据,从这些图像提取像素,其中仅从负图像提取负像素,并且仅在出血位置处从正图像提取正像素。 在CNN训练程序中创建了以提取像素为中心的大小为41x41像素和3个通道深度的相应训练数据块。 数据块标签由中心像素的标签决定。

  3. CNN网络结构

​ 论文中使用的CNN架构由五个卷积层组成,之后是Re- LUs和max-pooling层。 网络的最终层由完全连接的层和最终的softmax分类层组成。

这里写图片描述

  1. 选择性采样

    在每个CNN训练时期,每个负样本分配一个权重,与其抽样概率成比例:较高的权重意味着在下一个时期被选择的概率较高。 为了减少训练集中冗余样本的数量,将较高的权重分配给代表性样本。 在这项工作中,代表性样本被认为是当前CNN状态下分类误差较大的负样本。

    给定X = {(xi,li)} N训练像素xi及其对应的参考标签li的集合,其中i = {1,…,N},令X +和X是正和负像素的集合:

    X+={(xi,li),∀xi withli=1}X−={(xi,li),∀xi withli=0}

    所提出的迭代算法用于动态选择
    训练像素训练CNN遵循以下步骤:
    1)通过从每个类的X +和X- 随机选择M个样本,初始化正像素X + t⊂X +和负像素X-t⊂X的集合。
    2)用Xt = X+t ∪ X-t使用随机梯度下降训练网络c。
    3)用经过训练的网络ct将X中的每个像素分类。 在分类后的X中的每个xi获得像素概率得分。

    4)为每个X-中的xi分配权重![](http://chart.googleapis.com/chart?cht=tx&chl= wti=|stili|)。 对于初始网络预测标签与初始参考标签相差较大的那些像素分配较高的权重。

    5)通过为每个类选择M个样本来更新。 随机选择中的,并以概率选择中的

    6)训练网络

    7)重复3-6步

阅读全文
0 0
原创粉丝点击