機械学習とは? 種類・用途、歴史を紹介

機械学習とは

機械学習とは、明示的にプログラムされることなく「学習」する能力をコンピューターに与えるための、統計的確率を用いたコンピュータープログラミング手法です。機械学習の用途は本質的に、コンピューターを人間のように学習(したがって、行動)させるものであり、これによってコンピューターは学習と知識を自律的に高めていきます。目的は、コンピューターを明示的にプログラムすることなく動作させることです。機械学習には、異なる外部入力にさらされたときに調整可能な開発プログラムを使用します。

しかし、機械学習の鍵は生徒であるコンピューターに大量のデータを投入することです。機械が学習するにはビッグデータが必要なのです。

機械学習の用途の好例は、自律走行車です。自律走行車に搭載されたカメラ、レーダー、LiDARセンサーシステムは、次のような機能を提供します。

  • GPSを使用して場所を特定する。
  • 前方の道路を見る。
  • 車の後ろ/側面のさまざまな物の音を聞く。

この情報は、すべて中央コンピューターによって処理されます。コンピューターは大量のデータを常に取り込んで分析し、人間の脳(ニューラルネットワーク)と同様の方法で情報を分類します。続いてコンピューターは、数学的確率と観測に基づいて、どのようにハンドルを動かすか、いつブレーキをかけるか、いつ加速するかなど、その環境で自動車を誘導するための判断を下します。

機械学習の歴史と3つの種類

機械学習は新しいものではなく、意外にも歴史があるのです。最初の人工ニューラルネットワーク(ANN)であるパーセプトロンは、心理学者のフランク・ローゼンブラット(Frank Rosenblatt)によって1958年に考案されました。

パーセプトロンは当初、アルゴリズムではなく機械として意図されたものであり、1960年には画像認識装置「Mark 1 Perceptron」の開発に使用されました。Mark 1 Perceptronは、ANNを使用して人間の思考をシミュレートし、試行錯誤によって学ぶ最初のコンピューターとなりました。

オープンソースのライブラリーやフレームワーク、そして1956年から2015年の間にコンピューター処理能力が1兆倍になったことにより、機械学習は一般的に使用されるようになっています。今では、金融取引、マルウェア対策、マーケティングのパーソナライゼーションなど、幅広い分野で使用されています。しかし、機械学習の用途が基本的か複雑かに関係なく、機械学習は一般的に3つの種類に分けられます。

1. 教師あり学習

教師あり学習は基本的で厳格です。コンピューターは、入力例と希望するターゲットの出力を提示され、処理方法を見つけます。目標は、コンピューターが入力を出力にマップする一般的なルールを学習することです。

教師あり学習を使用して、予測モデリングと呼ばれる未確認/未来のデータに関する予測を行うことができます。アルゴリズムは、入力変数からの出力を正確に予測する関数の開発を試みます。たとえば、面積(入力)とほかの入力(年齢、建築タイプなど)から家の市場価値(予測)を予測します。

教師あり学習には2つの種類があります。

  • 分類 — 出力変数はカテゴリーです。
  • 回帰 — 出力変数は現実の値です。

教師あり学習のアルゴリズムには、ランダムフォレスト、決定木、k近傍法(kNN)、線形回帰、ナイーブベイズ、SVM(Support Vector Machine)、ロジスティック回帰、勾配ブースティングなどがあります。

2. 教師なし学習

教師なし学習では、アルゴリズムは入力の構造を単独で見つける必要があります。アルゴリズムにはラベルが与えられず、それ自体が目標となる(データの隠れたパターンを発見する)場合も、目的を達成する手段となる場合もあります。これは「特徴学習」とも呼ばれます。

写真に移っている人物を識別するFacebookの予測顔認識アルゴリズムは、教師なし学習の例です。

教師なし学習には2つの種類があります。

  • クラスタリング — データ内の固有のグループを見つけることが目標です。
  • アソシエーション — 大きなデータグループを定義するルールを見つけることが目標です。

教師なし学習のアルゴリズムには、k平均法、階層クラスタリング、次元削減などがあります。

3. 強化学習

強化学習では、コンピュータープログラムは、動的環境と相互作用し、そこで特定の目標(車の運転、ゲームの対戦など)を達成しなければなりませン。プログラムは、問題空間での行動に対して報酬と罰という形でフィードバックを受け、その文脈における最良の行動を決定することを学びます。

2013年に、プログラマーからのインプットなしで6つのAtariビデオゲームで勝つ方法を学び、注目を集めたのは、Q学習を使用する強化学習のアルゴリズムでした。

強化学習には2つの種類があります。

  • モンテカルロ — 報酬を受け取るのは最後の「終末」状態です。
  • 時間的差分(TD)学習 — 報酬は各ステップで評価されます。

強化学習のアルゴリズムには、Q学習、DQN(Deep Q Network)、SARSA(State-Action-Reward-State-Action)などがあります。

