機械学習とは?どんなものか・用語や種類について分かりやすく解説

今回は、機械学習について概要から中身まで徹底的に解説していきます。

機械学習はAIや人工知能が有名になる中、やっと認知度が高まってきました。
ざっくり機械学習について知っている方も、機械学習の意味さえ全く分からない方も是非この記事を参考にしてみてください。

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

機械学習とは

機械学習とは、その名の通り機械(コンピューター)に学習させることです。
AI(人工知能)も私たち人間と同じように学習しなければ何もしてくれません。
機械やロボットたちは学習することによって、有益な情報を出力することができるようになるのです。

例えば、クレジットや融資の審査を行おうとした時には年収や職業などから審査をしますが、審査のためには専門知識が必要です。
こういった審査は、これまで専門知識を持っている人間が担っていました。
年収が300万円以上かつ正社員なら審査OKとか、借金があったらNGなど、人間であれば分厚い参考書を読みながら勉強するでしょう。
しかし、機械学習をしてAIに見分け方を教えることでロボットが勝手に審査を行ってくれるのです。

このように、人の手がなくても自動で動いてくれるAIを作り出すのが「機械学習」となります。

機械に学習させる方法とは?

AIに学習させる方法として大きく分けて、人間が手打ちで教える方法と、機械学習の2通りあります。ここで注意していただきたいのが、人間が手打ちで教える方法は「教師あり学習」とは言いません。機械学習には以下の2つがあります。

  • 教師あり学習
  • 教師なし学習

教師あり学習

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

教師なし学習

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


ちなみに「教師あり学習」と「教師なし学習」について詳しく知りたければ、テレビ番組などにも出演している「ヨビノリたくみ」さんが動画で解説しているので、興味がある方はチェックして下さい。

また、本格的に機械学習を学びたいならセミナーの受講も考えてみると良いでしょう。
下記のおすすめ講座は、機械学習の知識がないところからAI開発について学ぶことができます。

機械学習でできること

機械学習でできることは無限にあり一概にこれだけとは言えませんが、下記のこともすることが可能です。

  • 過去のデータから未来を予測する
  • 膨大なデータを分けたりまとめたりする
  • どのように動いて欲しいかを覚えさせる
  • 画像や動画の中に映るものを理解させる

など、いろいろなことを学習させることができます。
教え方によってはAI自身に考えてもらい、成長させることも可能です。

機械学習と統計学の違い

機械学習を理解するためには、統計学との違いについて知っておく必要があります。
実は、使用する手法ベースで考えると、機械学習と統計学の境目は曖昧です。
それでは、どこに違いがあるのでしょうか。

機械学習と統計学の違いは「目的」にある

機械学習統計学
重要視「予測精度」の高さデータの構造を可視化して「解釈」
アルゴリズム複雑になりデータの構造は可視化しにくい単純かつ結果がわかりやすいもの
結論までのプロセス予測精度が高ければ評価されるため重要ではない重要

実は境目があいまいな機械学習と統計学ですが、アプローチ後に重要視される目的が違います。
機械学習は「予測精度」が重要で、統計学は「解釈」が重要とされています。

統計学では、データの構造を可視化して解釈する必要があるため、アルゴリズムは単純かつ結果がわかりやすいものを求められます。
その半面、機械学習は「予測精度」の高さを求められるため、アルゴリズムは複雑になりデータの構造は可視化しにくくなります。

機械学習においては予測精度が高ければ評価されるため、その結論にいたるまでのプロセスは重要ではありませんが、統計学においては結論までのプロセスが重要です。

予測精度を高められるのが機械学習、妥当性を評価できるのが統計学であり、目的は異なりますがどちらもデータサイエンスには欠かせません

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

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

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

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

AI(人工知能)用語集

機械学習でできる9つの技法

機械学習の方法

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

これらはすべて機械学習の技法になります。
ここでは、機械学習の技法の種類について1つ1つ解説していきます。

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

相関ルール学習とは、大規模データベースにおける変数間の興味深い関係を発見するための技法です。

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

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

ニューラルネットワークは人工ニューラルネットワーク (ANN) とも呼ばれ、生物の神経ネットワークの構造と機能を模倣するという観点から生まれた学習アルゴリズムです。
人工神経を相互接続したもので計算を構造化し、コネクショニズム的計算技法で情報を処理します。

