【保存版】機械学習とは | 意味や仕組み・勉強方法を徹底解説

このエントリーをはてなブックマークに追加


AI(人工知能)の話題になると、必ず登場する「機械学習(マシンラーニング)」。

しかし、機械学習について詳しい知識がない方も多いのではないでしょうか。
本稿では機械学習の定義やディープラーニングとの違い、勉強方法などを詳しく解説します。

機械学習とは

機械学習とは、コンピューターが大量のデータを学習し、分類や予測などのタスクを遂行するアルゴリズムやモデルを自動的に構築する技術です。現在のAIの中核技術であり、ディープラーニングも機械学習の一部です。

機械学習・ニューラルネットワーク・ディープラーニングの違い


機械学習、ニューラルネットワーク、ディープラーニングは別々の概念ではありません。機械学習の1つとしてニューラルネットワークが存在し、さらに、ニューラルネットワークのアルゴリズムの1つとしてディープラーニングが存在します。

ニューラルネットワークとは

ニューラルネットワークとは、脳の神経回路の一部を模した数理モデル、また、パーセプトロンを複数組み合わせたものの総称です。

機械学習を機能させるための一手法であり、現在では、ニューラルネットワークを構築するアルゴリズムとして、ディープラーニングが主に使用されています。

ディープラーニングとは

ディープラーニングとは、ニューラルネットワークを多層に結合して表現・学習能力を高めた機械学習の一手法です。

現在、AIを構成するアルゴリズムとして、もっともよく用いられている手法です。

機械学習の学習手法

ledge編集部にて作成

機械学習は、主に「教師なし学習」「教師あり学習」「強化学習」の3種類の枠組みに分けて考えることができます。

教師あり学習

学習データとして入力とその正しい出力が与えられ、ある入力を受けると正しい出力ができるよう学習させるアルゴリズムです。教師あり学習の代表的タスクは「識別」「回帰」です。

「識別」とは、既存のデータをもとに、そのデータが正解データと比べあらかじめ設定したいくつかのクラスに分類するものです。たとえば、迷惑メールを振り分ける処理が該当します。

「回帰」とは、連続する値を予測する際に使用します。「識別」では、データがどの分類(クラス)に帰属するかを学習しますが、回帰では、具体的な数値の予測を行います。
たとえば、売り上げや株価、降水量の予測などを行う処理がここに該当します。


つまり、「教師あり学習」とは、入力データを正解データを参照して識別し、その学習データをもとに回帰を行うことを言います。

この正解データを作成する作業を「アノテーション」と言い、教師あり学習において、重要な役割を果たします。

教師なし学習


教師あり学習が、「正解」の用意されたデータをもとに学習するのに対し、「正解」データを与えず行うアルゴリズムが「教師なし学習」です。

教師なし学習では、大量のデータを与え、アルゴリズム自身がそのデータを探索することで、データの構造やパターンなどを抽出したり、データを分類します。

代表的なタスクにクラスタリングがあります。

クラスタリングとは、似た特徴を有するものを、同じグループに分けるものです。たとえば、年齢や性別、消費傾向などの特製から、顧客をいくつかのグループに分類するような処理があたります。

強化学習


「強化学習」は、教師なし学習と同じく「正解」データは与えられませんが、データの出力を価値づけし、その価値を最大化するための行動をとるようにアルゴリズムを最適化します。望ましい出力結果に対し報酬を与え、コンピュータに良い出力を学習させます。

たとえば、株式の売買でもっとも利益を出すためにはどのタイミングで売るべきか、ゲームでもっとも高いスコアを出すためにはどうするか、などの判断処理が強化学習に該当します。
現在では、AlphaGoに代表されるようなゲームに多く利用されています。

機械学習の仕組み

機械学習を最大限に動かすために、さまざまなアルゴリズムが現在まで開発されてきました。今回は、そのなかで主要な方法である

  • 「二アレストネイバー法」
  • 「決定木・ランダムフォレスト」
  • 「サポートベクターマシン」
  • 「ニューラルネットワーク」


の4種類を解説します。

ニアレストネイバー法(最近傍法)


ニアレストネイバー法とは、求めたい要素からもっとも近い既存データが属する集団に分類する、機械学習のアルゴリズムの1つです。

たとえば、上図の赤い四角を◯か×に分類します。赤い四角から各要素までの距離をすべて計算すると、もっとも近い要素は◯です。ゆえに、この赤い四角は◯であると判断する手法です。

しかし、すべての要素までの距離を計算しなければならないため、データ量が大きくなるにつれ、膨大な数の計算が必要となります。そのため、計算機の性能により、データ量が制限されてしまう欠点があります。

決定木・ランダムフォレスト

決定木とは、データから”木”構造の予測モデルを作る、機械学習のアルゴリズムの1つです。

