機械学習

機械学習は、近年大きな注目を集めている「AI (人工知能)」、「ディープラーニング」といった研究分野と深い関わりがあります。機械学習は、人間や動物が経験を通して自然に学習することをコンピューターにさせようとするデータ解析テクニックです。機械学習アルゴリズムは所定の方程式をモデルとして用いることなく、データから直接的に情報を「学習」するコンピューティング手法です。 そのため機械学習では、学習に利用可能なサンプル数が増加するにつれ、その性能が向上します。

なぜ機械学習が重要か

ビッグデータの増加に伴い、機械学習は以下のような分野の問題を解決するための重要な技術となっています。

画像処理とコンピュータービジョン:

カメラ等で取り込んだデジタル画像から、意図した情報を取り出すために処理加工を行うために機械学習が応用されます。情報を取り出す画像解析とその解析をしやすくするために行う前処理を合わせて指すのが一般的です。画像処理はノイズを取り除いてきれいな画像を出力する以外にも、最近では、コンピュータ上で特定の物体を見つける画像認識の活用が増えています。人間の視覚による直感的な判断をコンピュータが行えるようになることで、これまで人による目視検査に頼っていた生産ラインでの外観検査等をコンピュータによる画像検査に置き換える動きが進んでいます。

その応用は医用画像、顔認識、文字認識(OCR)といったより高度な対象に広がってきており、ロボット産業の市場拡大の傾向から、ロボットの目(画像のセンサ)として動体検出や3次元画像処理を取り扱うコンピュータビジョンという研究分野として発展しています。

予知保全:

故障が発生する前の適切なタイミングでメンテナンスを行い、コストを最適化する点でも機械学習の技術が応用可能で、これは予知保全 (Predictive Maintenance) と呼ばれています。一般的に、機械のメンテナンスは、故障が発生した後に実施する事後保全や、一定期間経過した後に定期的にメンテナンスを行う予防保全(例えば車検)があります。一方で予知保全は、データから機械の状態を正しく判断した上でメンテナンス時期を決定するため、余計なメンテナンスを減らす事によるコスト削減だけでなく、突発的な故障を避けられ安全性の向上にも繋がると期待されています。IoT技術の進展に伴い機器へのセンサー導入率が高まることで、予知保全は業界問わず様々な分野で応用が可能です。

自然言語処理:

テキスト認識、音声認識アプリケーション、OCR

人間の言語(自然言語)を機械学習を使用して処理します。普段の会話で使用される話し言葉から、文章と論文のような書き言葉までを自然言語の対象として、それらの言葉が持つ意味を解析し、言葉の意味の分類等を行います。自然言語処理技術を使い、問い合わせに対応するチャットボット等の事例があります。

情報生命科学:

医療診断、創薬

生命科学やヘルスケア分野では、多種多様なセンターが開発、普及することで、様々なデータが大規模に蓄積されることで機械学習の適用範囲が広がっています。主に医療診断、病理画像解析、腫瘍摘出、創薬標的同定、新薬分子設計、化粧品の開発などにおいて、機械学習を活用した医療、創薬の実用化が広がっています。

エネルギー生産:

電力会社にとっては、コストを最小にして運用の効率化と信頼性を最適化するために、正確な電力需要の予測が不可欠です。機械学習の技術を使用し、モデル化による電力需要予測を行うことが可能です。

金融工学:

数理ファイナンスおよび機械学習手法を使用して、トレード、ヘッジ、投資、およびリスク管理に関する意思決定をサポートします。

金融工学では、売り手側の金融商品に対する価格付け、評価、およびリスク分析に従来から機械学習が関連しています。

具体的な機械学習の活用事例として、銀行、ヘッジ ファンド、資産運用会社の研究者、クオンツ、アナリストが、金融商品の価格付け、金利の分析、利回り曲線の作成と分析、確率的ボラティリティ モデルの分析等などが挙げられます。

特に、アルゴリズム取引についても機械学習が用いられています。アルゴリズム取引では、電子金融市場において、自動的に株式売買注文のタイミングや数量を決めて注文を繰り返すアルゴリズムを使って取引の決定を行います。売り手と買い手双方に適用できるアルゴリズム取引は、高速取引や高頻度取引、為替取引、および関連のリスクと実行分析の基盤を形成します。