現代的ニューラルネットワークは、非線形な統計的データモデリングツールです。
入力と出力の間の複雑な関係をモデル化するのに使われ、データのパターン認識や観測された変数間の未知の同時分布における統計的構造を捉えるなどの用途があります。

ニューラルネットワークに関しては下記記事でも詳しく紹介しているので参考にしてください。

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

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

遺伝的機械学習のプログラミング

遺伝的プログラミングとは、生物の進化を模倣した進化的アルゴリズムに基づく技法であり、ユーザーが定義したタスクを実行するプログラムを探索します。
遺伝的アルゴリズムを拡張・特化させたものです。

所定のタスクを実行する能力によって適応度地形を決定し、それによってコンピュータプログラムを最適化させていく機械学習技法です。

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

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

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

サポートベクターマシン(SVM)は、単純パーセプトロンにマージン最大化を加えて教師ありデータを線形に2値分類します。
数値データよりもカテゴリーデータの扱いに長けていて、基本的には線形の分離ができますが、カーネル関数を使用することで次元を増やし、非線形の分離ができるようになっています。

多クラス分類をする場合は、1対他分類法または1対1分類法を使用する(複数のSVMを組み合わせる)ことで対応します。
通常のハードマージンSVMはノイズの影響を受けやすいため、ノイズにペナルティを課してマージン幅を調整するソフトマージンSVMによって、ノイズに影響を受けづらくすることができます。

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

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

クラスタリングは教師なし学習技法であり、統計的データ解析でよく使われます。

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

確率変数群と、それらの条件付き独立性(英語版)を有向非巡回グラフ (DAG) で表した、確率論的グラフィカルモデルです。

例えば、病気と症状の関係を確率的に表すことができます。
そのネットワークに症状を入力すれば、考えられる病気の一覧を確率付きで出力できます。
これを使って推論と学習を行う効率的アルゴリズムが存在しています。

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

強化学習は、機械学習の技法の中で比較的有名な技法となります。
強化学習とは、一番理想の状態をプログラムし、その理想に向けて機械が永遠に試行錯誤する学習方法です。

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

強化学習プログラミングセミナーの詳細はこちら

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

教師なし学習アルゴリズムの一部は、訓練中に提供された入力のよりよい特徴を発見しようとします。

古典的な例として主成分分析やクラスタ分析があります。
入力の持つ情報は保持したまま、分類や予測の前に入力をより便利な表現に変換するアルゴリズムもあります。その際に入力データが従っている未知の確率分布から入力を再建できるようにしますが、その確率分布においては信じがたい例も忠実に再現する必要はありません。

例えば多様体学習(英語版)アルゴリズムは、何らかの制約下で入力の次元を低く変換して表現します。スパースコーディング(英語版)アルゴリズムでは、入力が疎ら(ゼロが多い)という制約下で同様の表現の変換を行いす。
ニューラルネットワークの深層学習は複数レベルの表現または特徴の階層を発見するもので、低いレベルで抽出した特徴から高いレベルの抽象化した特徴までを求めます。
知的機械は、観測されたデータを説明する偏差の潜在的要因を解きほぐす表現を学習するものだという主張もあります。
先ほど例にあげた画像識別でいうとニューラルネットワークを利用したディープラーニングが成果を上げています。

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

機械学習のメリット3選

機械学習のメリット

今までは難しい内容が多く、機械学習について詳しく理解できていない人も多いでしょう。
そこで、IT知識を全く持っていない人でも理解できる、機械学習のメリットを3つに厳選して解説していきます。

これから紹介する3つのメリットが良いと判断できれば、機械学習の導入や学習を決定する価値があると言えるでしょう。

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

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

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

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

現時点の業務を機械学習で代替できるのであれば、今からでも導入する価値は十分にあります。

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

機械学習は難しいイメージを持たれることが多いですが、意外と簡単です。
実際に、プログラミング学習を始めて数ヶ月の人でも機械学習を扱えています。

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

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

機械学習は既に多くの人から認知されていて、既に情報は無限にネットに落ちています。
その為、機械学習で何か分からないことがあっても調べて解決することが可能です。

