医療系AIエンジニアの技術メモ

ディープラーニング(主に画像系)の技術メモブログです

Probabilistic End-to-end Noise Correction for Learning with Noisy Labels

スポンサーリンク


f:id:y_kurashina:20191012192946p:plain
Fig1. PENCIL learning framework

論文URL

http://openaccess.thecvf.com/content_CVPR_2019/papers/Yi_Probabilistic_End-To-End_Noise_Correction_for_Learning_With_Noisy_Labels_CVPR_2019_paper.pdf
2019年のCVPRで公開

ポイント

  • 分類問題において教師ラベルのアノテーションミスを推定し、ミスを修正したラベルによりモデルを学習するPENCIL(probabilistic end-to-end noise correction in labels)フレームワークを提案
    • 数十%の大量のミスラベルが有っても一定の性能を確保している
    • アノテーションミスが少ない(と考えられている)データセットに対してPENCILフレームワークを適用した場合、通常の学習方法と比べ最終的な分類モデルの性能に有意差は無い(大きな悪影響を及ぼすことは無い)

PENCILフレームワーク

  • Fig1の構造で、分類モデルf(x;\theta)とアノテーションミス修正後教師ラベルy ^ dを推定する
  • 損失関数
    • classification loss
      • L _ c (f(x;\theta) , y ^ d) = \frac{1}{n}\sum ^ n _ {i=1} KL(f(x _ i ;\theta) || y ^ d _ i)
      • KL-divergenceでモデルの推論確率と修正後教師ラベルの確率分布を一致させる
        • 基準の分布をf(x;\theta)にしていることに注意
      • y ^ dは、教師ラベル\hat{y}を用いて以下の式で初期化されている
        • y ^ d = softmax(10 \hat{y})
      • 学習が進むとy ^ dはone-hot表現ではなく、入力画像のクラス確率分布になる
    • compatibility loss
      •  L _ o (\hat{y} , y ^ d) = - \frac{1}{n}\sum ^ n _ {i=1} \sum ^ c _ {j=1} \hat{y} _ {ij} \log y ^ d _ {ij}
      • y ^ dが教師ラベル\hat{y}から乖離しすぎないように抑制するLoss
    • entropy loss
      • L _ e (f(x;\theta)) = - \frac{1}{n}\sum ^ n _ {i=1} \sum ^ c _ {j=1} f _ j (x;\theta) \log f _ j (x;\theta)
      • このLossは推論確率がone-hot表現の時に最小となるため、推論確率がフラットになることを抑制し、特定の1クラスの推論確率にピークが出るように働く
  • 学習方法
    1. 教師ラベルの修正は行わず、Cross Entropy Lossでモデルを学習
      • アノテーションミスを学習しすぎないように、学習率を大きく設定し過学習を抑制する
    2. PENCILフレームワークでモデルと教師ラベルの両方を学習
      • このステップも、学習率は大きいままとする
    3. classification Lossだけを使用し、モデルのみをFine tuning
      • 学習率は通常通りステップ状に小さくしていく

人工的にアノテーションミスを付与したCIFARでの評価結果

  • CIFARに以下の2種類のアノテーションミスを付与して評価
    • symmetric noise : 確率 r で全クラス一様にミスラベルを付与
    • asymmetric noise
      • CIFAR-100の場合、隣接クラスと確率 r でラベルを入れ替える
      • CIFAR-10の場合、犬⇔猫のように似ているクラス間で、確率 r でラベルを入れ替える

<CIFAR-100の結果> f:id:y_kurashina:20191012210221p:plain

  • Cross Entropyで通常通り学習した結果に比べ、性能低下が有意に抑えられている
  • 2行目のForward T*は、真のノイズ遷移行列が既知と言う非現実的な条件のため単純比較はできない

<CIFAR-10の修正後ラベルの正解率> f:id:y_kurashina:20191012210949p:plain f:id:y_kurashina:20191012211010p:plain

  • CIFAR-10のケースでは上記プロットのいずれのケースも、学習の中盤以降9割前後のラベルが正しいラベルになっている

