Page 325 - 《软件学报》2021年第11期
P. 325

郭松  等:基于多任务学习的眼底图像红色病变点分割                                                       3651


                    最后,网络参数见表 1.为了方便,表中只列出了卷积层的参数,包括卷积核的大小和卷积核个数,省略了池
                 化、ReLU 等信息.
                           Table 1    Detailed configurations of Red-Seg (only list settings of convolutional layers)
                                     表 1   Red-Seg 模型详细配置表(只列出了卷积层设置参数)
                                             conv1      conv2      conv3      conv4     conv5
                                             conv1_1   conv2_1    conv3_1    conv4_1    conv5_1
                                             (3×3-64)   (3×3-128)   (3×3-256)   (3×3-512)   (3×3-512)
                                主网络          conv1_2   conv2_2    conv3_2    conv4_2    conv5_2
                               (VGGNet)
                                             (3×3-64)   (3×3-128)   (3×3-256)   (3×3-512)   (3×3-512)
                                                                  conv3_3    conv4_3    conv5_3
                                               −         −
                                                                 (3×3-256)   (3×3-512)   (3×3-512)
                                                        conv       conv       conv
                            微动脉瘤分割分支           −                                          −
                                                       (1×1-1)    (1×1-1)    (1×1-1)
                                                                   conv       conv       conv
                            出血点分割分支            −         −
                                                                  (1×1-1)    (1×1-1)    (1×1-1)
                    可以看出,主网络使用 VGGNet 的前 5 组卷积,共包括 13 个卷积层,每个卷积层都使用 3×3 的卷积核;而且
                 随着网络深度的增加,卷积核的个数从 conv1 中的 64 增加到 conv5 中的 512.在微动脉瘤和出血点分割分支中,
                 每个卷积层中卷积核的大小为 1×1,且只包括一个卷积核.
                 2.2   损失函数及训练算法

                    交叉熵损失函数通常被用来训练分割网络,而普通的带权交叉熵损失并未考虑难分与易分样本的问题,因
                 此,在这种病变点和背景点极易混淆的场景下,眼底病变点分割极易出现严重的误识别问题.本文使用改进的
                                       [9]
                 Top-k 带权交叉熵损失函数 ,通过不断丢弃易分样本,使网络更多地集中在难分样本的学习上,从而提高网络
                 的判别能力.同时,为了进一步减少误分,本文直接将最小化误分(假阴性+假阳性)作为优化目标去训练 Red-Seg
                 模型,提出了一种两阶段训练算法.
                 2.2.1    第 1 阶段的损失函数
                                          [9]
                    Top-k 带权交叉熵损失函数 定义如下:
                                                    β
                                            L 1 ( , )py =− ∑  log p −  (1 β  −  ) ∑  log(1 p−  i ),
                                                           i
                                                      i y =  1    i y top
                                                                  ∈
                 其中,p 为激活值,由 sigmoid 函数计算得来;y 为标注;β为权重因子.Top-k 损失需要将负样本按照其损失降序排
                 序,然后选择损失最大的一部分负样本进行优化.形式化如下:
                                                      y top ={t 1 ,t 2 ,…,t λ },
                 其中,t i 为损失第 i 大的负样本编号,λ为选中的负样本个数.负样本确定之后,可用如下公式定义权重因子:
                                                             λ
                                                        β =     ,
                                                           λ +  N +
                 其中,N + 为正样本个数.可见,权重因子为负样本占所有记入损失样本的比例.
                    原始的 Top-k 损失使用的是固定的λ值,每次网络迭代都选择固定数量的负样本,这就使得随着网络的训练,
                 选中的负样本中易分样本的比例逐渐增加.为了解决这个问题,本文提出了一种随着训练迭代λ线性衰减的调
                 度策略.定义如下:
                                                              λ 0 ⎢ ⎥
                                                                  r
                                                    λ  () r =  λ  0  −  ⎢ ⎥ ,
                                                                 ⎣
                                                             M  / SS ⎦
                 其中,λ 0 为初始值,M 为网络最大迭代次数,r 为当前迭代次数,S 为衰减周期.当 r∈[1,S−1]时,λ(r)=λ 0 ;当 r∈[S,2S−1]
                          ⎛    1  ⎞
                 时, ()rλ  =  λ  0 ⎜  1−  ⎟  .
                          ⎝  M  / S ⎠
                 2.2.2    第 2 阶段的损失函数
                    为了将误分情况集成到损失函数中,首先定义假阴性(false negative,简称 FN)和假阳性(false positive,简称
   320   321   322   323   324   325   326   327   328   329   330