少し前までは情報量が少なく、機械学習を学ぶのも導入するのも難易度が高いと言われていました。現在はネットに多くの情報がある為、機械学習を簡単に扱えます。
これから機械学習を始める人でも安心して良いと言えるでしょう。

AIエンジニア育成講座の詳細はこちら

機械学習に使える便利なツール

それでは実際機械学習を行おうとした時、どうしたらいいのか分からない場合も多いと思います。そんな時に使える機械学習のツールをいくつか紹介していきます。

機械学習に便利なAzure ML

機械学習

先ほど機械学習は簡単に扱えると解説しましたが、それを実現しているツールの1つが「Azure ML」です。Azure MLとは、Microsoft社が提供している「Microsoft Azure」の中の一つのサービスで、機械学習をWebブラウザ上で簡単にできるプラットフォームになります。

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

  1. クラス分類(Classification)
  2. クラスタリング(Clustering)
  3. 回帰(Regression)
  4. 異常検知( Anomaly detection)

※ RやPython言語を使えば、上記4つ以外の機械学習も可能です。
こんな風に様々な機械学習をすることができるので、気になった人はぜひAzure MLを導入してみてください。

こちらの動画では、簡単に「Azure ML」について説明しています。
シリーズものの紹介にもなっていますが、基本的な解説はこちらの動画だけでも十分です。
深く学習していきたいという方は、さらに細かい部分もシリーズで学んでいきましょう。

機械学習をもっと簡単にできるKeras

機械学習をもっとカンタンに扱えるようになる便利なフレームワークがKerasです。
Kerasとは、Pythonで作られた、オープンソースのディープラーニングフレームワークの1つです。ディープラーニングに挑戦するハードルをKerasが圧倒的に下げたともいわれています。
Tensorflow上で動作し、簡単にプログラムを書くことができます。

もし、Tensorflowってなんだ?と思った方は以下の記事をご覧ください。

TensorFlowとは?TensorFlowの概要や活用事例を徹底解説

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

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

公式サイトには英語版と日本語版がありますが、やはり英語版の方が知ることのできる情報は多いです。

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

Kerasを使えば、画像認識や文章の生成、株価予測もできます。
CNN(畳み込みニューラルネットワーク)を使った画像分析も、kerasを使えば簡単にできてしまいます。
以下の記事には、さらに詳しくCNNについて解説しています。

Azure MLでCNN(畳み込みネットワーク)を使ってディープラーニングさせる方法

AI研究所で開催している「AIエンジニア育成講座」でも2日目にkerasを使った講義があるので、興味のある方はぜひ受講してみてください。他にもデータセットを使って、教師あり学習モデルを作成したりももちろんできますので色々試してみるのがいいですね。

機械学習に入門するにはどうしたらいい?

機械学習の知識をつけてみたいけど、一体どうしたらいいか分からない方に入門方法を解説します。

機械学習のセミナーを受けよう

特におすすめしているのは、機械学習のセミナーを受けることです。
機械学習のような高度で難しい技術は、独学で本や記事を読んでもなかなか理解しにくいでしょう。そんな時にはセミナーでプロから分かりやすく教えてもらうのがおすすめです。
予算や内容を見て、自分に合うセミナーに参加してみましょう。

機械学習のおすすめセミナー9選!各セミナーのメリットや価格を徹底比較

分かりやすい動画を見てみよう

最初は機械学習の分かりやすい動画を見てみるのも良いでしょう。
セミナーのようにプロから教わることは難しいですが、機械学習に詳しい人から分かりやすく教わることができます。

機械学習で就職やフリーランスまでは考えていないけど、ひとまずどんなものか確認したいという人は動画から見てみるのがおすすめです。

機械学習についてまとめ

今回は機械学習について詳しく解説していきましたがいかがでしょうか。

機械学習の実装を必要とする現場では、多少難しいですが専門用語を知っておくことは必須になります。初心者の間は難しいと感じるかもしれませんが、この壁を乗り越えればAIに関する学習もスムーズになります。
機械学習に興味があるなら、この記事を参考にして一度しっかり学習してみてください。

機械学習とは?どんなものか・用語や種類について分かりやすく解説
最新情報をチェックしよう!