Clothing1Mでの評価結果

  • 約40%のラベルが間違っていると推定されているオンラインショッピング画像データセット
  • 一部のデータはアノテーションミスを修正した高精度の教師データとなっている
    • 以下の表のPENCILの結果は高精度の教師データを使用していない

f:id:y_kurashina:20191012213406p:plain

CUB-200での評価結果

  • 高精度のアノテーションがされていると考えられる200種の鳥類分類データセット

f:id:y_kurashina:20191012214538p:plain

  • ハイパーパラメータλ、α(詳細は論文を参照)に寄らず、Cross Entropy Lossで学習した結果と同等以上の結果が得られている

スポンサーリンク


Robust Histopathology Image Analysis: to Label or to Synthesize?

スポンサーリンク


f:id:y_kurashina:20190921204008p:plain
Fig1. GANを用いた組織病理画像合成

論文URL

http://openaccess.thecvf.com/content_CVPR_2019/papers/Hou_Robust_Histopathology_Image_Analysis_To_Label_or_to_Synthesize_CVPR_2019_paper.pdf
2019年のCVPRで公開

ポイント

  • 組織病理画像を用いた細胞核セグメンテーション時のGANによるaugmentation手法の提案
    • 細胞核の検出は病理学で最も基本的なステップであるものの、様々な状態(癌の種類、細胞の状態、観察組織片の作成方法、画像化手法等)を網羅する教師データを作成するためには膨大な作業量を要する
      • 筆者らの実験では、1200万画素の50枚の画像のラベリングに病理医が120~230時間を要したとのこと
    • そこで、実データに加え合成データも使用し半教師有り学習を実施
      • 細胞核の特徴を考慮した簡易的な手法で生成した画像をGANで修正することで合成データを生成
        • 簡易的な手法を利用する理由の記述はないが、細胞核の特徴を考慮した初期画像を作成することで(簡易手法が適切であれば)、より真の症例に近い画像を得られる効果があるものと推測される
    • 真のデータ分布の推定を行い、推定分布で各サンプルのLossを重み付けした汎化損失(サンプルの偏りに影響を受けない損失)を使用してモデルを学習している

合成データ生成

  1. 正解マスクを生成 (Fig1.(1))
    • ランダムな形状・サイズ・数のポリゴンを生成
      • ポリゴンの形状等の特徴量の分布に生物学的な知見を反映することが本手法の肝だと思われるが、特に記述無し
  2. 簡易手法(GAN-free method)による初期合成画像生成 (Fig1.(2))
    • 実画像に対し大津の二値化法で細胞核領域を抽出
    • 細胞核領域を背景領域のテクスチャーで、正解マスク領域を細胞核領域のテクスチャーで塗りつぶす
      • 塗りつぶす手法についてはこちらを参照
  3. 初期合成画像をGANで修正 (Fig1.(3))
    • 初期合成画像に加え参照画像も入力して、合成画像を修正する
      • 参照画像には、初期画像と異なるタイプ(癌の種類等)の画像を指定できる
    • Discriminatorを騙すだけでなく、セグメンテーションモデルのLossを最大化するようにGeneratorを学習
      • 実現方法は異なるがモデルも騙そうとするアイデアはGAMOと同じ
      • 初期合成画像とGANによる修正画像の差のL1およびL2正規化項も使用している
      • セグメンテーションモデルのLossの最大化項の重みを他のLossより大きくしすぎると、初期合成画像と大きく異なる画像に変化してしまうことに注意を要する

f:id:y_kurashina:20190921214955p:plain
Fig2. 合成画像生成例

Fig2.(a) 初期合成画像

  • 1列目がランダムに生成した正解マスク
  • 1行目が入力実画像
  • 残りの画像が生成結果

Fig2.(b) GANによる修正後の合成画像

  • 1列目が初期合成画像
  • 1行目が参照画像
  • 残りの画像が修正後の合成画像

