【本書の目的】
本書は線形代数、確率、統計/微分といったAI開発に必要な数学の基礎知識をコードを動かしながらわかりやすく解説した書籍です。
【対象読者】
・数学がAIや機械学習を勉強する際の障壁になっている方
・ビジネスでAIを扱う必要に迫られた方
・数学を改めて学び直したい方
・文系の方、非エンジニアの方で数学の知識に自信のない方
・コードを書きながら数学を学びたい方
【第2版のポイント】
・Python 3.12に対応
・Anaconda及びライブラリのバージョンアップに対応
【目次】
序章 イントロダクション
第1章 学習の準備をしよう
第2章 Pythonの基礎
第3章 数学の基礎
第4章 線形代数
第5章 微分
第6章 確率・統計
第7章 数学を機械学習で実践
Appendix さらに学びたい方のために
【著者プロフィール】
我妻 幸長(あづま・ゆきなが)
「ヒトとAIの共生」がミッションの会社、SAI-Lab株式会社(https://sai-lab.co.jp)の代表取締役。AI関連の教育と研究開発に従事。東北大学大学院理学研究科修了。理学博士(物理学)。法政大学デザイン工学部兼任講師。Web上のコミュニティ「自由研究室 AIRS-Lab」を主宰。オンライン教育プラットフォームUdemyで、20万人以上にAIを教える人気講師。複数の有名企業でAI技術を指導。
序章 イントロダクション
0.1 本書の特徴
0.2 本書でできるようになること
0.3 本書の対象
0.4 人工知能(AI)とは?
0.5 人工知能向けの数学
0.6 本書の使い方
第1章 学習の準備をしよう
1.1 Anacondaのインストール
1.1.1 Anacondaのダウンロード
1.1.2 Anacondaのインストール
1.1.3 Anaconda Navigatorの起動
1.1.4 NumPyとmatplotlibのインストールの確認
1.2 Jupyter Notebookの使い方
1.2.1 Jupyter Notebookの起動
1.2.2 Jupyter Notebookを使ってみる
1.2.3 コードとマークダウンの切り替え
1.2.4 ノートブックの保存と終了
1.3 サンプルのダウンロードと本書の学び方
1.3.1 サンプルのダウンロード
1.3.2 本書の学び方
第2章 Pythonの基礎
2.1 Pythonの基礎
2.1.1 Pythonとは
2.1.2 変数
2.1.3 値の表示と変数の保持
2.1.4 演算子
2.1.5 大きな数、小さな数の表記
2.1.6 リスト
2.1.7 タプル
2.1.8 if文
2.1.9 for文
2.1.10 関数
2.1.11 スコープ
2.1.12 演習
2.2 NumPyの基礎
2.2.1 NumPyとは
2.2.2 NumPyのインポート
2.2.3 NumPyの配列を生成
2.2.4 配列の形状
2.2.5 配列の演算
2.2.6 要素へのアクセス
2.2.7 関数と配列
2.2.8 NumPyの様々な機能
2.2.9 演習
2.3 matplotlibの基礎
2.3.1 matplotlibとは
2.3.2 matplotlibのインポート
2.3.3 linspace()関数
2.3.4 グラフの描画
2.3.5 グラフの装飾
2.3.6 散布図の表示
2.3.7 ヒストグラムの表示
2.3.8 演習
COLUMN 生成AIを使った数学の学習
第3章 数学の基礎
3.1 変数、定数
3.1.1 変数と定数の違い
3.1.2 変数と定数の例
3.1.3 演習
3.2 関数
3.2.1 関数とは
3.2.2 関数の例
3.2.3 数学の関数と、プログラミングの関数の違い
3.2.4 数学の「関数」を、プログラミングの「関数」で実装
3.2.5 演習
3.3 べき乗と平方根
3.3.1 べき乗とは
3.3.2 べき乗をコードで実装
3.3.3 平方根とは
3.3.4 平方根をコードで実装
3.3.5 演習
3.4 多項式関数
3.4.1 多項式とは
3.4.2 多項式を実装
3.4.3 演習
3.5 三角関数
3.5.1 三角関数とは
3.5.2 三角関数を実装
3.5.3 演習
3.6 総和と総乗
3.6.1 総和とは
3.6.2 総和を実装
3.6.3 総乗とは
3.6.4 総乗を実装
3.6.5 演習
3.7 乱数
3.7.1 乱数とは
3.7.2 均一な乱数
3.7.3 偏った乱数
3.7.4 演習
3.8 LaTeXの基礎
3.8.1 LaTeXとは
3.8.2 様々な数式の記述
3.8.3 演習
3.9 絶対値
3.9.1 絶対値とは
3.9.2 関数の絶対値
3.9.3 演習
COLUMN ディープラーニングが躍進する理由
第4章 線形代数
4.1 スカラー、ベクトル、行列、テンソル
4.1.1 スカラーとは
4.1.2 スカラーの実装
4.1.3 ベクトルとは
4.1.4 ベクトルの実装
4.1.5 行列とは
4.1.6 行列の実装
4.1.7 テンソルとは
4.1.8 テンソルの実装
4.1.9 演習
4.2 ベクトルの内積とノルム
4.2.1 内積とは
4.2.2 内積の実装
4.2.3 ノルムとは
4.2.4 ノルムの実装
4.2.5 演習
4.3 行列の積
4.3.1 行列の積
4.3.2 行列積の数値計算
4.3.3 行列積の一般化
4.3.4 行列積の実装
4.3.5 要素ごとの積(アダマール積)
4.3.6 要素ごとの積の実装
4.3.7 演習
4.4 転置
4.4.1 転置とは
4.4.2 転置の実装
4.4.3 行列積と転置
4.4.4 転置と行列積の実装
4.4.5 演習
4.5 行列式と逆行列
4.5.1 単位行列とは
4.5.2 単位行列の実装
4.5.3 逆行列とは
4.5.4 行列式とは
4.5.5 行列式の実装
4.5.6 逆行列の実装
4.5.7 演習
4.6 線形変換
4.6.1 ベクトルの描画
4.6.2 線形変換
4.6.3 標準基底
4.6.4 演習
4.7 固有値と固有ベクトル
4.7.1 固有値、固有ベクトルとは
4.7.2 固有値、固有ベクトルを求める
4.7.3 固有値と固有ベクトルの計算
4.7.4 演習
4.8 コサイン類似度
4.8.1 ノルムと三角関数で内積を表す
4.8.2 コサイン類似度を計算する
4.8.3 演習
第5章 微分
5.1 極限と微分
5.1.1 極限とは
5.1.2 微分とは
5.1.3 微分の公式
5.1.4 接線の描画
5.1.5 演習
5.2 連鎖律
5.2.1 合成関数とは
5.2.2 連鎖律(chain rule)とは
5.2.3 連鎖律の証明
5.2.4 演習
5.3 偏微分
5.3.1 偏微分とは
5.3.2 偏微分の例
5.3.3 演習
5.4 全微分
5.4.1 全微分とは
5.4.2 全微分の式の導出
5.4.3 全微分の例
5.4.4 演習
5.5 多変数合成関数の連鎖律
5.5.1 多変数合成関数の微分①
5.5.2 多変数合成関数の微分②
5.5.3 多変数合成関数の微分の例
5.5.4 演習
5.6 ネイピア数と自然対数
5.6.1 ネイピア数とは
5.6.2 ネイピア数の実装
5.6.3 自然対数とは
5.6.4 自然対数と導関数
5.6.5 自然対数の実装
5.6.6 シグモイド関数
5.6.7 演習
5.7 最急降下法
5.7.1 最急降下法とは
5.7.2 最急降下法の実装
5.7.3 局所的な最小値
5.7.4 演習
COLUMN シンギュラリティと指数関数
第6章 確率・統計
6.1 確率の概念
6.1.1 確率とは
6.1.2 余事象
6.1.3 確率への収束
6.1.4 演習
6.2 平均値と期待値
6.2.1 平均値とは
6.2.2 平均値を実装
6.2.3 期待値とは
6.2.4 期待値を実装
6.2.5 平均値と期待値の関係
6.2.6 演習
6.3 分散と標準偏差
6.3.1 分散とは
6.3.2 分散を実装
6.3.3 標準偏差とは
6.3.4 標準偏差を実装
6.3.5 演習
6.4 正規分布とべき乗則
6.4.1 正規分布とは
6.4.2 正規分布のカーブを描画
6.4.3 正規分布に従う乱数
6.4.4 べき乗則とは
6.4.5 べき乗則に従う乱数
6.4.6 演習
6.5 共分散
6.5.1 共分散とは
6.5.2 共分散の例
6.5.3 共分散の実装
6.5.4 共分散からデータを生成する
6.5.5 演習
6.6 相関係数
6.6.1 相関係数とは
6.6.2 相関係数の例
6.6.3 Pythonで相関係数を求める
6.6.4 演習
6.7 条件付き確率とベイズの定理
6.7.1 条件付き確率とは
6.7.2 条件付き確率の例
6.7.3 ベイズの定理とは
6.7.4 ベイズの定理の活用例
6.7.5 演習
6.8 尤度
6.8.1 尤度とは
6.8.2 尤度が小さいケース
6.8.3 尤度が大きいケース
6.8.4 尤度とパラメータ
6.8.5 演習
6.9 情報量
6.9.1 情報量とは
6.9.2 選択情報量(自己エントロピー)
6.9.3 選択情報量をグラフ化
6.9.4 平均情報量(エントロピー)
6.9.5 平均情報量の意味
6.9.6 交差エントロピー
6.9.7 交差エントロピーを計算する
6.9.8 演習
COLUMN 自然言語処理とは
第7章 数学を機械学習で実践
7.1 回帰と過学習
7.1.1 回帰と分類
7.1.2 回帰分析と多項式回帰
7.1.3 最小二乗法
7.1.4 最急降下法を用いて誤差を最小にする
7.1.5 使用するデータ
7.1.6 多項式回帰の実装
7.1.7 演習
7.2 分類とロジスティック回帰
7.2.1 分類とは
7.2.2 ロジスティック回帰とは
7.2.3 パラメータの最適化
7.2.4 使用するデータ
7.2.5 ロジスティック回帰の実装
7.2.6 演習
7.3 ニューラルネットワークの概要
7.3.1 人工知能(AI)、機械学習、ニューラルネットワーク
7.3.2 ニューロンのモデル
7.3.3 ニューラルネットワーク
7.4 学習のメカニズム
7.4.1 単一ニューロンの学習
7.4.2 順伝播の式
7.4.3 誤差の定義
7.4.4 正解データの用意
7.4.5 重みとバイアスの更新
7.4.6 重みの勾配
7.4.7 バイアスの勾配
7.5 単一ニューロンによる学習の実装
7.5.1 ベースの数式
7.5.2 入力と正解
7.5.3 順伝播と逆伝播
7.5.4 出力の表示
7.5.5 学習
7.6 ディープラーニングへ
7.6.1 多層ニューラルネットワークの学習
7.6.2 ディープラーニングへ
Appendix さらに学びたい方のために
AP1 さらに学びたい方のために
AP1.1 コミュニティ「自由研究室AIRS-Lab」
AP1.2 著者
AP1.3 YouTubeチャンネル「我妻幸長のAI教室」
AP1.4 オンライン講座
AP1.5 著者のX/Instagramアカウント