【肺がん検知を改善する】Data Science Bowl 2017

この記事を書いた人
北爪 聖也

株式会社pipon代表取締役。 キャリアはADK(広告代理店)でテレビ広告運用をして残業120時間するが、ネット広告では自分の業務がAIで自動化されていることに驚愕する。そこで、機械学習受託会社に転職し、技術力を身につけた後、piponを創業。現在、製薬業界、大手監査法人、EC業界、様々な業界でAI受託開発事業を運営。

概要

概要

 アメリカにおいて、肺がんは毎年225,000人を苦しめ、120億ドルの医療費がかかっている。患者が回復し、生存するためには、早期発見が非常に重要である。

 2016年、アメリカの副大統領室は、がんの予防・診断・治療における10年分の進歩をわずか5年で達成するための”Cancer Moonshot”を率先して実施した。

 2017年、Data Science Bowlは、肺がんを検知するアルゴリズムを開発するためにデータサイエンスや医療コミュニティを集結することで、Cancer Moonshotを助ける画期的なできごとになるだろう。

 国立がん研究所が提供する何千もの高解像度肺スキャンのデータセットを用いて、参加者は肺の病変ががんであるかどうかを正確に判断するアルゴリズムを開発する。これにより、現在の検出技術を悩ませている偽陽性率が劇的に減少し、患者がより早く救命処置にアクセスできるようになり、放射線科医が患者に費やす時間が長くなることになる。

評価指標

 評価指標にはLog Lossを用いる。

周辺技術・知識

偽陽性率

 検査の性能を表す指標の一つで、検査で検出したい信号や疾患を有さないもののうち、検査が誤って陽性と判断したものの割合である。

Log Loss

 完璧なモデルではLog Lossは0になり、予測値が正解ラベルから離れるほどLog Lossは1に近づく。例えば、2値分類で予測の確率値(0~1の間の値をとる)が、0.5付近の値が多いとLog Lossの値は1に近づき、0と1に綺麗に分かれるとLog Lossは0に近づく。

結節

 「しこり」とも呼ばれ、甲状腺の細胞が変化したものである。結節には良性と悪性(がん)があり、多くは良性である。

CT検査

 CTとは、Computed Tomography(コンピュータ断層撮影)の略である。人体の輪切り画像をコンピュータによって再構成する装置である。
近年の技術進歩により、全身の撮影ができ撮影時間も短い上、0.5ミリメートルの間隔で断層画像を作成できるため、ごく小さい病変も描出可能である。
 造影剤を使用することにより、腫瘍などの病変部位がわかりやすくなり、腫瘍付近の血管走行や栄養血管を把握することも可能である。 画像データから任意断面像や血管像を作成し、詳細な診断情報を提供している。

CT値

 CTの画像において、2次元画像は小さな正方形の「ピクセル」言い換えると「画素」から構成されている。また3次元は立方体の「ボクセル」から成り立っている。ピクセルやボクセルには白黒の濃淡値(画像濃度値)が与えられCT画像を表現している。この画像濃度値のことを(医科用)CTでは「CT値」と呼んでいる。
 人間の体の約60%は水からできているため、CT値は水を原点のゼロとして、何もない空気の状態を最低の値である-1000で表現している。そして空気の-1000は、CT画像上では真っ黒に表現するように設定されている。

 「CT値」はその発明者の名前にちなんで「ハンスフィールドユニット(Hounsfield Unit)」または「ハンスフィールドナンバー(Hounsfield number)」と呼ばれている。また、CT値の単位はハンスフィールドユニットを略して「HU」で表す。

ガウシアンぼかし

 ガウス関数をもちいて画像をぼかす処理である。デジタルカメラの撮像画像などからノイズを除去したりするのに用いられる。

ボクセル

 三次元的な広がりを持つ画像である。画像を複数枚積み重ねたものに相当する。三次元画像とも呼ばれる。
代表的なものに、CTスキャンやMRI、地震波トモグラフィーによって得られたデータがある。

凸包

 凸包(convex hull)とは、与えられた点をすべて包含する最小の凸多角形(凸多面体)のことである。

アノテーション

  アノテーションはテキストや音声、画像などあらゆる形態のデータにタグを付ける作業のことである。機械学習アルゴリズムはタグが付いたデータを取り込むことで、パターンを認識できるようになる。そのためAI開発者は、機械学習アルゴリズムを学習させるために、タグが付いた状態のデータを用意することが必須となる。正確にタグ付けできていないデータを取り込んでも、AIは正しく学習できない。そのため、アノテーションは機械学習における、不可欠な前処理といえる。

畳み込みニューラルネットワーク

 ニューラルネットワークとは、脳内の神経細胞(ニューロン)のネットワーク構造を模した数学モデルである。相互に接続する複数ノードからなる多層で構築されている。ニューラルネットワークはデータから学習できるという特徴から、パターン認識、データ分類、未来の予測に活用されている。

 畳み込みニューラルネットワーク(Convolutional Neural Network: CNNまたはConvNet)とは、何段もの深い層を持つニューラルネットワークで、特に画像認識の分野で優れた性能を発揮しているネットワークである。このネットワークは「畳み込み層」や「プーリング層」などの幾つかの特徴的な機能を持った層を積み上げることで構成され、現在幅広い分野で活用されている。

U-Net

 U-NetはFCN(fully convolution network)の1つであり、画像のセグメンテーション(物体がどこにあるか)を推定するためのネットワークである。一般的なCNNでは畳み込み層と全結合層があるが、FCNはこの全結合層を畳み込み層に置き換えたものである。全結合層を畳み込み層に置き換えることで、「物体がなにであるか」という出力から「物体がどこにあるか」という出力になる。

