(リード文:前田恵理子)

アルゴリズム開発部門の研究とは
花岡:この集団はイメージラボのCAD (コンピュータ支援診断) 開発班 となっております。もっとも、ここにはいらっしゃらないけど野村先生とかも開発してらっしゃったので全員ではないんですけどね。システムを開発するCIRCUS班とは違って、実際に医用画像を食べさせると病変が検出されて出てくるようなものをやってくださっています。というわけで、おふた方かなり近いこともやってらっしゃると思うんですが、そういうことも踏まえて何をなさっているのかお話しいただけますでしょうか。
柴田:今は、フローベース深層生成モデルGlow [1] をつかって異常検知 [2]と架空画像の無限生成をやっています。大量の医用画像をつかってまずモデルを学習し、学習したモデルに乱数を入れると架空の医用画像がひとつ生まれる、というものが生成モデルなんですけれども、その生成モデルの一種であるフローベース深層生成モデルを使っています。
前田:架空画像ってGAN (Generative Adversarial Network) [3][4] のこと?
[1] Kingma DP, Dhariwal P, Francisco S. Glow: Generative Flow with Invertible 1×1 Convolutions. arXiv:1807.03039 [stat.ML]. 2018. https://arxiv.org/abs/1807.03039 [2] 異常検知 Anomaly Detection: 正常なデータと異なるもの、特に外れ値のようなものを検出しようとする試みの総称。 [3] Goodfellow IJ, Pouget-Abadie J, Mirza M, Xu B, Warde-Farley D, Ozair S, et al. Generative Adversarial Networks. arXiv:1406.2661 [stat.ML]. 2014. https://arxiv.org/abs/1406.2661 [4] Radford A, Metz L, Chintala S. Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks. arXiv:1511.06434 [cs.LG]. 2015. http://arxiv.org/abs/1511.06434
中尾:GANもその深層生成モデルの一種ですが、GANとは原理が違うけれども同じように画像を生成したりできるもの、を使って研究されています。
前田:それは、具体的にいうとどんなことができるんですか?
柴田:そうですね、2つあると考えておりまして、一つは密度推定です。密度推定というのは、確率密度関数の値を推定できるというものですね。つまり、医用画像 が存在する確率 を推定できる、数値化できるというものです。それが推定できると異常検知ができます。
中尾:医用画像 が存在する確率を推定して、確率が低かったら異常、ということでしょうか。
柴田:そうですね、直感的にはそうです。で、もう一個がサンプリングですね。サンプリングは、ランダムな数列をとってきてそれをモデルに入れると現実的な医用画像が出てくるというものです。まあ複雑な非線形の変換関数をかますんですけれども、その変換関数を学習するような仕組みになっています。
花岡:広い意味で言えばdeep learning (深層学習) の一種です。生成モデルはdeep learningでなくても作れますけど、deep learningの一部として深層生成モデルなるものがあります。ちなみに他には深層識別モデルというものがありまして、これが従来のCADと思っていただいていいです。このチームの特徴のひとつは、その生成モデルのほうを使っているというところにあります。

識別モデルと生成モデルの違い
前田:識別モデルと生成モデルは何が違いますか?
中尾:たとえば入力された画像に病気があるかないかとか、そういうのを見分けるのが識別モデル、架空の画像を生成したりとか、そういうのが生成モデルです。
前田:なるほど。で、診断をするのは識別モデルですよね?
中尾:と思いきや、生成モデルを診断に頑張って役立てようとしているというのが我々がやっていること、みたいな。
前田:あ、そうなんだ。なんでこれが診断に役立てられるんですか?どういう場面で?
中尾:たとえば、モデルによっては画像の存在確率というかもっともらしさみたいなものが求められたりして、あんまり存在しそうにないような画像は異常みたいなことができたりする。.…ということでよろしいですか?
柴田:はい、ただ数式で書いたほうがもっとわかりやすいと思いまして……
前田:ううっ! がんばります。数式をがんがん書くグループと書かないグループの話がこないだ野村・三木・竹永・秋山グループの座談会(2021年7月30日、2021年9月28日掲載の「AI開発基盤部門座談会」)のときに出てきて、こちら (CAD班) はがんがん書くグループだからという話になりまして……
花岡:当然のように数式がでてきます。

前田:んー?なるほど。これ () は何?
柴田:画像ベクトルですね。
生成モデルの利点
花岡:画像をベクトルとする文化自体がまず初耳である可能性があるから…… は画像です。たんに 1024×1024 だったら 1024×1024=1048576 次元のベクトルとみなすという、そういう話です。
柴田: のほう、つまり生成モデルのほうは、 の特徴そのものをモデル化するわけですね。つまり が猫だとすると、あらゆる猫の特徴を学習するわけです。なのでもし がいったん学習されてしまえばあらゆる猫を生成できるわけですね。識別モデルのほうではそういうことは難しいです。猫と犬で識別モデルを学習すると猫か犬か識別することができますが、効率的に猫を生成したり犬を生成したりはできません。
中尾:あとは、猫でも犬でもないものをその識別モデルに突っ込んだら、どんな答えが返ってくるかよくわからない。
前田:じゃあ、例えば虎を突っ込んだら何が返ってくるかよくわからないのか。
中尾:虎はちょっと猫に近そうなので、もしかしたら猫に近い答えになるかもしれないですね。
前田:じゃあパンダを突っ込んだら?
花岡:いわゆる未定義、どうなってもおかしくない。

