ITエンジニアのための機械学習理論入門
第1章 データサイエンスと機械学習
- AI・機械学習
- tech系
こんにちは。クラウドエース技術本部 DataML Division の高鳥です。
この記事は、Google Cloud 中井悦司さんの著書「IT エンジニアのための機械学習理論入門」の内容を参考に、機械学習の裏にある数学的な理論をわかりやすく紹介していきます。
昨今では、機械学習という技術がますます一般化されていますが、その分触れる事が少なくなった理論部分が、中井さんの書籍ではとてもわかりやすく解説されています。
ここでは特に重要と思われるポイントを、章ごとに記事としてまとめています。
「このような内容をもっと詳しく勉強したい!」と感じた方は、これらの記事を参考にしながら、中井さんの書籍を読んでいただければ、より深く掘り下げて理解を深めることができるでしょう。
目次
本章の位置づけ
はじめに、この章の概要と全体における位置づけについて簡単に説明します。
その上で、以降に記載するこの章のポイントについて、ピックアップしていきたいと思います。
まず、「この章の概要と全体における位置づけ」ですが、これを理解するためには本書の構成を知る必要があるでしょう。
本書は、理論を基本から段階的に説明しつつ、その理論を背景に持つ基本的な機械学習タスクを紹介する構成になっています。構成を、以下のような図 [1-1]にまとめてみました。
まず大きく理論と機械学習のタスクという軸があり、それぞれ以下のような要素で構成されている、というように解釈してください。
理論:
- 統計モデルの基礎
- 確率を用いた推定(最尤推定)
- ベイズ推定
機械学習のタスク:
- 分類(教師あり学習)
- 教師なし学習
- 回帰(教師あり学習)
各要素は、それぞれの章で詳細に説明していきます。
さて、前置きが長くなりましたが、本題の1章における「この章の概要と全体における位置づけ」について説明しましょう。[1-1]図内で1章が既に書かれており、その配置でなんとなく理解している方もいるかも知れません。
この一番下に配置したことは意図的であり、1章以降の理論と機械学習のタスクを説明する上で、土台となるということを意味しています。「土台となる」とは具体的に以下を指しており、これが本章の概要であり、ポイントになります。
- ビジネスにおけるデータサイエンス・機械学習の役割
- 主な機械学習アルゴリズムの概要
以降では、このポイントを詳しく紹介します。
このポイントを理解することで、本書を読む意味と各章の位置づけが明確になるでしょう。
ビジネスにおけるデータサイエンス・機械学習の役割
近年、機械学習がビジネスに役立つことは自明の理と言ってよいものになりました。
しかし、機械学習を利用する上で、「どのような仕組みや考え方でこのような分析をおこなっているのか」を理解している人は多くないのではないでしょうか。本書の目的は、まずここの理解にあります。
しかし、この仕組みや考え方を理解するためには、目的である「なぜ機械学習を利用するのか」も理解する必要があります。つまり、「データサイエンスにおける機械学習の役割」を理解する必要があるのです。そして、「データサイエンスにおける機械学習の役割」は、「ビジネスにおけるデータサイエンスの役割」を理解すると、より俯瞰的かつ明確に理解することができます。
そのため、この章では、
- 「ビジネスにおけるデータサイエンスの役割」
- 「データサイエンスにおける機械学習の役割」
を整理しています。
これにより、以降の章で説明する「どのような仕組みや考え方でこのような分析をおこなっているのか」の理解が進みやすくなるというわけですね。
ビジネスにおけるデータサイエンスの役割
本書では、データサイエンスの目的を「データを活用して、より質の高いビジネス判断を行うこと」としています。この目的を達成するのがデータサイエンティストというわけです。
よって、データサイエンティストの役割は、単に分析だけでなく、分析目的の理解や、分析目的が本当にビジネスで役立つか考慮するところまで及びます。
データサイエンスにおける機械学習の役割
上記のようにデータサイエンティストは、ビジネス目的を踏まえて、データに対し仮説検証と分析を行い、ビジネスに役立つ知見や判断ルールを得ていきます。
データサイエンスの観点から見ると、機械学習は分析した過去データから「判断ルール」を得る仕組みです。(あくまで分析の延長に機械学習があるということがわかります。)
よって機械学習を利用する上でも、目的を達成するためには、どういった入力(特徴量)を使うべきか、どういったアルゴリズムを使うべきか、きちんと理解して利用する必要があります。
また、仮説検証、アルゴリズム選定のサイクルは、一方向で行われるものではありません。
必要に応じて前のステップに戻る必要もあります(図 [1-3])。
こういったことを理解した上で、機械学習を使う必要があるというわけです。
主な機械学習アルゴリズムの概要
よく使われる具体的なアルゴリズムについてもこの章で簡単に紹介しています。
さきほど、機械学習は「判断ルール」を生み出す仕組みとお話しました。本書では、生み出す判断ルールの種類によって主要なアルゴリズムを分類しています。具体的には、「分類」「回帰分析」「クラスタリング」のアルゴリズムを取り扱います。
分類: クラス判定を生み出すアルゴリズム
複数のクラスに分類された既存のデータを元にして、新規のデータがどのクラスに属するか予測するルールを導きます。例えば、動物の画像ファイルを入力して、「犬」「猫」「馬」といった動物の種類を判別する画像分類などがあります(図 [1-4])。
アルゴリズムによっては、各クラスに所属する確率を導くものもあります。
詳しくは、4 章で解説する「パーセプトロン」や、5 章で解説する「ロジスティック回帰」の部分で見ていきます。
回帰: 数値を予測するアルゴリズム
回帰分析の目的は、数値を予測することです。既存データの背後に隠れている何らかの関係性(関数など)を推測し、次に得られるデータの値を予測します。例えば、広告宣伝費と売上の関係はおそらく比例する(売上は、広告宣伝費の定数倍ずつ増えるという仮定)ので、売上目標に対し、広告宣伝費を見積もることが出来ます。
そして、回帰分析も確率的な予測ができます。第 3 章で説明する「最尤推定法」、第 8 章で解説する「ベイズ推定」をつかうと、ある確率以上の数値範囲を予測することが可能です。(例えば、95% の確率で、売上は 450 万円以上、550 万円以下、等。)
回帰分析の基本的な考え方は、次章である第2章で紹介します。
クラスタリング: 教師なしのグループ化を行うアルゴリズム
先の 2 つのアルゴリズムでは、分析に使用するデータには、あらかじめ「答え(ラベル)」が与えられていました。こういった、すでに答えがわかっているデータから、判定ルールを導く手法を「教師あり学習」と呼びます。
一方で、答えがわかっていないデータから、判定ルールを導く手法は「教師なし学習」と呼ばれます。例えば、数字(「0」から「9」, 図 [1-6], 参照リンク[1])の手書き文字を識別するとき、答えが無かったとしても何かしらの類似性でグルーピングすることができます。このような答えがないグルーピングアルゴリズムを「クラスタリング」と呼びます。詳しくは第 6,7 章で見てきましょう。
その他
本書では詳しく取り上げられていませんが、以下の様なアルゴリズムがあります。気になる方はぜひ調べてみてください。
時系列予測
時間とともに変動するデータについて、現時点までの変化を元にしてこの後の変化を予測します。
共起分析
既存のデータから同時に発生する事象を発見する「教師なし学習」の手法です。
リンク予測
データ間の潜在的なつながりを予測する手法です。例えば、SNS 等で、共通の友人を多数持つ人たち同士が友人ではないかと予測します。
生成モデル
訓練データに似たデータを無作為に生成出来る手法です。例えば、実在しない人の顔写真を生成する等があります。
異常検知
訓練データ内で、正常なデータとは大きくかけ離れたデータ(異常値や外れ値と呼ばれる)を見つける手法です。たとえば、製造ラインの不良品検知等に活用できます。
次元削減
訓練データの入力(特徴量)の種類が大量である場合、つまり特徴量の次元が多い時、データ同士の関連性や訓練速度が低下する等のデメリットがあります。
こういった場合にデータの特性を失わずに次元を落とす、つまり訓練データの特徴量を減らす手法が次元削減と呼ばれる手法です。
強化学習
自身で環境を用意し、目的達成のため、ある物体(エージェント)に、適切な行動方法(ポリシー)を学ばせます。例えば、台座に棒をのせて倒さないように動かす方法を学ばせるなどがあります[2]。(イメージ動画 図[1-7]。)
まとめ
データサイエンティストの役割を俯瞰的にみることで、ビジネス目的を理解した上での分析の重要性を紹介している章でした。その上で、こういったデータサイエンスの延長として機械学習は存在しており、利用する際には仕組みを理解し、分析目的に沿ったものを選択する必要があると述べています。
個人的にも、機械学習を学ぶ際にはどうしても技法的な部分に注力してしまうことが多いので、データサイエンスがあくまでビジネスの一部分であるという意識の重要性を改めて認識した章でした。これ以降、もし機械学習を利用する意味や位置づけがわからなくなったときは、こちらの記事がお役に立てれば幸いです。
また、本書で紹介している例は、全て GitHub 上で公開されています[3]。さらに、Google Cloud であれば、BigQuery ML を用いた「回帰」「分類」のチュートリアルが公開されています[4]。実際に手を動かして機械学習を試してみたい方は、ぜひご覧ください。
次の第 2 章からいよいよ機械学習アルゴリズムを具体的に見ていきます。
参考リンク
- [1] https://www.kaggle.com/carlolepelaars/97-on-mnist-with-a-single-decision-tree-t-sne
- [2] https://github.com/tensorflow/agents/blob/master/docs/tutorials/1_dqn_tutorial.ipynb
- [3] https://github.com/enakai00/colab_mlbook
- [4] https://cloud.google.com/bigquery-ml/docs/tutorials?hl=ja
※ Google Cloud は、Google LLC の商標です。
※ この記事は、本書籍で扱われているトピックについて、クラウドエースのメンバーが独自の見解で補足説明を加えたものになります。
章 | タイトル | 概要 |
---|---|---|
1 | データサイエンスと機械学習 | ビジネスにおけるデータサイエンスの役割とデータサイエンスと機械学習の関係性を学ぶ |
2 | 最小二乗法: 機械学習理論の第一歩 | 「最小二乗法」で回帰分析を行い、機械学習の理論的な基礎となる「統計モデル」と基本のワークフローを理解する |
3 | 最尤推定法: 確率を用いた推定理論 | 「最尤推定法」で回帰分析を行い、確率を用いたモデルの役割について学ぶ |
4 | パーセプトロン: 分類アルゴリズムの基礎 | 分類アルゴリズムの基礎となる「パーセプトロン」と数値的計算手法の基礎となる確率的勾配降下法を学ぶ |
5 | ロジスティック回帰と ROC 曲線: 分類アルゴリズムの評価方法 | 最尤推定法を用いた分類アルゴリズムである「ロジスティック回帰」と分類アルゴリズムの評価方法について学ぶ |
6 | k 平均法: 教師なし学習モデルの基礎 | 「k 平均法」を用いて教師なし学習のクラスタリングについて学ぶ |
7 | EM アルゴリズム: 最尤推定法による教師なし学習 | 最尤推定法を用いた教師なしクラスタリングの手法として「EM アルゴリズム」を学ぶ |
8 | ベイズ推定: データを元に「確信」を高める手法 | 「ベイズ推定」で回帰分析を行う手法を学ぶ。ベイズ推定と最尤推定の違いを理解し、パラメータを確率的に推定するということを理解する |