IOU

 IOU(Intersection over Union)は物体検出における評価指標である。 IOU = Intersection(領域の共通部分) / Union(領域の和集合)で定義される。2つの領域が「どれくらい重なっているか」を表す指標であり、正解領域と予測領域の重なりが大きいほど IOU の値は大きくなる。予測領域がズレていたり、正解領域内でも小さすぎたり、正解領域を含んでいても大きすぎると IOU の値は低くなる。つまり、IOU の値が大きいほど「物体検出がうまくできている」と言える。

MaxPooling

 Poolingの入力=Convolutionの出力の範囲の中の「最大の数字」だけを出力すること。

優勝チームの解法・見解

流れ

前処理→肺結節の検出→悪性腫瘍の判別

前処理

 最初に生データを全てHU値に変換する。

 ボクセルサイズを1mmに設定する。各スライス画像に対してガウシアンぼかしをかけ、-600を閾値として2値化する。各スライス画像に対して面積が6000mm2以上かつスライス画像の中心からも距離が62mm以上の領域は除外する。残りの領域を抽出し肺野領域のマスクデータを構築する。

 最も大きい2つの連結領域の体積が同じぐらいになるようにマスクを拡げる。各スライスに対して、2Dの2値画像をマスク領域の凸包に置き換える(ただし面積が50%以上増加する場合は実施しない)マスクデータは肺野より10ボクセルほど大きくなる。

 生データをHU値が[-1200,600]の範囲になるように切り出して、[0,255]に線形変換する。マスク領域外は170の値を入れる。(170は組織と同等の信号強度である)信号値が210より大きい領域(大抵は骨)の領域も170に変更する。

データセット

 LUNA16(以下LUNAと略)とKaggle Stage 1(以下Kaggle1と略)の2つのデータセットを利用する。LUNAには放射線科医による肺結節のアノテーションされたデータがある。Kaggle1には症例ごとに悪性腫瘍か否かのラベルのみが存在する。

 データセットには2つの問題がある。1つめは、LUNAでは、がんに関係のあるとても小さな肺結節にアノテーションがされている。Kagge1には存在するが、LUNAにはめったに見られない2種類の肺結節がある(1つめは60mmより大きい非常に大きな肺結節で、2つめは気管支の上にある結節である)この2つの問題を解決するために、LUNAのアノテーションから6mmより小さな肺結節を取り除き、Kaggle1の肺結節に手動でラベル付けをした。

肺結節の検知

 疑わしい肺結節を検知するために、3次元の畳み込みニューラルネットを利用した。

 訓練時に、症例ごとのデータをまるごと使いたかったが、GPUメモリの都合上断念した。このため、CTデータを128×128×128で切り取った画像を訓練に用いた。少なくとも1つの肺結節を含むデータ(入力の70%)と肺野からランダムに抽出したデータ(入力の30%)の2種類の画像をランダムに選択した。もし画像が肺の領域外まで及んだときは、前処理と同様に170という値を入れた。過剰適合を軽くするためにデータを増大した。具体的には、 左右を反転させたり、0.8〜1.5で拡大縮小したりした。回転、軸の入れ替えなどの他の処理は改善に繋がらなかったので採用していない。

  小さい肺結節は大きい肺結節よりずっと数が多いが、大きい肺結節の方が悪性腫瘍である可能性が高いため、大きい肺結節を検出する割合を増やした。

 負のサンプルは正のサンプルより圧倒的に多いので、なるべく正のサンプルと割合が近づくよう、判断の難しい負のサンプルを次の方法で抽出した。まずはじめに、ネットワークを用いて信頼度を算出した。次に、N個の負のサンプルを候補として挙げた。最後に、候補として挙げた負のサンプルを信頼度の高い順に並び替えて上位n件を判断の難しい負のサンプルとして抽出した。

 ネットワークはU-Netをベースとした。クラス分類スコアの算出と物体の詳細位置推定を行った。ネットワークには3つのアンカーがあり、それぞれ10mm、30mm、60mmに対応する。IOUを用いてクラスを分類し、IOUが0.5以上なら正のサンプル、0.02以下なら負のサンプルとして扱い、ほかのものは無視した。出力のサイズは32×32×32×5×3である。

悪性腫瘍の分類

 以降、肺結節検出ネットワークをN-Netと略す。N-Netにおける信頼度に基づいて上位5件を入力候補とした。入力サイズは128の特徴量からなる128×128×128の立方体である。上位5件それぞれについて2×2×2ボクセルでMax Poolingを行った。

 N-Netを常に意味のあるものにしておくために、がん分類ネットワーク(以下C-Netと略)の訓練中にもN-Netを訓練した。 世代ごとに、C-NetとN-Netそれぞれの1ステップでネットワークパラメータを更新した。畳み込み層はN-NetとC-Netで共有した。最初は反転によるデータの増大のみを行ったが、ほかの方法で微調整した(反転、サイズ変更、交換、回転)

参考url

Data Science Bowl 2017

NATIONAL CANCER INSTITUTE / Cancer Moonshot

統計WEB 偽陽性率

機械学習でLog Lossとは何か

Full Preprocessing Tutorial

[Survey] Kaggle – DSB2017 1位解法まとめ

DSB2017/solution-grt123-team.pdf(1位解法のドキュメント)

QA10-5 「のう胞」、「結節」とは何ですか。

CT検査

CT値とは?

CT値の単位はHU

データの種類:ピクセルとボクセルとポリゴン【3D技術解説①】

ガウシアンぼかし

テーマ3:凸包

AI開発でよく耳にする「アノテーション」とは?

ニューラルネットワーク

畳み込みニューラルネットネットワーク(CNN)

画像セグメンテーションのためのU-net概要紹介

IoU(評価指標)の意味と値の厳しさ

CNNのプーリング層「MaxPooling」の仕組みを数式なしで整理してみた/ディープラーニング