推定データ分布を考慮したLoss

  • 汎化損失L(\theta)は以下の式で求まる
    • L(\theta) = \sum _ {X,T} f _ \theta (\langle X,T \rangle) p(\langle X,T \rangle)
      • f _ \theta : セグメンテーションモデルのLoss関数
      • X : 入力画像
      • T : 正解マスク
      • p : X, Tの真の生成分布
    • 合成画像の生成分布g(\langle X,T \rangle)を用いると汎化損失は
      L(\theta) = \sum _ {X,T} f _ \theta (\langle X,T \rangle) \frac{p(\langle X,T \rangle)}{g(\langle X,T \rangle)} g(\langle X,T \rangle)
      となり、\frac{p(\langle X,T \rangle)}{g(\langle X,T \rangle)}を推定できれば汎化損失を計算できる。
    • ここで、ベイズの定理より以下の式が得られる。
      • Pr(X~p|X) = \frac{Pr(X|X~p) Pr(X~p)}{Pr(X|X~p) Pr(X~p) + Pr(X|X~g) Pr(X~g)}
        =\frac{p(X)}{p(X) + g(X)c}
        • Pr(X~p|X) : Xが与えられた場合に、そのXが真の分布から生成された確率
        • Pr(X|X~p) : 真の生成分布からXが生成された確率 (=p(X))
        • Pr(X|X~g) : 合成画像の生成分布からXが生成された確率 (=g(X))
        • c : 合成画像数と真の画像数の比 (=Pr(X~g)/Pr(X~p))
    • 続いて、p/gTに依存しないと仮定すると以下の式で計算できる。
      • \frac{p(\langle X,T \rangle)}{g(\langle X,T \rangle)} = \frac{p(X)}{g(X)} = c \cdot \frac{Pr(X~p|X)}{1-Pr(X~p|X)}
    • Pr(X~p|X)としてDiscriminatorが推定した確率を使用することで汎化損失を計算できる

スポンサーリンク


Decoders Matter for Semantic Segmentation : Data-Dependent Decoding Enables Flexible Feature Aggregation

スポンサーリンク


f:id:y_kurashina:20190904010251p:plain
Fig1. DUpsamplingを用いたSegmentationモデル

論文URL

http://openaccess.thecvf.com/content_CVPR_2019/papers/Tian_Decoders_Matter_for_Semantic_Segmentation_Data-Dependent_Decoding_Enables_Flexible_Feature_CVPR_2019_paper.pdf
2019年のCVPRで公開

ポイント

  • 入力データに応じたupsamplingを行うData-dependent Upsampling (DUpsampling)レイヤーを提案
    • 通常使用される共一次補間(bilinear)では低解像度の情報から高解像度の情報を復元することができない。
    • 入力テンソルのチャンネル情報を効果的に利用し、低解像度のテンソルを高精度に高解像度化している
    • 多くのSegmentation用モデルのdecorder部では、encoderの異なる解像度の特徴量テンソルを高解像度側にbilinearでupsamplingしてconcatしているのに対し、DUpsamplingを使用する場合は全ての特徴量テンソルを低解像度側にdownsamplingしてconcatしても、最終的なセグメンテーション精度をbilinearよりも改善できている
      • 低解像度のテンソルでconcatできるためdecoder部のメモリ使用量や計算コストを大幅に削減できる
    • 学習時の損失関数を通常のsoftmax cross entropy lossとした場合は学習が十分に進まず、温度T依存の修正softmax ( = \frac{\exp(z _ i / T)}{\sum _ j \exp(z _ j / T)})を使用する必要がある
      • Tはハイパーパラメータではなく学習パラメータとしていた

DUpsampling

f:id:y_kurashina:20190905001718p:plain
Fig2. DUpsampling

  • 使用する記号
    • F : DUpsamplingの入力(=encoderの出力)テンソル
      • F \in \mathbb{R} ^ {\tilde{H} \times \tilde{W} \times \tilde{C}}
    • Y : セグメンテーション教師ラベル
      • Y \in \left\{ 0, 1 \right\} ^ {H \times W \times C}
    • r : encoderによるdownsampling比
      •  \frac{H}{\tilde{H}} = \frac{W}{\tilde{W}} = r
      • 典型的には、r = 16 もしくは 32
  • Fに1x1の畳み込みを行いチャンネル数N=r ^ 2 Cのテンソルを求め、r \times r \times Cにreshapeすると元解像度のテンソルが得られる(Fig2はr  = 2の例)
    • 通常、教師ラベルYの分布は画素毎に独立なわけではないため、構造情報の圧縮表現を低解像度のテンソルFで保持できると言う仮説の元、1x1の畳み込みによる線形変換を行っている。