柴田:先程からも何回か出てきていますが、純粋な識別モデルは、外れ値が出てきた場合にそれを検出できない可能性が残るわけですね。今回我々は生成モデル2つを組み合わせて識別モデルを実現するわけですが(詳細はページ末尾参照)、この場合はそういう問題が起こりにくい可能性があるわけですね。
花岡:犬と猫を仕分けるものにパンダを入れると何が出てくるかわからないけど、猫と猫以外を仕分けるものにパンダを入れるとちゃんと「猫以外」になってくれるわけです。
中尾:正常と肺炎を見分けるような識別モデルを学習しても肺炎以外の病気は見つけられないですが、生成モデルで正常画像だけ学習すると、正常でないものすべてが検出できる、みたいな。
前田:それって場所付きでわかるんですか?
中尾:やり方によりますが、やろうと思えばできます。
前田:それができれば異常検知ができるってわけか。
中尾:そうです。
生成モデルの教師データ
花岡:識別モデルは単一あるいは2〜3種類の疾患用で、生成モデルは異常検知用になると思っています。あんまり別にみんながそう思っているわけではないと思うけど。我々がやってることってけっこうニッチで、あんまりよくやる方法じゃないんですよ。生成モデルを使ってCADを作ろうというのはけっこう変わったやり方です。同じ数の画像があって、ラベルが完璧についていれば識別モデルのほうが勝つと思う。ただ、異常か正常かだけしかラベルがないみたいな状況で生成モデルが力を発揮するんだと思います。完璧なラベルって、まああれば問題を解いたのと同じなんだよね。
前田:ちょっとわかんないんですけど、生成モデルでも親というか教師データは要るんですよね?
花岡:生成モデルの教師データは実はまさにお二人がやられている、とくに柴田さんがやられていることですけど、正常の画像山程と、正常と異常が混在した画像山程でいいんです。
前田:でも正常の画像って……なに? たとえば石灰化があっちゃいけないっていうこと?
花岡:完全に何も所見がない人がいればそれに限ってもいいかもしれませんけど、まあ、なにもかもが正常のひと、どこもかしこも正常な人っていうのはむしろ特異点なんですよ。ある程度正常な群とある程度異常な群があって、それぞれの画像が山程あれば、画像ひとつひとつにラベルがちゃんとついてなくてもいいくらいの、そんなファジーな状況下で生成モデルを学習することに成功しています。
中尾:画像だけから学習できるという感じですね、生成モデルは。識別モデルは、「これは肺炎です」「これは正常です」みたいなラベルがないと学習できないんですが、生成モデルは胸部単純写真だけ大量にあれば学習できる。みたいな違いがあります。
前田:はー、やっとちょっと繋がってきた。それを数学的にやってるのが柴田さん、と。
柴田:数学的というよりは応用、ですね。
花岡:プログラミングして、実際にそういうCADを作ってもらっています。もちろん、書いていただいた論文には数式がたくさんでてきます。で、ちょっと違う切り口でCADを作ろうとしていて、それはいろんな病気、いろんなというか理屈上はあらゆる病気に対応できるもので、その代わりなかなか性能がでなくて、阿部先生から性能でないのって言われてしょんぼりしている今日このごろです。興味があるから言ってくださるんだと思いますけど。
理工学系研究者も活躍できる放射線科

花岡:なんかだいぶ口を出してしまいましたが、柴田さんがやっている仕事はこの深層生成モデルの、GANとは違うやつを使っている、で、その結果として異常検知ができるという仕掛けです。ということで、あと話すことは……
柴田:あーそうですね、あと2つくらいやってますね。2つのうち1つは人体の経年変化、経時変化です。人体のあらゆる部分を映した医用画像を深層生成モデルで学習して、いま撮った画像から数年後の自分の画像を予測するというようなことをやっています。
前田:へー! なんか怖い (笑)。でもそれができたら、「このちょっとした変化から癌ができてる」とかそういったことがわかっちゃうってことだよね。
柴田:ええ、なので結果的に異常検知にも応用できると考えています。もう一つは、一枚の2次元X線写真から、3次元のCTを復元するということをやっています。
花岡:……という3つがいまやってくださってることですね。最後に最近掲載された柴田博士の内容を論文を紹介して締めましょうか。本日はお疲れさまでした。
柴田さんの異常検知研究について
Shibata H, Hanaoka S, Nomura Y, Nakao T, Sato I, Sato D, et al. Versatile anomaly detection method formedical images with semi-supervised flow-based generative models. Int J Comput Assist Radiol Surg. 2021 Dec;16(12):2261–7. doi: 10.1007/s11548-021-02480-4
柴田さんの研究で行われていることは上図の猫とパンダの例えよりもう少し複雑で、以下のような2つの生成モデルを組み合わせることで異常検知を行っています。
「正常画像のみのデータセット」で学習した生成モデル
「正常画像と異常画像を混合したデータセット」で学習した生成モデル
このとき、画像 が正常画像である確率 は、この2つの生成モデルそれぞれに画像 を入力したときの出力 , の比を取ることで以下のように計算できます (ベイズの定理)。 は比例を表す記号です。
直感的な説明は少し難しいですが、対象が胸部単純写真だとすると、右辺の分子は「正常胸部単純写真としてのもっともらしさ」、分母は「(正常異常問わず) 胸部単純写真としてのもっともらしさ」です。たとえば異常な胸部単純写真を入力すると、分子が小さく、分母が大きくなるので「正常である確率」は低くなります。
