AI研究所 - AI(人工知能)に脅かされないために、AI(人工知能)を作る側の人間になる -

HOME  >  機械学習とは!?機械学習の種類について

更新日:2017.03.29

機械学習とは!?機械学習の種類について

カテゴリー: AI(人工知能)の豆知識

こんにちは、AI研究所のマサミです。

AIを学ぶ上で必ず耳にする「機械学習」ですが、
機械学習について学ぼうとすると様々な言葉が出てきてなんだかよくわからず挫折される方もいらっしゃるかと思います。

「パーセプトロン」、「サポートベクターマシン」、「ディープラーニング(深層学習)」、「ニューラルネットワーク」、「教師あり学習」、「データマイニング」、「ベイジアンネットワーク」、「決定木」、「強化学習」、「帰納論理プログラミング」など、調べれば調べるほど、そもそも機械学習が何だか分からなくなってきます。

そこで今回は、機械学習が何なのかを詳しい言葉の説明は抜きにして簡潔にまとめていきたいと思います。
さらに、AI研究所が開催しているAI入門セミナーで使われているAzure MLで使える機械学習の種類についても併せて説明していきます!


機械学習とは!?

まず、機械学習についてですが、その名の通り機械(コンピューター)に学習させることです。
そのまんまですね(笑)

人工知能も私たちと同じように学習しなければなりません。
例えば、クレジットや融資の審査を行おうとした時に年収や職業などから審査をしますが、審査のために専門知識が必要です。
私たち人間はこういった知識を蓄える時、勉強(学習)をします。
年収が300万円以上かつ正社員なら審査OKとか、借金があったらNGなど、分厚い参考書を読みながら勉強します。

では、人工知能はどのようにして学習するのでしょうか?
コンピューターに分厚い参考書を読ませるなんてことはしません。

人工知能に学習させる方法として大きく分けて2通りあります。
人間が手打ちで教える方法と機械学習です。

ここで注意していただきたいのが、人間が手打ちで教える方法はよく耳にする「教師あり学習」ではありません。
「教師あり学習」は機械学習の一部です。教師ありと教師なし学習については後ほど説明します。

人間が手打ちで教える方法は、コンピューターに勉強した知識をプログラムする方法です。
先ほど記述したように、年収が300万円以上かつ正社員なら審査OKとか、借金があったらNGなどをif文を組み合わせてプログラミングします。

機械学習が盛んになるまではこのようにして人工知能は作られていました。
最初に作られたされている人工知能も数行のプログラムでできていました。

ただ、クレジット審査やメールスパム判定などある程度予測ができるものだったらプログラミングでも頑張れば組めると思いますが、画像識別についてはどうでしょうか?

「3」という画像があった時に、それをどのようにコンピューターに教えたらいいと思いますか!?
例えば、

・コブが3っつあったら「3」
・カーブを描いていたら「3」
・左が空いていたら「3」

などとプログラムを組めるかもしれませんが、これが人間の顔の識別となるともう無理そうです。

そこで機械学習の登場です!!
では、機械学習はどのように行うのでしょうか。

機械学習を簡潔にざっくりと表すと、
大量のデータから特徴を見つけ出して、そのデータを分類する
ことです。

クレジットカード審査の例でいいますと、大量の過去の審査結果のデータから特徴を見つけだし審査できるようにします。 クレジット審査以外も考え方は同じです。
顔認証の場合は、大量の人の顔の写真データから特徴を見つけ出します。
この特徴とは、人が目で見て理解しているようなものではなく、「特徴ベクトル」や「プロトタイプ」といったものを使ったベクトルや閾値関数となります。

また、機械学習には「教師あり学習」と「教師なし学習」があります。
「教師あり学習」は、この画像は猫であるとか、この場合は審査OKである、といった具合に入力されたデータと正解(ラベル)が1対1で紐づいている訓練データを使って学習することです。

「教師なし学習」は、入力されたデータの正解(ラベル)は与えらておらず、データに存在する特徴を探し出しデータの似た者同士をグループ分けする用途で使用されます。

では、「ニューラルネットワーク」や「帰納論理プログラミング」、「サポートベクターマシン」、「ベイジアンネットワーク」などとよく耳にする用語は一体何なんでしょうか。

これらはすべて、機械学習の技法になります。
以下、機械学習の技法一覧をwikipediaより抜粋しました。

機械学習の技法
[決定木学習]
決定木を予測モデル(英語版)として使用した学習であり、アイテムについての観測をそのアイテムの目標値についての結論とマッピングする。具体例としてID3やRandom forestがある。

[相関ルール学習(英語版)]
大規模データベースにおける変数間の興味深い関係を発見するための技法。

[ニューラルネットワーク (NN)]
人工ニューラルネットワーク (ANN) とも呼ばれ、生物の神経ネットワークの構造と機能を模倣するという観点から生まれた学習アルゴリズムである。人工神経を相互接続したもので計算を構造化し、コネクショニズム的計算技法で情報を処理する。現代的ニューラルネットワークは非線形な統計的データモデリングツールである。入力と出力の間の複雑な関係をモデル化するのに使われ、データのパターン認識や観測された変数間の未知の同時分布における統計的構造を捉えるなどの用途がある。

[遺伝的プログラミング (GP)]
生物の進化を模倣した進化的アルゴリズムに基づく技法であり、ユーザーが定義したタスクを実行するプログラムを探索する。遺伝的アルゴリズムを拡張・特化させたものである。所定のタスクを実行する能力によって適応度地形を決定し、それによってコンピュータプログラムを最適化させていく機械学習技法である。