PASCAL VOC test setでの評価結果

f:id:y_kurashina:20190906000929p:plain

  • 著者の結果はDeepLabv3+をベースにencoderの出力解像度を1/8ではなく1/16とし、decodeをDUpsamplingで行ったもの
    • 計算量が30%に低減されたとのこと。メモリ使用量の削減量については記載がなかった。

スポンサーリンク


Generative Adversarial Minority Oversampling

スポンサーリンク


f:id:y_kurashina:20190827003351p:plain
Fig1. GAMO

論文URL

https://arxiv.org/pdf/1903.09730.pdf
2019年4月公開

ポイント

  • conditional GANによりデータ数が少ないクラスの水増しを行うGAMO(Generative Adversarial Minority Oversampling)を提案
    • Discriminatorだけでなく、クラス分類モデルも騙せるデータをGeneratorで生成する
    • Discriminatorとモデルの両方を騙すためには、クラス分類境界付近のデータを生成することになるため、モデルの本質的な性能向上に資すると期待できる
    • GAMOはクラス分類に特化した構成となっている(Fig1)
      • 物体検出やセグメンテーションにも、このアイデアを応用できるのではないかと思われるが、それほど自明に拡張できるわけではない。

GAMO (Fig1)

  • 各クラスの新たなデータはIGU(Instance Generation Unit)で生成される
    • IGUでは実データをcTMU(conditional Transient Mapping Unit)が生成する重みで凸結合する
      • 実データの凸結合とすることにより、真のクラス分布では有り得ないサンプルが生成されることを抑制できる
  • cTMU(conditional Transient Mapping Unit)はクラスラベルとノイズから上記重みを生成する
  • 損失関数はCross Entropy LossではなくLeast Square Lossとする方が性能が高い
  • Fig1左上のImage Feature Extractionが出力する特徴量は、何らかのモデルで抽出した特徴量でも画像を単に一次元ベクトル化したものでも、どちらでも良い
  • クラス分類モデル、cTMU、IGU、Image Feature Extractionの詳細は不明
    • 著者のgithubを確認する必要がある。

データ数を偏らせたMNIST、Fashion-MNISTでの評価結果

f:id:y_kurashina:20190827012428p:plain

  • 各クラスのデータ数を4000, 2000, 1000, 750, 500, 350, 200, 100, 60, 40としている
  • クラス分類モデルの転移学習は行っていない
    • 転移元モデルは偏りのないデータで学習しているため
  • 評価指標
    • ACSA : Average Class Specific Accuracy
    • GM : Geometric Mean

スポンサーリンク


Cascaded Generative and Discriminative Learning for Microcalcification Detection in Breast Mammograms

スポンサーリンク


f:id:y_kurashina:20190812164510p:plain
Fig1. マンモグラフィー画像内の微小石灰化領域

f:id:y_kurashina:20190812164635p:plain
Fig2. ASN + FPR

論文URL

http://openaccess.thecvf.com/content_CVPR_2019/papers/Zhang_Cascaded_Generative_and_Discriminative_Learning_for_Microcalcification_Detection_in_Breast_CVPR_2019_paper.pdf
2019年のCVPRで公開

ポイント

  • マンモグラフィー画像から微小石灰化領域(microcalsification)のセグメンテーションを行うモデルを提案
    • 微小石灰化領域は1mm程度(14画素)以下の小さい領域(Fig1)
    • 始めにAnomaly Separation Network (ASN)で異常領域を抽出する。
    • 微小石灰化領域だけでなく血管石灰化領域等の他の異常領域も検出されてしまうため、False Positive Reduction (FPR)で擬陽性領域を落としている。