機械学習とディープラーニングの違いとは

AI(人工知能)が最も広義の概念となり、機械学習はAIに含まれます。ディープラーニングもまたAIの一部であり、機械学習のアルゴリズムの1つでもあります。機械学習とディープラーニングの違いを端的に説明すると、情報処理能力、速度の差が挙げられます。

図1. 機械学習とディープラーニングの違い

図1. 機械学習とディープラーニングの違い

機械学習では一般的に、特徴量(予測や分類に利用される数値や画像等のデータセット)を人間が定義します。一方、ディープラーニングでは、後述するニューラルネットワークの技術を応用することで膨大な特徴量を自動で学習をしてくれます。そのため、高い精度で予測や分類ができ、特に音声や言語、画像認識の領域で利用されています。

機械学習とディープラーニングのどちらを選択すべきか?

機械学習は、用途、処理するデータのサイズ、解決したい問題の種類に応じて、さまざまな手法やモデルを選択することができます。一方、ディープラーニングを成功させるには、モデルを学習させるための非常に大量のデータ(数千枚の画像)と、データを高速に処理するためのGPU(グラフィック・プロセッシング・ユニット)が必要です。

そのため、高性能のGPUと大量のラベル付きデータのどちらも持っていない場合は、ディープラーニングではなく機械学習を使う方が理にかなっているかもしれません。ディープラーニングは一般に複雑なので、信頼できる結果を得るためには、少なくとも数千枚の画像が必要です。

機械学習を選択した場合、多くの異なる分類法でモデルを訓練するオプションがあります。また、どのような特徴を抽出すれば最良の結果が得られるかを知っておくこともできます。さらに、様々なアプローチを組み合わせて、異なる分類器や特徴を使い、どの配置がデータに最も適しているかを確認する柔軟性もあります。

この MATLAB Tech Talk では、ディープラーニングと機械学習の違いについて学びます。複数の例を参照しながら、使用すべき手法を決定する方法についても学習します

機械学習が効果を発揮するのは?

機械学習では、より多くのデータがあるほど、より良い回答を導出します。

機械学習アルゴリズムは、データの中に自然なパターンを見つけてそこから洞察を生み出し、より良い意思決定と予測を行う手助けをします。これらは、医療診断、株取引、エネルギー負荷予測などの重要な決定を行うために毎日使用されます。 たとえば、メディアポータルは機械学習を利用して何百万もの選択肢からあなたにおすすめの歌や映画を提供しています。 小売業者は、顧客の購買行動から洞察を得るために機械学習を使用しています。

機械学習をいつ使うべきか

所定の数式や方程式が存在せず、大量のデータセットと多数の変数が含まれている複雑なタスクや課題がある場合は機械学習の使用を検討しましょう。仮に次のような状況に対処する必要がある場合は、機械学習が適しています。

顔認識や音声認識のように、手書きの決め事や方程式では複雑すぎる。

取引履歴からの不正検出のように、対象のルールが常に変化している。

自動取引、エネルギー需要予測、および消費トレンドの予測のようにデータの性質が変化し続けており、プログラムは適応する必要がある。

機械学習の仕組み

機械学習には2種類の手法が使用されます。一つは既知の入力データと出力データを用いてモデルを訓練し、将来の出力を予測できる「教師あり学習」、もう一方は、入力データの隠れたパターンや固有の構造を見出す「教師なし学習」です。注目を集めているディープラーニングは「教師あり学習」、「教師なし学習」のどちらでも応用可能な、機械学習に含まれるアルゴリズムの1つです。

図2. 機械学習の手法には、教師あり学習と教師なし学習の両方が含まれます。

図2. 機械学習の手法には、教師あり学習と教師なし学習の両方が含まれます。

教師あり学習

教師あり機械学習は、不確実さがあっても証拠に基づいて予測を行うモデルを構築します。教師あり学習のアルゴリズムは、すでにある一連の入力データとそれに対する応答(出力)を用いてモデルを訓練し、新たなデータへの応答を合理的に予測できるようにするものです。予測しようとする事象について、既存の応答(出力)データがある場合は、教師あり学習を使用します。

