ITエンジニアのための機械学習理論入門

書籍の概要

この本の概要

現在話題となっている機械学習(Machine Learning)のツールやライブラリは内部でどのような計算をしているのか? 計算で得られた結果にはどのような意味があり,どのようにビジネス活用すればよいのか?――という疑問を持つエンジニアが増えています。本書は機械学習理論を数学的な背景からしっかりと解説をしていきます。そしてPythonによるサンプルプログラムを実行することにより,その結果を見ることで機械学習を支える理論を実感できるようになります。

こんな方におすすめ

  • 機械学習を知りたい方
  • しくみを正しく知ってビジネスに役立てたい方

著者の一言

筆者は,業務システムでのオープンソースの活用を促進する企業に勤務しており,日々の業務で直接に機械学習に関わっているわけではありません。機械学習の理論については,大学時代に学んだ統計学(統計物理学)の知識を基に,個人的な興味で学習を続けてきました。そのような中,「業務として機械学習に関わらざるを得ない」というITエンジニアが増えていることに気が付き,機械学習の基礎知識をエンジニア仲間に広げていきたいと考えるようになりました。
いまは,機械学習のツールやライブラリーがオープンソースで誰でも自由に利用できる時代です。しかしながら,その背後にある「理論」こそが万人に解放されるべきものだと信じています。機械学習は,高度な数学の理論が現実世界の問題解決に役立てられる舞台であり,ITエンジニアの知的探究心を刺激する最高の素材です。機械学習の面白さを知れば,「学校の数学は社会で役に立たない」なんて,まったくの勘違いだとわかるでしょう。
本書をきっかけに,「もう一度,数学を学びなおして,より高度な機械学習の理論をマスターしよう」と考える読者が現れることを心待ちにしています。

https://github.com/enakai00/ml4se/raw/master/ml4se.zip

本書で使用しているサンプルプログラムは上記GitHubページよりダウンロード可能です。本書を読み進める際に,機械学習理論の確認のためにご利用ください。

この書籍に関連する記事があります!

機械学習理論入門の入門
2015年のIT業界の話題は「機械学習」でした。

本書のサンプル

本書の一部ページを,PDFで確認することができます。

本書の紙面イメージは次のとおりです。画像をクリックすることで拡大して確認することができます。

サンプル画像1

サンプル画像2

サンプル画像3

目次

第1章 データサイエンスと機械学習

1.1 ビジネスにおけるデータサイエンスの役割

1.2 機械学習アルゴリズムの分類

  • 1.2.1 分類:クラス判定を生み出すアルゴリズム
  • 1.2.2 回帰分析:数値を予測するアルゴリズム
  • 1.2.3 クラスタリング:教師なしのグループ化を行うアルゴリズム
  • 1.2.4 その他のアルゴリズム

1.3 本書で使用する例題

  • 1.3.1 回帰分析による観測値の推測
  • 1.3.2 線形判別による新規データの分類

1.4 分析ツールの準備

  • 1.4.1 本書で使用するデータ分析ツール
  • 1.4.2 実行環境のセットアップ手順(CentOS 6編)
  • 1.4.3 実行環境のセットアップ手順(Mac OS X 編)
  • 1.4.4 実行環境のセットアップ手順(Windows 7/8.1 編)
  • 1.4.5 IPythonの使い方

第2章 最小二乗法:機械学習理論の第一歩

2.1 多項式近似と最小二乗法による推定

  • 2.1.1 トレーニングセットの特徴変数と目的変数
  • 2.1.2 多項式近似と誤差関数の設定
  • 2.1.3 誤差関数を最小にする条件
  • 2.1.4 サンプルコードによる確認
  • 2.1.5 統計モデルとしての最小二乗法

2.2 オーバーフィッティングの検出

  • 2.2.1 トレーニングセットとテストセット
  • 2.2.2 テストセットによる検証結果
  • 2.2.3 クロスバリデーションによる汎化能力の検証
  • 2.2.4 データ数によるオーバーフィッティングの変化

2.3 付録―ヘッセ行列の性質

第3章 最尤推定法:確率を用いた推定理論

3.1 確率モデルの利用

  • 3.1.1 「データの発生確率」の設定
  • 3.1.2 尤度関数によるパラメーターの評価
  • 3.1.3 サンプルコードによる確認

3.2 単純化した例による解説

  • 3.2.1 正規分布のパラメトリックモデル
  • 3.2.2 サンプルコードによる確認
  • 3.2.3 推定量の評価方法(一致性と不偏性)