上図において、赤い四角を縦線の境界線で◯か×に分類する際、どこが一番正答率が高くなるか繰り返し設定を行います。しかし、縦線だけでは×がひとつ間違えているため、次に横線で分類します。このような切り分けを繰り返して分類する方法が決定木です。

しかし、決定木は、未知のデータに対して適合できない、汎化できない過学習を引き起こし、容易に判別を間違える可能性があります。
たとえば、以下の図のように、実際には×の方が正しい状況である確率が高い場合でも、決定木は◯を示す場合が存在します。

この問題を解決するために、決定木のアルゴリズムにランダム性を持たせる「ランダムフォレスト」があります。
データの一部をランダムに間引き、一部だけで決定木を複数作る、もしくは、線の引き方にランダム性を持たせ決定木を複数作ります。その後、この複数作成した決定木で多数決をとり、判別をする方法です。

現在では、センサーデータなどで広く用いられています。

サポートベクターマシン


サポートベクターマシンとは、2つのグループ間の最も距離の離れた箇所(最大マージン)を見つけ出し、その真ん中に識別の線を引き分別させる、機械学習のアルゴリズムの1つです。

上の図においては、◯と×の間の境界線を、両者からの距離がもっとも近くなるように設定し、赤い四角を×と判別します。

ニューラルネットワーク


現在、機械学習でもっとも用いられている手法が、ニューラルネットワークです。
ニューラルネットワークは複数の「パーセプトロン」から構成されています。
まず、入力層にデータを入力し、そのデータを認識をするための指標である*特徴量 を入力します。その入力に対し、神経細胞間の接続強度に相当する重み w1 w2‥を掛けたものを、出力層のニューロンに入力します。
出力層のニューロンは、この入力を足し合わせたものを**活性化関数に通し、最終的な結果を出力します。この入力から出力までの一連の流れが「パーセプトロン」です。
ニューラルネットワークは、入力層と出力層のほかに隠れ層を持たせることで、より複雑な分析を可能にしています。

*学習データにどのような特徴があるかを数値化したもの
**ニューラルネットワークにおいて、線形変換をした後に適用する、非線形関数もしくは恒等関数

機械学習の現場での活用事例

機械学習は、さまざまな場面で実際に使われています。
ここでは、機械学習のイメージをより明確にするために、機械学習が活用されている事例についてご紹介します。

チャットボット


NTTドコモが開発した『Repl-AI』は、自然言語処理技術を使った問い合わせに対応するチャットボットです。ユーザーからの問い合わせを仕分けしオペレーターに引き渡す、もしくはチャットで直接回答することで、効率的な業務遂行を実現しています。

予測技術


ボストン小児病院の研究者が発表した「ARGONet」は、インフルエンザの発生を予測、追跡するシステム。機械学習に、電子カルテなどのデータに加え、近隣地域で広がるインフルエンザの時空間パターンのデータ、インフルエンザに関するGoogle検索をデータを使用することで、従来の予測アプローチより早く正確な予測が可能になりました。

画像認識


電通と電通国際情報サービス、双日が開発した「TUNA SCOPE」は、天然マグロの尾部断面画像から品質判定を行うシステム。マグロの尾部断面の目視により品質判定を行う「尾切り検品」と呼ばれる職人技から得た膨大なデータを、機械学習により実現しています。

音声認識


MicrosoftによるAPI「Speech to Text API」は、オーディオファイルやマイクからのリアルタイム音声を、テキストに変換することが可能です。

データ分析


テレビ番組情報などのデータソースから、ツイッターでの告知に重要な要素を自然言語解析エンジンを活用して、抽出し要約。最適なハッシュタグも選定することで、SNS運用の省力化を実現しています。

テキスト生成


人工知能記者『ワードスミス』は、企業決算記事などの簡単な記事を生成できるシステム。AP通信やヤフーなどで採用されています。

**OCR

出典:https://www.youtube.com/watch?v=Y41VajjzOoQ
『Flax Scanner』は、個別個社に適した機械学習アルゴリズムを用いて、高精度で文字を読み取ることができるサービス。また、各社毎にレイアウトが異なるような非定型書類から必要情報を自動的に読み取ることも可能です。

**手書きや印刷された文字を読みとり、コンピュータが利用できるデジタルの文字コードに変換するシステム

機械学習を習得する

Photo by Gerd Altmann on Pixabay

機械学習は、AI(人工知能)における技術の中核をなします。そのため、AI(人工知能)を知るためには、まずは機械学習を理解することが必要です。

機械学習で広く使われるプログラミング言語として、「Python(パイソン)」が挙げられます。

Pythonのメリットは、

  • 多数の企業に採用されている
  • コードがシンプルで読みやすい
  • 初心者でも比較的習得しやすい

などが挙げられます。

Pythonは、オンライン講座を活用することで、独学で学ぶことも可能です。Pythonの学習方法については、以下の記事で詳しく紹介しています。

機械学習についての知識は、ビジネスインパクトを生み出すチャンスになります。この機会に機械学習について学んでみてはいかがでしょうか。