[帰納論理プログラミング(英語版) (ILP)]
例、背景知識、仮説を一様な表現とし、論理プログラミングを使って学習を規則化する技法である。既知の背景知識と例の集合をコード化して事実の論理データベースとし、全てのポジティブな例を含み、ネガティブな例を全く含まない仮説的論理プログラムを生成する。

[サポートベクターマシン (SVM)]
分類や回帰に使われる一連の教師あり学習技法である。訓練例のラベルは二値分類(2つに分類される)であり、訓練アルゴリズムによってモデルを構築し、新たな例がどちらに分類されるかを予測する。

[クラスタリング]
クラスタリングは、観測された例をクラスタと呼ばれる部分集合に振り分けるもので、振り分けは事前に指示された基準に従って行う。クラスタリングはデータの構造についての仮説(基準)の立て方によって結果が異なる。仮説は「類似尺度」で定義され、「内部コンパクト性」(同一クラスタ内のメンバー間の類似性)や異なるクラスタ間の距離によって評価される。「推定密度」や「グラフ接続性」に基づく技法もある。クラスタリングは教師なし学習技法であり、統計的データ解析でよく使われる。

[ベイジアンネットワーク]
確率変数群とそれらの条件付き独立性(英語版)を有向非巡回グラフ (DAG) で表した確率論的グラフィカルモデルである。例えば、病気と症状の関係を確率的に表すことができる。そのネットワークに症状を入力すれば、考えられる病気の一覧を確率付きで出力できる。これを使って推論と学習を行う効率的アルゴリズムが存在する。

[強化学習]
「エージェント」が「環境」の中でどのような「行動」をとるべきかを、何らかの長期的「報酬」を最大化するよう決定する。環境の「状態」からエージェントの行動への写像を行う「方針」を求めるのが強化学習アルゴリズムである。正しい入出力例は与えられないし、最適でない行動が明示的に訂正されることもないので、教師あり学習とは異なる。

[表現学習(英語版)]
教師なし学習アルゴリズムの一部は、訓練中に提供された入力のよりよい表現を発見しようとする。古典的な例として主成分分析やクラスタ分析がある。入力の持つ情報は保持したまま、分類や予測の前に入力をより便利な表現に変換するアルゴリズムもある。その際に入力データが従っている未知の確率分布から入力を再建できるようにするが、その確率分布においては信じがたい例も忠実に再現する必要はない。例えば多様体学習(英語版)アルゴリズムは、何らかの制約下で入力の次元を低く変換して表現する。スパースコーディング(英語版)アルゴリズムでは、入力が疎ら(ゼロが多い)という制約下で同様の表現の変換を行う。ニューラルネットワークの深層学習は複数レベルの表現または特徴の階層を発見するもので、低いレベルで抽出した特徴から高いレベルの抽象化した特徴までを求める。知的機械は、観測されたデータを説明する偏差の潜在的要因を解きほぐす表現を学習するものだという主張もある。

先ほど例にあげた画像識別でいうとニューラルネットワークを利用したディープラーニングが成果を上げています。

機械学習の際に、どのように特徴を見つけだしているか皆さん気になるところだと思うんですが、ブログに書いているとすごい文字数になってしまいそうなので、ご興味にある方はAI入門セミナーを是非ご受講ください!!

初めての方向け AI(人工知能)入門セミナー:http://ai-kenkyujo.com/

セミナーの宣伝みたいになってしまったので、話を機械学習に戻します(笑)


Azure MLで使える機械学習の種類について

Azure MLとは、Microsoft社が提供している「Microsoft Azure」の中の一つのサービスで、機械学習をWebブラウザ上で簡単にできるプラットフォームです。

Azure MLで利用出来るは機械学習の種類は以下の4つです。

・クラス分類(Classification)
・クラスタリング(Clustering)
・回帰(Regression)
・異常検知( Anomaly detection)
※ RやPython言語を使えば上記4つ以外の機械学習も可能です。

ではそれぞれ説明していきます。

■クラス分類(Classification)

与えられたデータをどの分類に当てはまるのかを識別する学習方法です。
AIと聞いて一番イメージしやすいのがこのクラス分類です。
画像識別などでよく利用されています。

■クラスタリング(Clustering)

クラスタリングは教師なし学習です。
未知の集合を、いくつかの集まりに分類させる学習方法です。
雑多なデータの中から、どのような類似傾向があるかを調べることができます。
代表的な例として「Googleのネコ」があります。
Googleのネコに関する記事は「【簡単3ステップ】 初心者でも分かるAI(人工知能)の作り方」を参照してください。

■回帰(Regression)

日本語から意味が良く分からないですが、様々な関連性のある過去の数値から未知の数値を予測する学習方法です。
回帰は「売上予測」や「株価予測」などで利用されています。

■異常検知( Anomaly detection)

与えられたデータの異常を検知する学習方法です。
クラス分類との違いは、異常が一つでもあった場合に異常となります。
セキュリティシステムなどで利用されています。


Azure MLの利用方法については「プログラミング不要!? AI(人工知能)の作り方【Azure ML – 機械学習】」を参考にしてみてください!
数字の画像を判別できるAI(人工知能)のモデルをニューラルネットワークを利用して作成する手順を分かりやすく説明しています!

タグ:


参考になったら「いいね!」と「シェア」をお願いします!!

このエントリーをはてなブックマークに追加
AI(人工知能)入門セミナー開催中
AI(人工知能)入門セミナー

AI入門ブログの中の人

AI研究所 研究スタッフ
通称:マサミ
アメリカ・サンフランシスコにある情報メディアの専門学校を卒業。大手金融会社での事務経験を経て、2016年9月よりAI研究所に入所。見習い研究員として、AI技術を日々勉強中。

Facebookページ