Written by Ryusei

機械学習における「leakage」とは?【15分で徹底解説】

programming

今回は、機械学習における落とし穴である「leakage」の問題について解説していきます。機械学習を始めたばかりの人や、学生など気づかないうちにleakageを起こしている場合もあります。この記事を読むことでleakageについてしっかりと理解することが出来ます。

それでは、見ていきましょう。

 本記事のテーマ

機械学習における「leakage」とは?【15分で徹底解説します】

 目次

  1. leakageとは
  2. leakageの実例
  3. leakageの問題点
  4. leakageの解決策

スポンサードサーチ

1. leakageとは

leakageとは、直訳すると「漏れ、漏洩」です。機械学習で言うleakageは「情報漏洩」の意味です。

一言で説明すると、機械学習におけるleakageは訓練用データセットの中に、テスト用のデータセットが含まれている状態のことを言います!

画像に alt 属性が指定されていません。ファイル名: leakage.png

具体的に説明していくと、上の図のように訓練用データの中に、仮テストデータやテストデータが含まれてはいけないということです!

訓練データの中に、テストデータが含まれるということは、答えを知っている。

つまり、カンニングし放題の状態であるという事になります。

これは大問題ですよね!

もちろん、わざとLeakageをおこす人はいないですが、

気づかないうちに、情報が漏洩している(=訓練データにテストデータが含まれる)場合があります。

よくある事例

画像に alt 属性が指定されていません。ファイル名: dataaugmentation.png

上の図のように、元画像100枚の画像に対して、回転、反転、ノイズなどのデータの水増し(Data Augmentation)を行うことにより、500枚に増やし、その後、シャッフルして訓練データ400枚、仮テストデータ50枚、テストデータ50枚にデータセットを分割しました。

データの水増しは、画像を増やしたと考えてください!

何が問題でしょうか?

画像に alt 属性が指定されていません。ファイル名: augmentation_leakage.png

⇒訓練データにテストデータの一部が混入してしまう

これが問題ですね!1枚の画像から複数枚が生成されているので、画像全部を増やしてシャッフルしてから訓練用、仮テスト用、テスト用に分割してしまうと上の図からも分かるように訓練データの中に混入してしまう可能性があります。

このように機械学習におけるleakageは非常に大きな問題です。

機械学習におけるleakageの特性を理解することは、研究をしていく上で非常に重要になりますので、理解しておく必要があります。

2. leakageの実例

1つ目の項目で、leakageについて説明し、leakageの問題点について理解できたと思います。
ここからは、実際にleakageが起きてしまっている事例について紹介したいと思います。

Deep learning for liver tumor diagnosis part I: development of a convolutional neural network classifier for multi-phasic MRI
Charlie A Hamm , Clinton J Wang , Lynn J Savic , Marc Ferrante , Isabel Schobert , Todd Schlachter , MingDe Lin , James S Duncan , Jeffrey C Weinreb , Julius Chapiro , Brian Letzen
Affiliations expand
PMID: 31016442 PMCID: PMC7251621 DOI: 10.1007/s00330-019-06205-9
Free PMC article

この論文を、こういった形で紹介するのは研究チームに対して非常に申し訳ないので、あまり紹介したくはないのですが、この論文は肝腫瘍の診断のために有用な深層学習モデルを開発したという素晴らしい論文であります。

この論文は、非常に精度の高い結果の出ている素晴らしい論文で、39年の専門医Aと7年の専門医Bの人間が診断を行った場合の、感度、特異度をこの深層学習モデルは超えたという素晴らしい結果を出しています。

しかし、こういった精度がかなり高い論文には問題があることがあります。上図からも分かるようにTestsetをそのままValidationに使用して学習させているためここで、leakageが起こってしまっています。

スポンサードサーチ

3. leakageの問題点

これまで、leakageについて勉強し、実際にleakageが起こっている事例を紹介してきました。
ここで、改めてleakageの問題点について紹介していきたいと思います。

Leakageについてしっかりと知っていないと上の図のような悲劇が起きてしまいます。

また、なかなか医療(専門分野)と人工知能(AI)の分野どちらともに精通している人材が少ない現状があり、間違った研究が普及していることに繋がっています。
こうした現状が、AIに仕事を奪われてしまうという情報が世の中に溢れている原因とも言えると思います。
2つの分野を理解していないと片方だけでは、こうした研究の落とし穴に気づくことが出来ないのです。

せっかくの努力や実績が無駄になってしまう事もあるので、Leakageについてしっかりと理解をし、これから研究や開発をしていく上で、Leakageに気をつけていきましょう。

また、今のうちから2つの分野を学んでおくことで他にはない人材になることが出来ます!

AIを学ぶ必要性やAIに仕事を奪われるのか?などについてまとめているので見てみてくださいね。

4. leakageの解決策

解決法① データセットをしっかり分割する

画像に alt 属性が指定されていません。ファイル名: databunkatu.png

上の図のように元のデータセットを学習させる際には、訓練用のデータとテスト用のデータの2つに分割する必要があります。

当たり前な事ですが、重要なことなので覚えておく必要があります。

画像に alt 属性が指定されていません。ファイル名: sindata.png

さらに大前提として、「モデルの学習には、テストデータについての情報を一切知らない」ことが望ましいとされています。

つまりは、モデルを作るためにデータセットを仮テストデータ(検証用:validation)真のテストデータに分けるとさらに良いという事になります。

解決法② 水増しの際は訓練データのみ!

水増しするのは、訓練データのみにする!これが解決策であり、必ず守るようにしてください!

画像に alt 属性が指定されていません。ファイル名: kunren_augmentation.png

上の図のようにすることで、Leakageを防ぐことが出来ます。

スポンサードサーチ

まとめ

  • 機械学習におけるleakageとは情報漏洩のこと!
  • leakageは間違った研究に繋がってしまう可能性がある!
  • 解決策①テスト用と訓練用のデータセットはしっかり分ける!
  • 解決策②水増しの際は訓練データのみにする!