教師なし学習とは?
こんにちは!
現役Webエンジニアの今井(@ima_maru)です。
今回は、機械学習の手法の「教師なし学習」について解説していこうと思います。
教師なし学習は機械学習の手法の1つであり、教師あり学習の対極であるような学習方法です。
そんな教師なし学習について、以下のようなことを解説します。
- 教師なし学習とは
- 教師なし学習の具体的な手法
- 教師なし学習の活用例
それでは見ていきましょう。
教師なし学習(Unsupervised Learning)とは?
教師なし学習とは、その名の通り「教師データのない学習方法」です。
人間がAIに教え込む教師あり学習とは違い、AIがデータの法則性や関連性を見つけていくというような学習方法になっています。
そのため、人間から見て「これは気づかなかった」「こんな発見が・・・」ということがあり、分析面で重宝されています。
教師あり学習がわかっていると理解が早いと思いますので、ぜひ一度教師あり学習についての記事もご覧ください。
例として画像認識を挙げると、以下のようになります。
- 教師あり学習の場合:犬の画像を犬、猫の画像を猫として学習させる
- 教師なし学習の場合:画像の中で特徴量の似ている画像に分類・グループ分けする
教師なし学習の場合は、AIがどのように分類したのかを人間が解釈しなくてはいけません。
またどういった特徴で分類されるかもわからないため、犬と猫のように分類される場合もあれば、体の色で分類される場合もあるでしょう。
教師なし学習は、「学習」というよりはどちらかというと「分析」のイメージが強いと思います。
教師なし学習の具体的な手法
クラスタリング
教師なし学習で一番わかりやすいと思うのが「クラスタリング」と呼ばれる手法です。
日本語に訳せば「分類」という意味です。
クラスタリングとは、簡単言えば「特徴の似ている者同士でグループを作り、いくつかのグループに分けること」を言います。
人間が、直感的に「あ、これとこれ似てる。」というのと同じイメージで分類します。
具体的には、特徴量の似ているもの同士を同じグループに分類するようにして、指定した条件(グループ数の制限など)を満たすまでグループ分けしていきます。
以下は、k-means法というクラスタリング手法の様子です。
主成分分析・次元削減
主成分分析とは、その名の通り、「主成分の分析」です。
もっとかみ砕いて言えば、「いろんな情報がある中から重要な情報だけを抜き取る」という統計学を使った技術です。
「一番の核となる情報はなんだ!」ってことです。
例えば、5人の生徒を対象に「国語」「数学」「理科」「社会」の4教科のテストを実施したとします。
国語 | 数学 | 理科 | 社会 | 総合得点 | |
---|---|---|---|---|---|
Aさん | 63 | 80 | 82 | 42 | 267 |
Bさん | 65 | 100 | 98 | 60 | 323 |
Cさん | 96 | 45 | 50 | 95 | 286 |
Dさん | 83 | 79 | 81 | 76 | 319 |
Eさん | 95 | 98 | 89 | 94 | 376 |
これだといろいろ項目あって、なんかパッとしないというか。見るの疲れますよね。
なので以下のようにします。
理系度 | 総合得点 | |
---|---|---|
Aさん | 20 | 267 |
Bさん | 30 | 323 |
Cさん | -40 | 286 |
Dさん | 1 | 319 |
Eさん | -1 | 376 |
こうすれば、データがすっきりしましたね。これは、
- 国語の点数が高い人は、社会の点数も高い(文系力)
- 数学の点数が高い人は、理科の点数も高い(理系力)
っていうデータが出ているので、まとめてしまおうということです。
理系度という情報だけで、数学と理科(理系科目)に点数が偏っているのか、国語と社会(文系科目)に点数が偏っているのかを表すことができています。
このように、実際のデータから、核となる「主成分」を抜き取る処理を「主成分分析」といいます。
今回の主成分は、「総合得点」「理系度」の二つにまで絞ることができました。(データによってこのようにできない場合もあります。)
主成分分析を使えば、データ項目を減らして考えること(次元削減)ができるので、大量のデータを扱うデータ分析の分野で多く使われています。
GAN(敵対的生成ネットワーク)
現在非常に注目を浴びている「GAN(敵対的生成ネットワーク)」も教師なし学習の一種です。
これは、本物に近い偽物のデータを生成する生成器(Generator)とそれを本物か偽物かを判別する識別器(Discriminator)からなる構造をしています。
生成器と識別器がともに切磋琢磨して学習をするというのが特徴で、生成器はより本物に近いデータを生成するようになり、識別器はより高精度で本物か偽物かを判別できるようになります。
GANを使うと、実際に存在しそうな画像を1から生成することも可能です。
教師なし学習の活用事例
データ分析・マーケティング
教師なし学習は、データを分析することに長けているため、マーケティングの分野で重宝されます。
例えば、クラスタリングの結果、「タバコ」と「ライター」が同じグループになったとします。
つまり、「ターゲット層が似ている」「一緒に買われやすい」というデータが出たということです。
そうであれば、「タバコ」の近くに「ライター」をおいておけば購入してくれるお客さんがもっと増えるかもしれませんよね。
このような分析のことを「アソシエーション分析」と言ったりもします。
ここで面白いのが、その商品Aと商品Bは人間から見て全く関係ないようなものに見えることがあるということです。
有名な都市伝説的なものに、「おむつ」と「ビール」の関連性の話があります。
「米国の大手スーパーマーケット・チェーンで販売データを分析した結果、顧客はおむつとビールを一緒に買う傾向があることが分かった。調査の結果、子供のいる家庭では母親はかさばる紙おむつを買うように父親に頼み、店に来た父親はついでに缶ビールを購入していた。そこでこの2つを並べて陳列したところ、売り上げが上昇した」
引用:https://www.itmedia.co.jp/im/articles/0504/18/news086.html
このように、人間ではわかりづらいような商品の関係性を分析して、売上向上を狙うこともできるのです。
教師なし学習は、人間の先入観などがないため、人間があっと驚くような発見ができるというのも特徴的ですね。
画像の自動生成
教師なし学習の一種であるGAN(敵対的生成ネットワーク)を用いて、画像の生成を行うことができます。
例えば、以下のようなことが可能です。
- 文章から画像を生成する
- 白黒画像に色を付ける
- 低解像度の画像を高解像度にする
- 存在しない人の顔画像を作り出す
- 動画において一般人の顔を有名人の顔にする(ディープフェイク)
画像認識
画像認識は教師あり学習の得意分野ですが、実は教師なし学習でも行われています。
Googleが2012年に行った教師なし学習での画像認識では、猫の画像を猫と教えることなく、猫を認識したという結果が出ています。
顔画像認識
顔画像に対して主成分分析を行うことにより、いくつかの主成分により顔画像を表すことができるようになります。
この時に現れる主成分の特徴量を比較することにより、顔画像認識を行うことができます。
画像の減色処理
クラスタリングを使うと、同じような色をまとめて1つの色として扱うことができるようになります。
そのため、使える色の数に制限を持たせる場合などで活用できます。
最後までお読みいただきありがとうございます。