機械学習の手法

強化学習の手法を大きく分けると「教師あり学習」と「教師なし学習」、「強化学習」の3種類があります。
さらには「教師あり学習」と「教師なし学習」の中間に位置する「半教師あり学習」という手法も活用されています。
これらは目的や扱うデータ、効率良く学習させるためにも適切に使い分ける必要があります。
以下、代表的な3つの手法について解説します。
①教師あり学習
3つある学習手法の中で最も代表的なものが「教師あり学習」になります。
教師あり学習は、人間が事前に正解のデータを入力し、その正解のデータと比較して正しいかどうかを判断させます。
「教師=人間が与えた答え」が名前の由来となっています。
その特性上、コンピューターにとって判断基準が明確であるため、「正しいか、間違っているか」の問題を解決するのに適しています。
教師あり学習のアルゴリズムとしては、「回帰」と「分類」が代表的なものになります。
回帰
回帰の主な目的は「値の予測」です。
教師あり学習により正解のパターンを与え、そのパターンに基づき過去の大量のデータから予測して今後の値を算出します。
これらは売上予測や気温の予測などに活用されています。
分類
分類は、その名の通り、入力したデータをあるルールによって分類することをさします。
大量のデータを「Aか、それ以外か」や、「○○以上か、○○以下か」といったルールを設けることで分類させる、シンプルながらよく使われているアルゴリズムです。
用途としては、膨大な量のデータの仕分けや、一定以上になると反応するセンサーなどに使われています。
従来はコンピューターのスペックや技術面の問題もあり、1つのルールしか覚えさせることができませんでしたが、教師あり学習で複雑な正解を覚えさせることで多くのデータを監視することが可能になり、精度も向上していきました。
②教師なし学習
教師あり学習と対をなすのが「教師なし学習」です。
明確な答えがあった教師あり学習に対して、教師なし学習には答えがありませんので「教師なし」といわれています。
そのため、AI自身で答えを見つける必要がありますが、AIが答えを見つけるという高度な処理はできません。
そこでAIは与えられたデータに対して規則性や法則性を見つけようとします。
明確な答えがないデータ群に対し、規則性や法則性を探すときに教師なし学習を使います。
教師なし学習が規則や法則によってカテゴライズする際のアルゴリズムの代表的なものとして「次元削減」と「クラスタリング」があります。
次元削減
教師なし学習のアルゴリズムで最も使われているのが次元削減です。
文字通り次元を削減することで余計な要素を排除し、シンプルにすることでグループ化しやすくなります。
有名なアルゴリズムとしては以下のようなものがあります。
- 主成分分析(PCA)
- 特異値分解(SVD)
- t-SNE
- UMAP
本来、データは多次元に展開しており複雑なため可視化できるものではありません。
このままでは視認できませんので、次元を削減することで簡略化しデータとして扱えるようになります。
例えば、身近な例で言うと、体重と身長から計算されるBMI(体重(m)÷身長(kg)^2)もなるべく情報量を落とさずに次元削減していると言えます。
その次元削減されたデータを再度グループ化したり、教師あり学習に再度学習させることで精度向上に役立てるといった使い方があります。
クラスタリング

クラスタリングとは、AIが与えられたデータの特徴や類似性を探し、同じようなカテゴリーのグループに分けることを指します。
グループに分けると聞くと教師あり学習の分類と混同されがちです。
しかし、分類は答えや指定したルールに沿って分けられますが、クラスタリングに正解はありません。
AIが傾向や規則性から判断するので、中には誤ったものが混じっている可能性もあります。
AIが独自で判断してグループに分けるので、どういった基準でクラスタリングしたのかを考察する必要がありますので注意が必要です。
例えば、大量の名簿から共通項を持つグループを抜き出したり、ある程度AIの裁量に任せてカテゴライズしたい時にクラスタリングを使用します。
また、クラスタリングは、データをグループ分けする際に「階層的クラスタリング」と「非階層的クラスタリング」という方法に分けられます。
◆階層的クラスタリング
階層的クラスタリングは、データを比較した際に類似度が近いものからまとめていく分け方です。
クラスタを1つの単位とし、10個のデータがあれば、1と2、1と3、1と4……2と3、2と4……とそれぞれの類似度を計測してグループ化していき、階層を作成します。
1と2の共通点を見つけて小さなクラスタ(1+2)とし、さらに(1+2)と似ているクラスタを見つけることでそれを((1+2)+3)とどんどん大きなクラスタにしていきます。
小さなクラスタが最終的に全てグループ化された1つの大きなクラスタとなればクラスタリング完了となります。
反対に類似度が遠いものからまとめていく分け方もあります。
階層を確認することで関係性や類似度が視覚化される、最終のクラスタの数を決めることができるというメリットがありますが、全てのクラスタの組み合わせを計算していくために、相当な時間がかかってしまうことがデメリットになっています。
また、クラスタを計算する手法も複数あり、最適な計算方法を採用しないと意味のないものになってしまう可能性もあります。
◆非階層的クラスタリング
非階層的クラスタリングとは、階層を作る階層的クラスタリングに対し、その名の通り階層を作らずにグループ化することです。
全てを計算してから最終のクラスタ数が明らかになる階層的クラスタリングに対し、非階層クラスタリングでは事前に最終クラスタの数を指定し、その数に合わせて類似性を判断してグループとしてまとめていきます。
階層的クラスタリングと比較して計算量が少ないため、膨大なデータをグループ化するのに向いていますが、事前に適切な最終クラスタ数を判断する方法がまだ見つかっていないのが欠点です。
③強化学習
強化学習はコンピューター自身が試行錯誤を繰り返し、最適なシステムを見つけ実現する手法です。
教師あり学習、教師なし学習は基本的に人間がデータの入力や一定の指示を出していました。
それに対し、強化学習は人間が報酬(目標)を指定すると、コンピューター自身が最大限の報酬を得られるよう自律して判断・試行錯誤を繰り返します。
強化学習の流れ
STEP1.コンピューターが動作する環境を用意します。
STEP2.報酬(目標)を設定します。
STEP3.どのアルゴリズムで検証をおこなうかを設定します。
STEP4.コンピューターが検証を開始します。
かなり大まかな流れになりますが、教師あり学習、教師なし学習と比べると人間が介入する工程が少ないことがわかります。
この検証によって明らかになった結果や、試行錯誤した経験はコンピューターの中で蓄積されていきますので、次回似たような課題に直面した場合は前回の経験を活かした検証をおこないます。
これらを繰り返していくことで検証の速さや精度が向上していき、様々な場面で活躍することができます。
この強化学習自体は元々あった手法ですが、後述するディープラーニングと併用することで性能も精度も飛躍的に上昇したため、再度注目を集めている手法です。