機械学習とは?機械学習の概要や種類について分かりやすく徹底解説!

こんにちは、AI研究所の三谷です。
今回は機械学習について概要から中身まで徹底的に解説していきます。
機械学習はAIや人工知能が有名になる中、やっと認知度が高まってきました。
ざっくり機械学習について知っている方も、機械学習の意味さえ全く分からない方も是非この記事を参考にしてみてください。

そもそも機械学習とは何?

機械学習とは

機械学習とは、その名の通り機械(コンピューター)に学習させることです。
AI(人工知能)も私たち人間と同じように学習しなければ何もしてくれません。
機械やロボットたちは学習することによって、有益な情報を出力することができるようになるのです。
例えば、クレジットカードの審査をAI(人工知能)によって行う場合を見てみましょう。
実際にAI(人工知能)によってクレジットカードやカードローンの審査を行う企業は増えてきています。
クレジットや融資の審査を行おうとした時には年収や職業などから審査をしますが、審査のためには専門知識が必要です。
こういった審査は、これまで専門知識を持っている人間が担っていました。
年収が300万円以上かつ正社員なら審査OKとか、借金があったらNGなど、人間であれば分厚い参考書を読みながら勉強するでしょう。
しかし、機械学習は人間のようにコンピューターに分厚い参考書を読ませることはありません。
機械学習はAIにtest data(テストデータ)を入力していくことで学習させていきます。

機械(AI)に学習させる手法2つ

AI(人工知能)に学習させる方法として大きく分けて2通りあります。
それが人間が手打ちで教える方法機械学習です。
ここで注意していただきたいのが、人間が手打ちで教える方法はよく耳にする「教師あり学習」ではありません。
「教師あり学習」は機械学習の一部です。教師ありと教師なし学習については後ほど説明します。
人間が手打ちで教える方法は、コンピューターに勉強した知識をプログラムする方法です。
人間が手打ちで教える方法は、年収が300万円以上かつ正社員なら審査OKとか、借金があったらNGなどをif文を組み合わせてプログラミングします。
機械学習が盛んになるまではこのようにしてAI(人工知能)は作られていました。
最初に作られたとされているAI(人工知能)も、実はたった数行のプログラムでできています。
ただ、クレジット審査やメールスパム判定などある程度予測ができるものだったらプログラミングでも頑張れば組めると思います。
しかし、画像識別についてはどうでしょうか?
「3」という画像があった時に、それをどのようにコンピューターに教えたらいいと思いますか!?
例えば、

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

などとプログラムを組めるかもしれませんが、これが人間の顔の識別となるともう無理そうです。
そこで機械学習が便利となります。
では、逆に機械学習だとどのように行うのでしょうか。
機械学習を簡潔に説明すると、「大量のデータから特徴を見つけ出して、そのデータを分類する」ことです。
クレジットカード審査の例でいいますと、大量の過去の審査結果のデータから特徴を見つけだし審査できるようにします。
もちろん、クレジット審査以外も考え方は同じです。
顔認証の場合は、大量の人の顔の写真データから特徴を見つけ出します。
この特徴とは、人が目で見て理解しているようなものではなく、「特徴ベクトル」や「プロトタイプ」といったものを使ったベクトルや閾値関数となります。
これらを応用すれば、ハイレゾリューション・オーディオのようなクリアな音を再現できる技術にも活かせます。
また、機械学習には「教師あり学習」と「教師なし学習」があります。
「教師あり学習」は、この画像は猫であるとか、この場合は審査OKである、といった具合に入力されたデータと正解(ラベル)が1対1で紐づいている訓練データを使って学習することです。
「教師なし学習」は、入力されたデータの正解(ラベル)は与えらておらず、データに存在する特徴を探し出しデータの似た者同士をグループ分けする用途で使用されます。
ちなみに「教師あり学習」と「教師無し学習」について詳しく知りたければ、テレビ番組などにも出演している「ヨビノリたくみ」さんが動画で解説しているので、興味がある方はチェックして下さい。

機械学習を学ぶ上で知りたい用語

AI(人工知能)を学ぶ上で必ず耳にする「機械学習」ですが、さまざまな言葉が出てきてよくわからず挫折される方もいらっしゃるかと思います。
例えば機械学習に出てくる言葉というと、以下の様な専門用語があります。

  • パーセプトロン
  • サポートベクターマシン
  • ディープラーニング(深層学習)
  • ニューラルネットワーク
  • 教師あり学習
  • データマイニング
  • background position
  • ベイジアンネットワーク
  • 決定木
  • 強化学習
  • 帰納論理プログラミング

この他にも、自動車の自動運転の文脈では「Drive PX」やPythonを利用している上で出てくる「scikit-lean」や画像のプログラミング時に使用する「width」や「height」なども知っていれば簡単ですが、初めて言われると躊躇してしまいますよね。
是非初めて聴いた時に戸惑わないよう、上記用語を知っておいてください。

機械学習の技法とは

機械学習の方法
それではニューラルネットワークや帰納論理プログラミング・サポートベクターマシン・ベイジアンネットワークなどとよく耳にする用語は一体何なんでしょうか。
これらはすべて機械学習の技法になります。
この見出しでは機械学習の技法の種類について1つ1つ解説していきます。