確率による機械学習の用途

機械学習のすべての形態は、確率のプロセス(具体的には、ベイズ確率の事象発生可能性の解釈を通じて)行われます。

たとえば、太陽が毎日昇るかどうかを、機械は次のように学びます。

1日目 — 太陽は昇るかもしれず、昇らないかもしれません。太陽が昇る確率は0.5(50%)です。2つの結果しか得られないので、2つの可能性のいずれかが実現します。

2日目 — 太陽が1日目に上がったので、確率が変化しました。今度は、機械は太陽が一度すでに昇ったことを知っていますが、それでも再び昇らないかもしれません。確率は3分の2(0.66)に変わりました。

3日目~6日目 — 毎日太陽が昇ります。したがって、確率も上がっていきます。

7日目 — 1週間の終わりには、翌日に太陽が昇る確率は約0.857(85.7%)になりました。

1年後 - これまで太陽は毎日昇りました。翌日に再び昇る確率は0.997(99%以上)になりました。

ここで重要な点は、確率が決して1(100%)にならないことです。太陽が翌日昇らない確率は、(時間の経過とともに極めて小さくなっていきますが)常にわずかにあります。

機械学習アルゴリズムの3つの種類

アルゴリズムとは、問題を解決する一連の指定されたアクションです。コンピューターはアルゴリズムを使用して、処理を実行するために必要な詳細なステップを一覧します。機械学習アルゴリズムには、前述のものに加えて多くの種類があります。

どのアルゴリズムが使用されるかは、クラスタリング(データのクラスタリングの観察)や回帰(実際値の出力の予測)など、解決対象となる問題の複雑さとタイプによって異なります。機械学習アルゴリズムには、次のようなものがあります。

決定木のアルゴリズム

決定木は、小売、金融、製薬など、多くの分野で使用できるアルゴリズムです。機械は、さまざまな結果(起こる/起こらない)の単純な木構造を作成し、自然な結論に至るまで追っていくことにより、起こる可能性がある事象の確率を計算します。

たとえば、銀行は決定木アルゴリズムを使用して、住宅ローンを融資するかどうかを決定します。また、製薬会社は治験で使用して、副作用の発生確率や治療に予想される平均費用を計算します。

ランダムフォレストアルゴリズム

ランダムフォレストも、よく使われるアルゴリズムです。それぞれ異なるシナリオと初期変数を持つ複数のCART(Classification and Regression Tree)を構築します。データではなくアルゴリズムがランダム化され、分類と回帰の予測モデリングに使用されます。

たとえば、10の変数を持つ母集団に1,000個の観測値があるとします。ランダムフォレストアルゴリズムは、100個の観測値の無作為標本と無作為に選んだ5個の初期変数を使用してCARTモデルを構築し、処理します。このプロセスを繰り返し実行してから、各観測について最終的な予測を行います。最後の予測は、単純に各予測の積算値です。

k平均法アルゴリズム

k平均法は、クラスタリングの問題を解決するために使用される教師なし学習のアルゴリズムです。ラベル付けされていない(外部分類なしの)データポイントのセットをクラスターと呼ばれるグループに分割/分類します。アルゴリズムの反復ごとに、類似の特徴を持つグループに各ポイントが割り当てられます。データポイントは、クラスター内の変化を検出するために経時的に追跡されます。

k平均法アルゴリズムは、特定のデータセットにどのタイプのグループが存在するかの仮定を確認でき、また未知のクラスターを発見するために使用されます。ビジネスのユースケースには、販売活動別の在庫のグループ化、ボットなどのデータ内の異常の検出などがあります。

Apache Sparkと機械学習

Apache Sparkは、ビッグデータを大規模に処理するための超高速分散型フレームワークです。機械学習、SQL、ストリーミングアナリティクス(Spark Streaming)、グラフ処理(GraphX)用のモジュールを組み込んでいます。

Sparkのエコシステムには、分類、回帰、クラスタリングなどのデータ処理を常に加速/改善するMLlib(機械学習ライブラリー)が含まれています。リアルタイムアナリティクスや最新のビジネスインテリジェンスでの、リアルタイムデータとバッチデータを接続するインテリジェントなデータパイプラインなどにSparkを活用できます。

Talendにより、簡単な操作で機械学習を有効活用できます。

Talendと機械学習

Talendプラットフォームは、HadoopとApache Sparkに基づいて構築された最初のビッグデータ統合システムです。事前構築されたドラッグ&ドロップの開発コンポーネントは、単一のツールでSparkの機械学習分類器を活用します。グラフィカルなツールとウィザードが生成するネイティブコードにより、HadoopとApache Sparkを数分でセットアップできます。

Talendは、ビジネス、IT、データサイエンティストの間のギャップを埋め、重要な機械学習モデルをシームレスに展開するうえで役立ちます。ブログ記事「機械学習を運用化するには」をご覧ください。

Talendを使う準備はできていますか?