■人工知能

人工知能の作り方【教師なし学習とは】

■人工知能

 こんにちは黒部です。
今回は人工知能の作り方として、その生成のアルゴリズムの一つである『教師なし学習』について現役エンジニアが解説します。この記事を読むことで、人工知能を用いたデータ分析手法の一部を学べます。

本記事の目標とレベル

目標 :教師なし学習の概要を理解する
レベル:★☆☆☆☆

人工知能の作り方【教師なし学習とは】

 教師なし学習とは機械学習の手法の一つで、与えたデータの法則をコンピュータに抽出させる方法です。教師あり学習とは異なって人間が正解データを与えることなく学習が進む点が特徴です。そして最終的な目的は、データの法則を捉えて後半で説明する『クラスタリング』と『次元削減』を行うことです。

クラスタリングと次元削減

クラスタリング

 クラスタリングとは与えられた沢山のデータを特徴の類似度でグループ分けをする手法です。データ構造を理解する際により多く用いられ、ビッグデータから有益な情報を得るための貴重な技術です。

 ここではまずクラスタリングの使われ方について紹介します。
そして少し深堀して階層別クラスタリングと非階層別クラスタリングのk-mean法(k平均法)の2例を説明します。(この2例は読み飛ばしても結構です)

クラスタリングの使われ方(一部紹介)

・異常検知
期待されるパターンと一致しないデータを識別することで、何が異常であるかを判断します。
・レコメンドエンジン
利用者の好みに合った商品を提案するシステム。行動・購買履歴をもとにしたユーザーをもとに統計的におすすめ商品などを提示します。
・イメージセグメンテーション
1枚の画像データを複数の部分または領域に分割する処理。様々な画像処理に活用できます。

階層別クラスタリング(読み飛ばしてもOK)

 階層別クラスタリングとは、最も似ている組み合わせから順番にグループ(クラスター)にする手法で、このアルゴリズムを組んだコンピュータにビッグデータを通すと樹形図という形でグループ分けの途中過程が階層のように表せます。そうすることで、その大量のデータの傾向や特徴を知ることができます。

 例えばAmazonの購入履歴をいくつかのクラスターに分けます。そうすると、「ほぼAV機器のみ」「書籍は少しのみ」などの分析結果がわかります。さらに「AV機器クラスター」の中でもどのブランドに注目しているのかといったような更に詳細な分析ができます。
 図をみると機械学習をする必要などなさそうですが、データ数が何千何万と増えていくと全体像を把握することが難しくなりますびのでこれからのビッグデータ時代には重要な技術です。

k-means法(k平均法)(読み飛ばしてもOK)

 k-means法(k平均法)は、任意のクラスタ数となるように平均的に分類する手法です。階層型クラスタリングとの大きな違いは、いくつのクラスタに分割するか、あらかじめ決める必要があるという点です。

 この方法によるクラスタリングの手順を説明します。(絵で説明しますが、実際は全てプログラミングによりコンピュータ上で行われます。)

①データを全てあらかじめ決めた特徴量で整理します。

②任意に決めたk個のクラスタ中心をランダムで設定します。

③各データを最も近いクラスタ中心に紐づけます。ランダムに座標を設定したので、もちろん最初は各データの重心にクラスタ中心はありません。

④クラスタ中心を紐づけたデータの平均座標に移動させます。

⑤再び、各データを最も近いクラスタ中心に紐づけます。

⑥クラスタ中心を紐づけたデータの平均座標に移動させます。少しづつクラスタ中心は各データの平均値に近づいてきました。

⑦これをクラスタ中心が動かなくなるまで繰り返していきます。それによって、任意に設定したk個のクラスタ(分類グループ)に全てにデータを仕分けることができました。

実際にはデータが何個のグループに仕分けられるか事前に判断が難しいため、何度かクラスタ数を振って解析することになります。

次元削減

次元削減とは、データの次元数を削減する処理のことです。

 良く例えられる例で説明します。30人いるクラスのテストの成績で、科目が「算数」「国語」「理科」「社会」とあるとします。そうするとそのクラスのテストの成績は4次元のデータとなります。これを「クラスの学力」という1次元の指標にまで落とし込み、データを簡素化することを考えます。

 例えば「算数」と「理科」点数に図のようなある程度の相関があったとします。そしてこの相関に対してある近似線を求めます。「理系の学力」という1次元のデータに落としこむことができます。国語と社会も同様に「文系の学力」という1次元のデータに落とし込むことができ、最終的に理系と文系の学力にも相関がみられれば、「クラスの学力」として1次元のデータまで削減ができます。

次元削減のメリット

・データ容量の節約
 データが膨大だと処理に時間がかかるので、情報量を削らずにデータ量を減らし処理速度を上げることが出来ます。

・データの可視化
 これが一番のメリットだと筆者は考えます。データの大まかな傾向を捉えたいときに、多次元であるとパソコンの画面上で表現することができません。3Dまでが限界です。そこでデータを2次元または3次元までに落とし込めば、XY座標のグラフや3次元グラグとして可視化することができます。

・特徴量の作成
 機械学習において、特徴量の抽出が非常に大切になってきます。この時データが多次元であると「次元の呪い」という現象に陥ります。精度良い学習にはデータの次元は多いほうが良いように思われますが、特徴が多すぎるとかえって分類したり比較するのが難しくなるという現象です。数学的にもデータ同士の差が良く分からなくなってしまいます。人工知能を作成したり活用したときに、良い結果が出ないときには次元削減を活用すると良い場合が多々あります。

主成分分析

 次元削減の主な手法として、主成分分析(PCA)というのがあります。最も多く利用されているので、次元削減についてはまずこれさえ覚えておけば良いでしょう。

先程、データに対して近似線を引きましたが、この引き方で以下のようにいくつかの手法があります。
・PCA (主成分分析 (Principal Component Analysis) )
・SVD (特異値分解 (Singular Value Decomposition) )
・t-SNE (t-distributed Stochastic Neighbor Embedding)
・UMAP (Uniform Manifold Approximation and Projection)

近似するわけですから、本来もっている詳細情報は損失します。この情報の損失量をなるべく抑えるように考えれたのが各手法で、その中で最もシンプルなのが主成分分析という手法です。簡単に言うと全てのデータとの差が最も近くなるように近似線を引くといった感じです。

教師なし学習の使い方

 教師なし学習で異常検知する場合でも。最終的な異常判断は人間がする必要があります。人工知能は正常なデータの分布から外れた値を検知しますが、その外れた値と実務上の異常値と確実に一致するわけではないことに注意しなければいけません。
事前によく吟味し、最も実務上の異常値と一致するようなデータで分析を行う必要があります。

以上で教師なし学習の紹介になります。ここまで読んで頂きましてありがとうございました。