機械学習の技法①相関ルール学習(英語版)

相関ルール学習とは、大規模データベースにおける変数間の興味深い関係を発見するための技法です。
例えばこの記事を読んでいる方は「機械学習」というキーワードで検索してこのページに訪れたとしましょう。
「機械学習」で検索する人は、違う日にプログラミングの文脈で「Python」と検索する方もいるでしょうし「AI(人工知能)」と、検索する可能性が高いですよね。
相関ルール学習とは、こういった相関ルールを導き出せるようにする学習方法です。
こちらは検索サイトのサジェストや広告などでも利用される機械学習の技法です。

機械学習の技法②ニューラルネットワーク (NN)

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

ニューラルネットワークとは何か?機械学習の仕組みと代表的な種類の解説

機械学習の技法③遺伝的プログラミング (GP)

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

機械学習の技法④帰納論理プログラミング(英語版) (ILP)

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

機械学習の技法⑤サポートベクターマシン (SVM)

サポートベクターマシン(SVM)は、単純パーセプトロンにマージン最大化を加えて教師ありデータを線形に2値分類します。
数値データよりもカテゴリーデータの扱いに長けていて、基本的には線形の分離ができますが、カーネル関数を使用することで次元を増やし、非線形の分離ができるようになっています。
多クラス分類をする場合は、1対他分類法または1対1分類法を使用する(複数のSVMを組み合わせる)ことで対応します。
通常のハードマージンSVMはノイズの影響を受けやすいため、ノイズにペナルティを課してマージン幅を調整するソフトマージンSVMによって、ノイズに影響を受けづらくすることができます。

機械学習の技法⑥クラスタリング

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

機械学習の技法⑦ベイジアンネットワーク

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

機械学習の技法⑧強化学習

強化学習は機械学習の技法の中で比較的有名な技法となります。
強化学習とは一番理想の状態をプログラムし、その理想に向けて機械が永遠に試行錯誤する学習方法です。
例えばオセロを機械にプレイさせる場合に、「コマを全て自分の色に変えるのが理想」とプログラムさせるとします。
すると強化学習でプログラムされた機械は、コマを全て自分の色に変えれるまで何度もオセロに挑戦し、最短ルートを探ってくれるのです。
正しい入出力例は与えられないし、最適でない行動が明示的に訂正されることもないので、教師あり学習とは異なります。

機械学習の技法⑨表現学習(英語版)

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

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

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

機械学習のメリット3選

機械学習のメリット
今までは難しい内容が多く、機械学習について詳しく理解できていない人も多いでしょう。
そこで、IT知識を全く持っていない人でも理解できる、機械学習のメリットを3つに厳選して解説していきます。
これから紹介する3つのメリットが良いと判断できれば、機械学習の導入や学習を決定する価値があると言えるでしょう。

機械学習のメリット①多くの現場で活用されている

機械学習は非常に便利で、大企業や政府を問わず多くの業界で利用されています。
例えば以下のような場で使用されています。
使用したことがある方もいるのではないでしょうか。

  • 自動チャットbot
  • 予測技術
  • 画像の自動認識
  • 音声の自動認識
  • 様々なデータの分析
  • テキストの自動生成
  • 文字の自動読み取り

上記の他にも、様々な場面で利用されているのが機械学習になります。
現時点の機械学習でも多くの利用用途がある為、これから技術が進歩していけば、さらに活用できる場面は増えるでしょう。
現時点の業務を機械学習で代替できるのであれば、今からでも導入する価値は十分にあります。

機械学習のメリット②簡単に扱えるようになった

機械学習は難しいイメージを持たれることが多いですが、意外と簡単です。
実際に、プログラミング学習を始めて数ヶ月の人でも機械学習を扱えています。
もちろん操作や管理が難しい機会学習もありますが、簡単な業務の効率化を目指す程度のレベルであれば、プログラミングの知識を少し持ってるだけで十分です。
少し前までは高度な技術も持っている人でも扱うのが難しかった機械学習を、簡単に利用できるのは大きなメリットと言えるでしょう。

機械学習のメリット③機械学習の情報は無限に収集できる

機械学習は既に多くの人から認知されていて、既に情報は無限にネットに落ちています。
その為、機械学習で何か分からないことがあっても調べて解決することが可能です。
少し前までは情報量が少なく、機械学習を学ぶのも導入するのも難易度が高いと言われていました。
現在はネットに多くの情報がある為、機械学習を簡単に扱えます。
これから機械学習を始める人でも安心して良いと言えるでしょう。

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

機械学習

先ほど機械学習は簡単に扱えると解説しましたが、それを実現しているツールの1つが「Azure ML」です。
Azure MLとは、Microsoft社が提供している「Microsoft Azure」の中の一つのサービスで、機械学習をWebブラウザ上で簡単にできるプラットフォームになります。
こちらの動画では、簡単に「Azure ML」について説明しています。
シリーズものの紹介にもなっていますが、基本的な解説はこちらの動画だけでも十分です。
深く学習していきたいという方は、さらに細かい部分もシリーズで学んでいきましょう。

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

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