教師あり学習では、分類や回帰の手法を用いて予測モデルを作成します。

教師あり機械学習を使用して、入力を出力にマッピングし、新しい入力に対する応答を予測するモデルを学習させる方法をご紹介します。

教師なし学習

教師なし学習は、データに内在する隠れたパターンや固有の構造を見いだすものです。ラベル付けされた応答を持たない一連の入力データから推論を導き出すために用いられます。クラスタリングは、最も一般的な教師なし学習手法です。これは、探索的データ分析により、データ内の隠れたパターンやグループ構造を発見するために用いるものです。クラスタリングは、遺伝子配列解析、市場調査、および物体認識などに活用されています。たとえば、携帯電話会社が携帯電話の中継塔の位置を最適化したい場合、中継塔の利用者のクラスター数を見積もるために機械学習を使うことができます。携帯電話が一度に接続する中継局は1カ所のみのためクラスタリングアルゴリズムを使用して、顧客のグループまたはクラスターが最適化された信号受信を受けるために最適な中継塔の配置を設計します。

クラスタリングを実行するための一般的なアルゴリズムには、k平均法およびkメドイド、階層クラスタリング、混合ガウスモデル、隠れマルコフモデル、自己組織化写像、ファジィ c 平均クラスタリング、および減法クラスタリングなどが含まれます。

教師データがないデータセットでパターンを探す、教師なし学習の概要をご紹介します。この手法では、データに含まれる情報が不明な場合にもデータを探索できます。

機械学習アルゴリズムをどのように決めるか?

機械学習には様々な手法があります。適切な機械学習のアルゴリズムを選択するのは、手に負えない難題に思えることもあります。教師あり、教師なしの機械学習アルゴリズムは何十種類もあり、学習方法もそれぞれ異なるからです。

図3. 機械学習の手法

図3. 機械学習の手法

「教師あり学習」と「教師なし機械学習」の選択に関するガイドラインは次のとおりです。

  • 予測(例えば、温度や株価などの連続型変数の将来値の推定)や分類(例えば、ウェブ動画に映っている自動車の型式の特定)を行うモデルの学習が必要な場合は、「教師あり学習」を選択します。
  • 入力データを詳しく調べる必要がある場合や、データをクラスターに分けるなど、データの適切な内部表現を見出すモデルの学習が必要な場合は、「教師なし学習」を選択します。

最も優れた手法や、何にでも使える手法というものはありません。適切なアルゴリズムを探すには、試行錯誤に頼らざるを得ない部分があります。極めて経験豊富なデータサイエンティストでも、あるアルゴリズムがうまく機能 するかどうかは、結局のところ試してみないと分からないのです。ただしアルゴリズムの選択は、扱うデータのサイズや種類、データから導き出したい見解、その見解の活用方法によって決まってくる部分もあります。

MATLABによる機械学習

MATLABは機械学習を容易にします。ビッグデータを扱うためのツールや関数と、機械学習を容易に行うためのアプリが備わったMATLABは、データ解析に機械学習を適用するうえで理想的な環境です。 MATLABを使用することで、エンジニアやデータ サイエンティストは、プレビルドされた関数、豊富なツールボックス、分類、回帰、クラスタリングなどのアプリケーションにすぐにアクセスできます。

MATLABを使用すると、

  • ロジスティック回帰、分類木、サポートベクターマシン、アンサンブル法、 ディープラーニングなどのアプローチを比較できます。
  • モデルの改良・低次元化ツールを使用することでデータの予測精度を高める正確なモデルを作成することができます。
  • 機械学習モデルをエンタープライズシステム、クラスターおよびクラウドと統合し、リアルタイム組み込みハードウェアを対象としています。
  • 組み込み環境でのセンサー解析のための自動コード生成を実行します。
  • データ分析から実装までの統合ワークフローをサポートします。

機械学習の実用例

MATLABを用いた機械学習の実用例をご紹介します。

機械学習の関連トピック

MATLABではじめる

機械学習向けMATLAB

機械学習における課題を解決するMATLABの機能について