みたにっき@はてな

三谷純のブログ

機械学習の「半教師あり学習」の簡単な説明

機械学習の応用として、画像の分類がよく例に挙げられます。

 

与えられた画像に対して、「これは猫の画像」「これは犬の画像」というように分類することが目的になります。

 

これには、前もって「犬」とか「猫」などのラベルの付いた画像を準備して、それぞれのラベルに対応する特徴を学習しておくことで、新しい画像に対して「犬の確率○%」というような出力をします。

「これは犬なんだよ」ということを前もって教えておくので、「教師あり学習」と呼ばれます。

 

一方で、そのような情報を与えずに、いきなり「これらを分類してみ」というのを「教師なし学習」と呼びます。

事前に何も教えておかないので、当然「これは犬ですね」なんて答えることはできず、「全体として3つのグループに分かれるっぽいよ。で、これとこれは違うグループっぽい」とか、そういう出力になります。

 

では、「半教師あり学習」とは何でしょう。
これは、ラベルの付いた画像と、ラベルの付いていない画像を使います。

ラベルの付いた画像を準備するのは手間がかかりますが、ラベルの付いていない画像は簡単に集まります。

直感的には、ラベルの付いた画像だけあれば十分で、ラベルの付いていないものがたくさんあったとしても意味がない気がします。でも、ラベルの付いていない画像があることで、学習効果を高めることができます。

 

そのことを、「ラーメン」と「うどん」の識別を行う例で考えてみましょう。


事前に「ラーメン」とラベルが付いた画像と、「うどん」とラベルの付いた画像がいくつかあるとします。でも、数が十分でないと、どちらもなんとなく似ていて、どこを見て判断すべきか微妙だったりします。

 

たまたまナルトが写っているラーメン画像が多かった場合、「ナルトがあればラーメンだ」「ナルトが無ければうどんだ」と判断することになるでしょうし、たまたまラーメン画像には全て赤い器が写っていた場合、「赤い器があればがラーメンだ」と判断することになるでしょう。

 

さて、ラベルなしのデータ群の中から、この「ラーメン画像」と似ているものを探してみます。すると、全体的にラーメン画像に似ているけども、ナルトが写っていないものや、赤い器ではないものが見つかります。
そうすると、「ナルトを基準に判断するのはあまり適切でない」とか「器の色では判断しきれない」ということがわかります。

一方でラベルなしのデータ群の中から「うどん画像」と似ているものを探してみると、赤い器に入ったものが見つかったりします。

そうすると、ラーメンとうどんの違いは、器の色ではなくて「麺の色や太さで判断するのが適当そうだ」という結論に近づくことになるでしょう。

 

このように、「確実にラーメンな画像と、それに似た画像の集合」と「確実にうどんな画像と、それに似た画像の集合」から、「ラーメンとうどんを見分ける基準」が、より適切になる可能性があります。

 

このように、ラベルの無い画像も画像の分類の精度向上に役立てることができるのです。これが、「半教師あり学習」の利点の一つです。