3.3 付録―標本平均/標本分散の一致性と不偏性

  • 3.3.1 標本平均/標本分散の一致性と不偏性の証明
  • 3.3.2 サンプルコードによる確認

第4章 パーセプトロン:分類アルゴリズムの基礎

4.1 確率的勾配降下法のアルゴリズム

  • 4.1.1 平面を分割する直線の方程式
  • 4.1.2 誤差関数による分類結果の評価
  • 4.1.3 勾配ベクトルによるパラメーターの修正
  • 4.1.4 サンプルコードによる確認

4.2 パーセプトロンの幾何学的な解釈

  • 4.2.1 バイアス項の任意性とアルゴリズムの収束速度
  • 4.2.2 パーセプトロンの幾何学的解釈
  • 4.2.3 バイアス項の幾何学的な意味

第5章 ロジスティック回帰とROC曲線:学習モデルの評価方法

5.1 分類問題への最尤推定法の適用

  • 5.1.1 データの発生確率の設定
  • 5.1.2 最尤推定法によるパラメーターの決定
  • 5.1.3 サンプルコードによる確認

5.2 ROC曲線による学習モデルの評価

  • 5.2.1 ロジスティック回帰の現実問題への適用
  • 5.2.2 ROC曲線による性能評価
  • 5.2.3 サンプルコードによる確認

5.3 付録―IRLS法の導出

第6章 k平均法:教師なし学習モデルの基礎

6.1 k平均法によるクラスタリングと応用例

  • 6.1.1 教師なし学習モデルとしてのクラスタリング
  • 6.1.2 k平均法によるクラスタリング
  • 6.1.3 画像データへの応用
  • 6.1.4 サンプルコードによる確認
  • 6.1.5 k平均法の数学的根拠
  • 6.2 怠惰学習モデルとしてのk近傍法
  • 6.2.1 k近傍法による分類
  • 6.2.2 k近傍法の問題点

第7章 EMアルゴリズム:最尤推定法による教師なし学習

7.1 ベルヌーイ分布を用いた最尤推定法

  • 7.1.1 手書き文字の合成方法
  • 7.1.2 「画像生成器」による最尤推定法の適用

7.2 混合分布を用いた最尤推定法

  • 7.2.1 混合分布による確率の計算
  • 7.2.2 EM アルゴリズムの手続き
  • 7.2.3 サンプルコードによる確認
  • 7.2.4 クラスタリングによる探索的なデータ解析

7.3 付録―手書き文字データの入手方法

第8章 ベイズ推定:データを元に「確信」を高める手法

8.1 ベイズ推定モデルとベイズの定理

  • 8.1.1 ベイズ推定の考え方
  • 8.1.2 ベイズの定理入門
  • 8.1.3 ベイズ推定による正規分布の決定:パラメーター推定
  • 8.1.4 ベイズ推定による正規分布の決定:観測値の分布の推定
  • 8.1.5 サンプルコードによる確認

8.2 ベイズ推定の回帰分析への応用

  • 8.2.1 パラメーターの事後分布の計算
  • 8.2.2 観測値の分布の推定
  • 8.2.3 サンプルコードによる確認

8.3 付録―最尤推定法とベイズ推定の関係

著者プロフィール

中井悦司(なかいえつじ)

1971年4月大阪生まれ。ノーベル物理学賞を本気で夢見て,理論物理学の研究に没頭する学生時代,大学受験教育に情熱を傾ける予備校講師の頃,そして,華麗なる(ς)転身を果たして,外資系ベンダーでLinuxエンジニアを生業にするに至るまで,妙な縁が続いて,常にUnix/Linuxサーバと人生を共にする。最近は,Linuxディストリビュータに籍をおいて,企業システムでのLinux/OSSの活用促進に情熱を燃やす日々を過ごしながら,雑誌記事や書籍の執筆にも注力。
休日は,ロシア文学と哲学書を読みながら,ピアノジャズを楽しむはずが,今はなぜか,小学1年生の愛娘とスポーツクラブのプールに通う,近所で評判の「よいお父さん」。「世界平和」のために早めの帰宅を心がけるものの,こよなく愛する場末の飲み屋についつい立ち寄りがちな今日このごろ。
Linux/OSSによる業務アプリケーションの開発から,全国の小売店舗で稼働する10,000台以上のLinuxサーバーの運用サポート,プライベートクラウドの設計・構築まで,さまざまなプロジェクトを通して身につけた,「プロの心構え」を若手エンジニアに伝えるために苦心中。最近は,機械学習理論などデータサイエンスの基礎知識の啓蒙にも活動範囲を拡大。