それぞれにアルゴリズムの種類が違うため、個別に説明していきます。

クラス分類(Classification)

クラス分類(classification)とは与えられたデータがどのカテゴリー(クラス)に当てはまるのかを識別するアルゴリズムです。
AI(人工知能)と聞いて一番イメージが湧きやすいのがこのクラス分類なのではないでしょうか。
ある写真に写ったものが「野菜」なのか「果物」なのかを判別する画像認識の分野でよく使われます。
あらかじめどんなものが野菜でどんなものが果物かを知っておく必要があるので、「教師あり学習」に属します。

クラスタリング(Clustering)

機械学習

クラスタリング(clustering)とは、ラベリングされていないデータの中からある特徴を見出して分類するアルゴリズムです。
似たような特徴をもとにデータのまとまり(クラスタ)を作っていきます。
最初から正解となるデータがあるわけではないので「教師なし学習」になります。代表的なクラスタリングの例は「Googleのネコ」。
Googleのネコに関する記事は「【簡単3ステップ】 初心者でも分かるAI(人工知能)の作り方」を参照してください。
クラスター分析はk-means(K平均法)というアルゴリズムを使って行います。Pythonプログラミングを使えば自分で最初から実装しなくても比較的カンタンにクラスタリングを行うことができます。

回帰(Regression)

回帰(Regression)とは、連続する数値を予測する教師あり学習
日本語から意味が良く分からないですが、様々な関連性のある過去の数値から未知の数値を予測するアルゴリズムです。
過去に蓄積された情報をもとに、具体的な数字を回帰的に予測していきます。
広告費を増やしたらどのくらい売上の増加が見込めるのかなどに使われています。
ビジネスの現場では、企画段階では利益の予測が必要です。
そのため、住宅価格や株価予測などの金融分野にもよく使われる実践的な手法です。

異常検知(Anomaly detection)

機械学習

異常検知(Anomaly detection)はその名の通り、データの中から、ふるまいの異なる異常な状態を検知する技術のことです。
クラス分類との違いは、異常が一つでもあった場合に異常となります。
工場での機械の故障の検知やクレジットカードの不正使用検知、最近ではSNSの炎上の兆しの検知などもできるようになってきています。
統計モデルを使ったホテリング理論やデータ間の距離に基づくk近傍法などの手法が使われています。


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

Kerasを使って機械学習をもっとカンタンに

機械学習をもっとカンタンに扱えるようになる便利な方法がKerasです。
KerasとはPythonで作られた、オープンソースのディープラーニングフレームワークの1つ。
ディープラーニングに挑戦するハードルをKerasが圧倒的に下げたともいわれています。
Tensorflow上で動作し、簡単にプログラムを書くことができます。
もし、Tensorflowってなんだ?と思った方は「TensorFlowとは?TensorFlowを徹底解説してまとめました」の記事をご覧ください。

Kerasで機械学習を行うメリット

機械学習

Kerasはなんと行っても、コーディングの可読性にメリットがあります。
Tensorflowでは何十行にもなってしまうソースコードが、数行で実装できてしまいます。
機械学習や深層学習の勉強を始めたばかりでAIプログラミング初心者の人や、手っ取り早く動かしてみたい人などには、実装が簡単なKerasは向いています。
公式サイトには英語版と日本語版がありますが、やはり英語版の方が知ることのできる情報は多いです。

Kerasでどんな機械学習ができる?

Kerasを使えば、画像認識や文章の生成、株価予測なんかもできてしまいます。
CNN(畳み込みニューラルネットワーク)を使った画像分析もkerasを使えば簡単にできてしまいますよ。
Azure MLでCNN(畳み込みネットワーク)を使ってディープラーニングさせる方法」には、さらに詳しくCNNについて解説しています。
弊社で開催している「AIエンジニアになるための3日間集中セミナー」でも2日目にkerasを使った講義があるので、興味のある方はぜひ受講してみてください。
他にもデータセットを使って、教師あり学習モデルを作成したりももちろんできますので色々試してみるのがいいですね。

機械学習とは?まとめ

今回は機械学習について詳しく解説していきましたがいかがでしたか?
AI(人工知能)に関するプログラミングなどの実装を必要とする現場では、多少難しいですが専門用語を知っておくことは必須になります。
複雑なようですが、AI(人工知能)について基本的な知識があれば、応用された論文でもスラスラと読めるようになります。
専門用語は、説明が長くなる部分も一言で表現することができるのです。
初心者の間は難しいと感じるかもしれませんが、この壁を乗り越えればAI(人工知能)に関する学習もスムーズになります。
機械学習に興味があるならぜひ深く学習してみてくださいね。

機械学習とは
最新情報をチェックしよう!
企業向けAI人材育成サービス

企業向けAI人材育成サービス

AI事業発足やAI導入に必要な人材育成のステップとAI研究所が提供するサービス。AI研究所の人材育成サービスでは、3つのステップを軸に御社の業務内でAIを活用できる人材育成やAIプロジェクトの支援を行います。

CTR IMG