本書は、機械学習の入門者から中級者までをおもな対象として、機械学習を理解し実践するために必要なさまざまな要素を選抜して解説した、機械学習のガイドブックです。
機械学習の概要から解説をはじめ、機械学習の歴史と主要なアルゴリズム、機械学習を実践するためのプログラミング言語であるRとPythonそれぞれの説明と連携、機械学習を正しく使いこなすためのさまざまな注意点、Kerasを活用したディープラーニングの実践、そして強化学習の例としてアルファゼロを取り上げています。付録には機械学習の理論的裏付けとなる数学の概要も取り上げています。
入門者の方はまず本書の第1章「機械学習とは何か、どんな働きをするのか」を読み、第5章「さあ機械学習の本質を体験してみよう」の実践を繰り返してみてください。だんだんと機械学習に関する多くのことが見えるようになってきて、中級者への道が開けるでしょう。
中級者の方には前半はやや簡単かもしれませんが、第8章「Kerasを使ったディープラーニングの実践」、第9章「さまざまなゲームの攻略法をゼロから学習するアルファゼロ」の内容が十分に理解できたのであれば、かなりのレベルに達したのだと思います。簡単かもしれない前半部分にも、参考になるさまざまな要素を仕込みました。
機械学習の入門から中級者への道をガイドする1冊となっています。
https://www.ohmsha.co.jp/book/9784274223938/
正誤表やDLデータ等がある場合はこちらに掲載しています
はじめに
第1章 機械学習とは何か、どんな働きをするのか
第2章 機械学習小史:機械学習ブームの基盤を作った主人公たち
第3章 ぜひ使ってみたい役に立つアルゴリズム
第4章 RとPython
第5章 さあ機械学習の本質を体験してみよう
第6章 機械学習を上手に使いこなすコツ
第7章 RとPythonの連携
第8章 Kerasを使ったディープラーニングの実践
第9章 さまざまなゲームの攻略法をゼロから学習するアルファゼロ
付録A 機械学習の基盤となる数学の概要
A.1 機械学習の数学的基盤となるベクトル空間
A.2 ベクトル空間、ノルム空間、内積空間、ユークリッド空間とその関係
A.3 ドット積、行列、行列積
A.4 さまざまな行列の性質とその演算
A.5 行列と線形写像、固有値、テンソル、カーネル関数と射影
A.6 確率空間、確率変数、確率分布
A.7 統計的推定
A.8 最適化の手法
付録B RとPython のデータ分析に関連する基本的コマンドの比較
B.1 基本的機能
B.2 ベクトル、行列などの作成と操作および数値計算(NumPy機能の対応)
B.3 データフレームの作成・操作など(Pandas機能の対応)
おわりに
参考文献とそのガイド
はじめに
第1章 機械学習とは何か、どんな働きをするのか
1.1 機械が学習し分類(判別)や予測(回帰)をする
1.2 学習と予測のプロセス
1.3 機械学習の学習方法の分類
1.4 AIと機械学習の関係
1.5 機械学習を発展させた三つの重要なデータセット
1.6 IRIS:20世紀古典的データセット
1.7 ディープラーニングを発展させた手書きの数字MNISTデータセット
1.8 ではどうやって機械が分類や予測をしてくれるのだろうか?
1.9 直線的な分類の代表的な手法 ロジスティック回帰
1.10 直線から曲線、そしてより複雑な曲線へ
1.11 ぎざぎざの線による分類
1.12 近いものを集めて分類する方法
1.13 ディープラーニングを発展させた画像データの構造(ImageNet)
第2章 機械学習小史:機械学習ブームの基盤を作った主人公たち
2.1 AI・人工知能の歴史概要
2.2 現在の機械学習の発展を支えた要因
2.3 ベイズ統計を作ったベイズとラプラス
2.4 近代統計学の確立者でIRISデータセットを使ったフィッシャー
2.5 コンピュータと機械学習の父、チューリング
2.6 SVMに関連する理論を構築したロシアの天才ヴァプニク
2.7 単純な木(ツリー)構造のアプローチを大変身させたブレイマン(ランダムフォレスト)
2.8 現在世界中で最も活用されているディープラーニングの構造を作った福島邦彦(CNN)
2.9 ニューラルネットの技術を開花させたルカンとヒントン
2.10 ディープラーニング・ブームの到来
2.11 DeepMindと強化学習
第3章 ぜひ使ってみたい役に立つアルゴリズム
3.1 機械学習の性能の推移
3.2 二値分類問題の基本形のロジスティック回帰
3.3 正則化による回帰学習の過学習リスク抑制
3.4 怠惰学習とからかわれるが意外に強力なk近傍法(k-nn)
3.5 作ってみると面白い階層的(hierarchical)クラスタリング
3.6 非階層的なクラスタリング手法のk平均法
3.7 21世紀序盤の流行アプローチのSVM
3.8 ランダムフォレストと勾配ブースティング
3.9 ディープラーニングといえばまずは畳み込みニューラルネットワーク(CNN)
3.10 2012年のAlexNet登場以来のディープラーニング
3.11 人間のタスクを機械自身が学習する強化学習
第4章 RとPython
4.1 機械学習を実践するならRかPythonは必須
4.2 統計とグラフィックのR言語
4.3 独特な哲学を持つPython
4.4 Pythonと機械学習
4.5 RStudioとJupyter Notebook
4.6 Rによる機械学習向けの主要なパッケージ
4.7 Pythonで機械学習に使われるライブラリ
4.8 それぞれの特徴と長所と短所のまとめ
4.9 どちらを使うべきか
4.10 時代は連携の方向で動いている
4.11 RとPythonと作業環境のインストール
第5章 さあ機械学習の本質を体験してみよう
5.1 第1章のグラフをPythonを使い自分で作ってみよう
5.2 IRISのデータを取得して中身を分析
5.3 分類領域のグラフ関数の定義
5.4 まずはフィッシャーの直線分類LDAから
5.5 ロジスティック回帰
5.6 サポートベクターマシン(SVM)
5.7 決定木
5.8 ランダムフォレスト
5.9 k近傍法(k-nn)
5.10 慣れてきたら、少しずつパラメータを変えてみよう
5.11 Rを使っても同じような分析ができる
第6章 機械学習を上手に使いこなすコツ
6.1 機械学習を実践するポイント
6.2 データの形式を理解して常に確認しよう
6.3 データの正規化(特徴量のスケーリング)の必要性
6.4 学習データの役割とテストデータの役割
6.5 特徴量の選別(次元削減)
6.6 適度な正則化の実施
6.7 適切な学習データ量と少ない場合の対応
6.8 ちょっと待て、特徴量はそれでよいのか?
6.9 アプローチの選択時に考慮すべきこと
6.10 各アプローチの特徴を整理する
6.11 アプローチのメカニズムとパラメータの役割を理解しよう
6.12 時系列データの扱いの注意点
第7章 RとPythonの連携
7.1 RとPythonのいいとこ取りをすれば最強
7.2 実はRとPythonの一体化はかなり進んでいる(reticulateの活用)
7.3 Rのggplot2による美しく柔軟な描図
7.4 RによるIRISデータの事前準備
7.5 RStudioでscikit-learnのk平均法を使う
7.6 PythonからRを使う
7.7 PythonからRのxgboost()関数で勾配ブースティングを試してみる
7.8 臨機応変な使い分けがお勧め
7.9 時代は連携の方向に動いている
第8章 Kerasを使ったディープラーニングの実践
8.1 ディープラーニングのライブラリの進歩
8.2 MNISTデータの事前処理
8.3 KerasとRStudioを使ったMNISTデータのCNNによる学習
8.4 学習の実行
8.5 機械が誤分類したデータの確認
8.6 フィルタと中間層のデータの可視化
8.7 畳み込み層の各層の可視化とサンプル画像の状態推移
第9章 さまざまなゲームの攻略法をゼロから学習するアルファゼロ
9.1 世界を驚かせたアルファ碁からアルファゼロまでの進化
9.2 囲碁ソフトの強さを飛躍させたモンテカルロ木検索(MCTS)
9.3 MCTSとディープラーニングを組み合わせたDeepMind
9.4 アルファゼロのMCTSとニューラルネットワーク(NN)
9.5 アルファゼロの強化学習のプロセス:MCTSとNNの学習の連携
9.6 MCTSのプロセスとしての自己対戦とそのアプローチの進化
9.7 ResNetとバッチ正規化
9.8 アルファゼロのニューラルネットワーク
9.9 PyTorchやKerasを使ったアルファゼロのレプリカの実践
付録A 機械学習の基盤となる数学の概要
A.1 機械学習の数学的基盤となるベクトル空間
A.2 ベクトル空間、ノルム空間、内積空間、ユークリッド空間とその関係
A.3 ドット積、行列、行列積
A.4 さまざまな行列の性質とその演算
A.5 行列と線形写像、固有値、テンソル、カーネル関数と射影
A.6 確率空間、確率変数、確率分布
A.7 統計的推定
A.8 最適化の手法
付録B RとPython のデータ分析に関連する基本的コマンドの比較
B.1 基本的機能
B.2 ベクトル、行列などの作成と操作および数値計算(NumPy機能の対応)
B.3 データフレームの作成・操作など(Pandas機能の対応)
おわりに
参考文献とそのガイド
索引