ASN

  • U-Net構造のautoencoderで入力画像の再構成を行う
    • ただし、微小石灰化領域の再構成誤差が大きくなるよう以下の損失関数を使用
    • L = max(\beta - \overline{r _ p} , 0) + \overline{r _ n} + \lambda _ p S ^ 2 _ {r _ p} + \lambda _ n S ^ 2 _ {r _ n}
      • \beta , \lambda _ p, \lambda _ n : ハイパーパラメータ
      • r _ p : 微小石灰化領域の再構成誤差(L1ノルム)
      • r _ n : 正常領域の再構成誤差(L1ノルム)
      • \overline{r _ {p,n}} : r _ {p,n} の平均値
      • S ^ 2 _ {r _ {p,n}} : r _ {p,n} の分散
  • 再構成誤差が閾値(恐らく\beta)以上の画素を異常領域として抽出
  • この手法により、異常領域を普通にセグメンテーションするよりも性能向上することがAblation studyで示されている

FPR

  • ASNで抽出した領域をResNet50で分類
    • 56x56画素に切り出し、224x224にリサイズしてResNet50に入力

評価結果

f:id:y_kurashina:20190812172842p:plain

f:id:y_kurashina:20190812172912p:plain

  • Methodの R@X はX個の擬陽性を許容したときの感度(Recall)である

f:id:y_kurashina:20190812173151p:plain

  • 提案手法の結果はProposedの列
    • Proposed ASNの列はASNのみでの検出結果

スポンサーリンク


Learning to Learn from Noisy Labeled Data

スポンサーリンク


f:id:y_kurashina:20190810164141p:plain
Fig1. MLNT学習

論文URL

http://openaccess.thecvf.com/content_CVPR_2019/papers/Li_Learning_to_Learn_From_Noisy_Labeled_Data_CVPR_2019_paper.pdf
2019年のCVPRで公開

ポイント

  • 質が悪い(一部のラベルが間違っている)教師データを想定し画像分類を行うmeta-learning based noise-tolerant (MLNT) 学習法を提案 (Fig1)
    • あえて学習中に正解ラベルを間違ったラベルに付け替えながら、複数のStudent modelを学習
    • Teacher modelとStudent modelの推論確率分布が同じになるよう正則化をかけつつ、最終モデルのパラメータを更新
    • Teacher modelのパラメータは最終モデルのパラメータの移動平均で計算
  • Teacher modelとStudent modelの整合性を取ることで、正解ラベルの間違いに頑健になる最終モデルが得られる

meta-learning based noise-tolerant (MLNT) 学習法

  • Algorithm 1
    • 複数(論文では10個)のStudent modelを学習する
      • mini batchサンプルの一部の正解ラベルを付け替える
        • 特徴量空間で上位10近傍のサンプルの中からランダムに選択したラベルを使用
    • Teacher modelとStudent modelの推論確率のKL Divergenceを最小化するよう最終モデルのパラメータθを更新
    • 最終モデルによる推論結果を元の正解ラベルで評価しθをさらに更新
    • θの移動平均でteacher modelのパラメータを更新
  • 以下を変更し、Algorithm 1を繰り返す(論文では3回)
    • 直近のAlgorith1で得られたモデル群の中で最も検証精度の高いモデルをMentor modelとする
      • 通常はTeache modelが選択されるとのこと
    • Mentor modelで推論確率が低いサンプルを学習データから外す
    • Student modelの推論確率分布をTeacher modelとMentor modelの推論確率の重み付き平均した分布に合わせる。
    • このイタレーションが有効に機能するためには質の良い検証データが必要と思われる。
      • 特に論文中でこの点は記載されていないが、質の良い検証データとテストデータにより実験している。
      • イタレーション無しでも、それなりに性能改善はしている

Clothing1Mによる評価

  • Clothing1M
    • オンラインショッピングサイトの説明文から正解ラベルを作成した100万枚の画像データセット
    • 正解クラスは14分類
    • 74,000枚の質の良いデータも有る

f:id:y_kurashina:20190810171605p:plain

f:id:y_kurashina:20190810171704p:plain

  • Mentor modelによる推論確率
    • 図の上側のオレンジが教師ラベル
    • 図の下側の水色が推論ラベル

スポンサーリンク


Collaborative Global-Local Networks for Memory-Efficient Segmentation of Ultra-High Resolution Images

スポンサーリンク


f:id:y_kurashina:20190803231214p:plain
Fig1. GLNet

f:id:y_kurashina:20190803235106p:plain
Fig2. Coarse-to-Fine GLNet

論文URL

http://openaccess.thecvf.com/content_CVPR_2019/papers/Chen_Collaborative_Global-Local_Networks_for_Memory-Efficient_Segmentation_of_Ultra-High_Resolution_Images_CVPR_2019_paper.pdf
2019年のCVPRで公開

ポイント

  • 超高解像度画像に対し省メモリかつ高性能なセグメンテーションを行うGLNetおよびCoarse-to-Fine GLNetを提案
    • 2Kや4K画像の様な数Mピクセルの画像をターゲットにした研究
    • これまでに良く採られている方法とその問題点
      • 入力画像を低解像度化 : 精細な構造情報が消えてしまう
      • 入力画像を小さいパッチに分割 : グローバルな構造を見逃すことに伴う精度低下
    • GLNetでは、Global Branchで低解像度化した画像を、Local Branchでパッチに分割した元解像度(=高解像度)の画像を処理し、これらの結果を統合してセグメンテーションを行う(Fig1)
      • パッチを1枚ずつ逐次処理することでメモリの使用量を抑えている
      • Global Branchの特徴量マップから各パッチの空間範囲の特徴量をLocal Branchに渡すことで、各パッチの計算の際にグローバルな特徴も利用できる
    • Coarse-to-Fine GLNetは、背景領域が支配的なケースに対してGLNetのコンセプトを拡張したモデル(Fig2)
      • Global Branchが検出した対象領域を切り出し、切り出した領域のみLocal Branchにかける
      • Local Branchは(Global Branchが誤検出しなければ)検出対象領域を集中的に学習することになるため、検出対象領域と背景領域の画素数のアンバランスが大幅に軽減される

GLNet

f:id:y_kurashina:20190803234954p:plain
Fig3. GLNetの詳細

  • Global BranchとLocal BranchのいずれもResNet50をバックボーンとしたFPN (Feature Pyramid Network)で特徴量を計算
    • どちらのBranchも入力画像サイズは500x500
    • Local Branchに入力するパッチは50画素ずつオーバーラップさせている
  • Local Branchでパッチ画像を処理する際、Global Branchで計算した同一領域の特徴量をupsampleしてconcatしている
  • Local Branchで計算した特徴量をdownsampleしてGlobal Branchの特徴量にconcatしたテンソルがGlobal Branchの最終的な出力となる
  • 両Branchの出力をAggregationすることで最終的なセグメンテーション結果を得る
    • 両Branchの出力をconcatし、3x3の畳み込みを行っている
  • 学習時の工夫
    • Aggregation結果だけでなく各Branchの出力テンソルからもセグメンテーションを行い、補助損失(Auxiliary Loss)を計算している
      • Main Loss, Auxiliary Loss共にFocal Lossで計算
        • 各Lossの重みは同じ(λ=1)
    • 両Branchの出力テンソルの差のL2ノルムを正則化項としてLossに追加
      • λ = 0.15
      • この正則化項からはLocal Branchのパラメータのみ更新している
        • この正則化を行わないと、Local Branchの方がGlobal Branchよりも学習が早く進み、局所領域の特徴を過学習してしまうとのこと

DeepGlobeによる評価結果

f:id:y_kurashina:20190804002958p:plain

  • DeepGlobeは衛星画像に対し7種の土地被覆ラベルが付いたデータセットで画像サイズは2448x2448
  • 論文内では、皮膚がんのスクリーニングを行うISICや航空機画像で建物検出を行うInria Aerialデータセットでも評価しており、いずれのデータセットでも性能(mIoU)の向上と省メモリ化を実現している

スポンサーリンク