Pythonで動かして学ぶ!あたらしい機械学習の教科書(伊藤 真)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. Pythonで動かして学ぶ!あたらしい機械学習の教科書

Pythonで動かして学ぶ!あたらしい機械学習の教科書


形式:
書籍
発売日:
ISBN:
9784798144986
定価:
2,948(本体2,680円+税10%)
仕様:
A5・400ページ
カテゴリ:
人工知能・機械学習
キーワード:
#プログラミング,#開発手法,#データ・データベース,#ビジネスIT
シリーズ:
AI & TECHNOLOGY
紙の書籍
本書籍には新版があります
Pythonで動かして学ぶ!あたらしい機械学習の教科書 第2版

【本書の概要】
人工知能開発の分野では、機械学習(教師あり学習)を利用した開発が非常に多くなってきています。
本書は学習環境の準備から始まり、Pythonの基本および数学の基本を丁寧に解説。
その上で、教師あり学習について、サンプルを元に解説しています。
初学者でも理解しやすいようにイラストを多く利用しています。
また、教師あり学習だけにとどまらず、教師なし学習についても触れています。

【本書の特徴と構成】
機械学習について基礎からきちんと学習できよう、構成を工夫しています。

第1章では開発環境の準備について解説しています。
第2章では機械学習に必要なPythonの基礎知識について丁寧に解説しています。
第3章では機械学習でよく利用するグラフの描画について主だった方法を中心に解説しています。
第4章では機械学習に必要な数学の知識について解説しています。

第5章では教師あり学習(回帰)についてサンプルを元に丁寧に解説しています。
第6章では教師あり学習(分類)についてサンプルを元に丁寧に解説しています。
第7章ではニューラルネットワーク・ディープラーニングの基本について解説しています。
第8章ではニューラルネットワーク・ディープラーニングの応用について解説しています。
第9章では教師なし学習について、ポイントを押さえて解説しています。

特に第5章から第9章では、機械学習を学ぶ過程でつまづきやすいポイントについて
著者がピックアップし、丁寧に解説しています。

【対象読者】
機械学習について学びたい初学者

【著者】
伊藤真(いとう・まこと)
栃木県出身、神奈川県在住。
2000年、東北大学大学院にてラットのナビゲーション行動の数理モデルの研究で情報科学博士取得。
2004-2016年、沖縄科学技術大学院大学神経計算ユニットの実験グループリーダーを務め、
ラットの脳活動のデータ収集とその解析に従事。
主に、ラットの選択行動と脳活動を強化学習モデルで説明する研究を行ってきた。
2017年より、プログレス・テクノロジーズ株式会社に入社、人工知能の産業利用を目指す。
趣味はダンボール工作。

第1章 機械学習の準備
第2章 Pythonの基本
第3章 グラフの描画
第4章 機械学習に必要な数学の基本
第5章 教師あり学習:回帰
第6章 教師あり学習:分類
第7章 教師あり学習:ニューラルネットワーク・ディープラーニング
第8章 教師あり学習:ニューラルネットワーク・ディープラーニングの応用(手書き数字の認識)
第9章 教師なし学習

付属データはこちら

会員特典はこちら

お問い合わせ

内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。

正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。

利用許諾に関するお問い合わせ

本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。

  • reshapeの記法

    本書のP.143のリストなどで

    reshape(xx0,xn*xn,1)

    という形で記載しています。

    本来の記法にのっとれば

    reshape(xx0, xn*xn)

    となります。
  • 補足情報 P.220 リスト6-1-(5)のコードについて

    P.220 リスト6-1-(5) 上から、6行目にある、

    ------------------------
    for n in range(len(y)):
    cee = cee - (t[n] * np.log(y[n]) + (1 - t[n]) * np.log(1-t[n])
    cee = cee / N_n
    ------------------------

    のコードについて、「以下のように考えることもできるのでは?」というお問い合わせがありました。

    ------------------------
    for n in range(len(y)):
    cee = cee + (t[n] * np.log(y[n]) + (1 - t[n]) * np.log(1-t[n])
    cee = - cee / N_n
    ------------------------

    なぜそうしなかったのか、その理由を説明します。

    上記の2つのコードで計算される値はどちらも変わりませんし、たしかに下のコードのほうが式 6-17 と照らし合わせると、しっくりとくるかもしれません。

    筆者が本書で書いた理由は、マイナスをつけた、

    - (t[n] * np.log(y[n]) + (1 - t[n]) * np.log(1-t[n])

    という量が、1つ1つのデータの交差エントロピー誤差に対応するためです。
    このように書くことで、「1つ1つのデータの交差エントロピー誤差を平均したものが、
    全体の交差エントロピー誤差になる」という意味を残せると思ったからです。
    このような書き方は、P.236 リスト6-2-(9) でもしています。
  • 図6.6 ロジスティック回帰モデル 図の下の説明の補足

    図6.6 ロジスティック回帰モデル 図の下の説明の補足「シグモイド関数を通した直線は、0と1の範囲につぶされる。直線が0の値をとる点は、その中間の0.5の値となる。」の箇所の補足説明です。

     シグモイド関数を通した直線は、0と1の範囲につぶされます。
     直線が(縦軸のメモリが)0の値をとる点は、その (シグモイド関数の出力の0と1の範囲の) 中間の0.5の値となります。
     例えば図6.6の一番下のグラフでは、直線は、x = 2 の時に縦軸が 0 となっています。この x = 2 のときに、シグモイド関数の出力は0.5 となります。
  • P219 全角フォントについて

    下から7行目にある「式 6-16 に-1 を掛けたものを考えます。」の「-1」が全角フォントになっていますが、半角の「-1」となります。

ご購入いただいた書籍の種類を選択してください。

書籍の刷数を選択してください。

刷数は奥付(書籍の最終ページ)に記載されています。

現在表示されている正誤表の対象書籍

書籍の種類:

書籍の刷数:

本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。

対象の書籍は正誤表がありません。

最終更新日:2020年02月14日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷 014
下から2行目
2刷
これは、このセルが「コマンドモード」あることを
これは、このセルが「コマンドモード」であることを
2018.02.02
1刷 036
上から6行目
2刷
しかし本書では、多言語を・・・
しかし本書では、他言語を・・・
2018.02.02
1刷 045
下から3行目
4刷
np.round(x, 有効桁数)
np.round(x, 小数点以下の桁数)
2018.05.07
1刷 065
上から4行目
2刷
計算結果を入れる空っぽの2次元配列変数y
計算結果を入れる2次元配列変数y
2018.02.02
1刷 089
上から3~4行目
2刷
…右側だけに作用します。  和の記号Σも同じでした。…
…和の記号Σと同じように右側に作用します。
2018.02.02
1刷 093
上から2行目
2刷
式4-42
式4-41
2018.02.02
1刷 094
上から5行目
2刷
式4-44
式4-41
2018.02.02
1刷 102
下から7行目
公式4−66を使って微分の記号を和の記号の前に出します
公式4−66を使って微分の記号を和の記号の後ろに出します
2019.09.04
1刷 102
式4-69、図4.15(図内の数式とキャプション)、上から5行目
3刷
・式4-69 ・図4.15(図内の数式) ・図4.15キャプション 図 4-15 偏微分の連鎖律 ・上から5行目 微分の記号を和の前に
・式4-69 ・図4.15(図内の数式) ・図4.15キャプション 図 4-15 微分と和の記号の交換 ・上から5行目 微分の記号を和の記号の前に
2018.02.06
1刷 103
1行目
3刷
2018.02.06
1刷 111
1行目
3刷
AB の大きさはL × M
AB の大きさはL × N
2018.02.06
1刷 120
上から1行目
2刷
さて、式4-98は
さて、式4-99は
2018.02.02
1刷 126
図4.30 下の枠内
2刷
2018.02.02
1刷 126
下から3行目
3刷
ここでは簡易的に dx/dy を y' と
ここでは簡易的に dy/dx を y' と
2018.02.06
1刷 138
式4-135 、図4.35
式4-135 y = a exp(-(x - μ)^2 / σ^2) P.138 図4.35、右側、「ガウス関数」の下の式 y = a exp(-(x - μ)^2 / σ^2)
式4-135 y = a exp(-(x - μ)^2 / (2σ)^2) 図4.35、右側、「ガウス関数」の下の式 y = a exp(-(x - μ)^2 / (2σ)^2)
2020.01.06
1刷 141
式4-143
2刷
2018.01.30
1刷 153
図5.5 の下の吹き出し
5刷
2018.07.06
1刷 158
リスト 5-1-(10) 12行目は不要
3刷
mse = mse_line(X, T, W)
2018.02.27
1刷 166
下から6行目の文章、式5-23、式5-24
・下から6行目の文章 これは、横ベクトルです。 ・式5-23 ・式5-24
・下から6行目の文章 これは、縦ベクトルです。 ・式5-23 ・式5-24
2020.01.31
1刷 167
下から2行目
2刷
xm=0 とは、xm=1 と t を表す
xm=0 と xm=1 と t を表す
2018.02.27
1刷 167
本文上から6行目、式5.26、本文下から1行目
・本文下から1行目
・本文下から1行目
2020.01.31
1刷 171
リスト5-1-(16)、上から9から10行目のw0 とw1 の内容が逆、及び本文下から2行目
3刷
リスト5-1-(16) w0 = (c_tx0 * c_x0x1 - v_x0 * c_tx1) / (c_x0x1**2 - v_x0 * v_x1) w1 = (c_tx1 * c_x0x1 - v_x1 * c_tx0) / (c_x0x1**2 - v_x0 * v_x1) 本文 下から2行目 SDは4.56 cm
リスト5-1-(16) w0 = (c_tx1 * c_x0x1 - v_x1 * c_tx0) / (c_x0x1**2 - v_x0 * v_x1) w1 = (c_tx0 * c_x0x1 - v_x0 * c_tx1) / (c_x0x1**2 - v_x0 * v_x1) 本文 下から2行目 SDは2.55 cm
2018.02.07
1刷 172
図5.11、グラフの修正、吹き出しの中の文字の修正
3刷
2018.02.07
1刷 174
上から4行目
4刷
w_0 x_n,0 + ... + w_n,D-1 x_n,D-1
w_0 x_n,0 + ... + w_D-1 x_n,D-1

_以下は下付き添え字を表す
2018.04.26
1刷 174
上から6行目
2刷
Jを最大にするwでは、
Jを最小にするwでは、
2018.02.02
1刷 176
式(5-50)の右辺行列の上から2段目、左端の列、(2行D列の要素)
x_0, D-1
x_1, D-1
2020.02.14
1刷 186
図5.14内 解析解 φの行列の左下の要素
5刷
0(XN-1)
φ0(XN-1)
2018.07.12
1刷 189
リスト5-2-(10)上から3~6行目
4刷
X_test = X[:int(X_n / 4 + 1)] T_test = T[:int(X_n / 4 + 1)] X_train = X[int(X_n / 4 + 1):] T_train = T[int(X_n / 4 + 1):]
X_test = X[:int(X_n / 4)] T_test = T[:int(X_n / 4)] X_train = X[int(X_n / 4):] T_train = T[int(X_n / 4):]
2018.05.07
1刷 190
リスト5-2-(10) 上から1行目
4刷
plt.ylim(130, 180)
plt.ylim(120, 180)
2018.05.07
1刷 190
図5-17
4刷
2018.05.07
1刷 191
図5-18
4刷
2018.05.07
1刷 192
下から2行目
5刷
K-hold cross-validation
K-fold cross-validation
2018.07.12
1刷 192
図5-19
4刷
2018.05.07
1刷 193
図5.20 キャプション
5刷
図 5.20: K- 分割交差検証(K-hold cross validation)の方法
図 5.20: K- 分割交差検証(K-fold cross validation)の方法
2018.07.12
1刷 195
上から本文2行目
5刷
このkhold_gauss_func を使って
このkfold_gauss_func を使って
2018.07.12
1刷 196
図5.21 右下の吹き出し
2刷
M > 3 のときに最小値
M = 3 のときに最小値
2018.02.02
1刷 202
下から4行目
4刷
リスト 5-2-(20)で作った人工データ
リスト 5-1-(1)で作った人工データ
2018.05.29
1刷 202
リスト 5-2-(20) 上から6行目と14行目、本文:下から7行目
3刷
・リスト 5-2-(20) 上から6行目 wm = fit_model_A(np.array([169, 113, 0.2]), x_train, t_test) ・リスト 5-2-(20) 上から14行目 mean_A_test = np.sqrt(np.mean(Cv_Gauss_train)) ・本文下から7行目 は 3.88 cm となり
・リスト 5-2-(20) 上から6行目 wm = fit_model_A(np.array([169, 113, 0.2]), x_train, t_train) ・リスト 5-2-(20) 上から14行目 mean_A_test = np.sqrt(np.mean(Cv_A_test)) ・本文下から7行目 は 4.72 cm となり
2018.02.13
1刷 203
図5.25、本文:下から3行目
3刷
・図5.25の修正 ・グラフ下の説明:下から3行目 誤:3.88 cm であった。
・図5.25の修正 ・グラフ下の説明:下から3行目 正:4.72 cm であった。
2018.02.13
1刷 208
図6.1 右下
5刷
(紙面上の都合で6×3に並べてある)
(紙面上の都合で6×5に並べてある)
2018.11.02
1刷 208
上から2-3行目
3刷
オスであれば、Dist_s[0] = 0.8 から幅 Dist_w[0] = 1.6
オスであれば、Dist_s[1] = 0.8 から幅 Dist_w[1] = 1.6
2018.02.13
1刷 215
上から3行目
2刷
2018.02.02
1刷 216
図6.6 グモイド曲線の位置(真ん中と下)
4刷
・図6.6
・図6.6
2018.05.21
1刷 222
下から4行目
3刷
まず、式6-17 を式 6-18 ように表します。
まず、式6-17 を式 6-18 のように表します。
2018.02.23
1刷 226
図6.8 「ロジスティック回帰モデル」の式で x の添え字が不足
3刷
2018.02.13
1刷 234
リスト 6-2-(7) 下から6行目
3刷
Ax.view_init(elev=25, azim=-30)
ax.view_init(elev=25, azim=-30)
2018.02.13
1刷 235
下から4行目、下から1行目
3刷
・下から4行目 ここでのデータベースでは ・ 下から1行目 相互エントロピー誤差
・下から4行目 ここでのクラスデータでは ・ 下から1行目 交差エントロピー誤差
2018.02.27
1刷 236
式6-37、式6-38、リスト 6-2-(9)の2行目コメント、6-2-(10)の2行目コメント
3刷
・リスト 6-2-(9)の2行目コメント クロスエントロピー誤差 ・リスト 6-2-(10)の2行目コメント クロスエントロピー誤差 の微分
・リスト 6-2-(9)の2行目コメント 交差エントロピー誤差 ・リスト 6-2-(10)の2行目コメント 交差エントロピー誤差 の微分
2018.02.23
1刷 238
図6.12内の値の修正
3刷
2018.02.13
1刷 240
式6-44
4刷
2018.05.10
1刷 242
式6-50
3刷
2018.02.06
1刷 243
式6-51
3刷
2018.02.23
1刷 255
式7-7 ln を logに修正
3刷
2018.02.14
1刷 257
図7.6 右上の枠内
3刷
2018.02.06
1刷 263
図7.8
3刷
2018.02.13
1刷 264
リスト 7-1-(4) の下から6行目のコメント
3刷
# 中間層ニューロンのの出力
# 中間層ニューロンの出力
2018.02.13
1刷 266
リスト7-1-(5)の上から2行目のコメント、下から3行目
3刷
・リスト7-1-(5)の上から2行目のコメント 平均交差スエントロピ誤差 ・下から3行目 クロスエントロピーが計算されます。
・リスト7-1-(5)の上から2行目のコメント 平均交差エントロピー誤差 ・下から3行目 交差エントロピーが計算されます。
2018.02.13
1刷 271
該当ページのリスト 7-1-(7)の1行目 epsilon = 0.001 の削除
3刷
epsilon = 0.001
2018.02.13
1刷 274
リスト 7-1-(10) 中 15行目
5刷
levels=[0.8, 0.9],
levels=[0.5, 0.9],
2018.09.14
1刷 276
式7-21、式7-22、下から10行目、下から5行目
3刷
・式7-21 ・式7-22 ・下から10行目 相互エントロピー誤差 ・下から5行目 平均相互エントロピー誤差は、データ個別の相互エントロピー誤差の
・式7-21 ・式7-22 ・下から10行目 交差エントロピー誤差 ・下から5行目 平均交差エントロピー誤差は、データ個別の交差エントロピー誤差の
2018.02.13
1刷 277
数式を除いて、4行目
5刷
w_kj
w_ji
2018.09.14
1刷 277
上から4行目、5行目
3刷
・上から4行目 式を求め(7.2.5 項) ・上から5行目 式を求める(7.2.6 項)
・上から4行目 式を求め(7.2.6 項) ・上から5行目 式を求める(7.2.7 項)
2018.02.19
1刷 279
下から2行目
5刷
ちなみに、この結果(式7-34)は
ちなみに、結果(式7-33)は
2018.11.02
1刷 279
下から8行目、下から2行目
3刷
・下から8行目 よって、式7-30、式7-31 をまとめると、 ・下から2行目 クロスエントロピーを使ったから
・下から8行目 よって、式7-31、式7-32 をまとめると、 ・下から2行目 交差エントロピーを使ったから
2018.02.13
1刷 281
図7.14 左下、入力層の四角の中の xj は xi
3刷
xj
xi
2018.02.19
1刷 283
式7-46、下から1行目、図7.15
3刷
・式7-46 ・下から1行目 よって、式7-48 は、次の式7-49 となります。 ・図7.15(aの部分) Wji(t+1) = Wji(t) - a δj(1) Xi の意味
・式7-46 ・下から1行目 よって、式7-46 は、次の式7-49 となります。 ・図7.15(aをαに修正) Wji(t+1) = Wji(t) - α δj(1) Xi の意味
2018.02.13
1刷 284
式7-49
3刷
2018.02.13
1刷 286
図7-19 δ1(1) の式内のh'() 関数の引数 b の添え字
3刷
・δ1(1) = h'(b0) ∑・・・ (後略)
・δ1(1) = h'(b1) ∑・・・ (後略)
2018.02.13
1刷 289
上から11行目
5刷
#------Show VW
#------Show dWV
2018.11.27
1刷 290
図7.22 左図タイトル
analitical
analytical
2020.02.14
1刷 291
リスト7-1-(12)の下から5行目
5刷
alpha = 1
alpha = 0.5
2018.11.27
1刷 291
リスト7-1-(12)の上から8行目の epsilon = 0.001 の削除
3刷
epsilon = 0.001
2018.02.13
1刷 293
下から3~4行目
3刷
クロスエントロピーを小さくする wv を求めるために、クロスエントロピーを求める
交差エントロピーを小さくする wv を求めるために、交差エントロピーを求める
2018.02.27
1刷 297
図 7.25 W, V の値
3刷
2018.02.13
1刷 297
上から4行目、上から5行目
3刷
・上から4行目 z0のマップを1.2倍したものと ・上から5行目 5.5倍したものを足し合わせ、最後に全体を3.2下げて
・上から4行目 z0のマップを0.8倍したものと ・上から5行目 6.3倍したものを足し合わせ、最後に全体を3.4下げて
2018.02.14
1刷 300
リスト7-2-(3) の12行目
3刷
lr = 1
lr = 0.5
2018.02.13
1刷 303
下から1行目
3刷
テストデータの相互エントロピー誤差
テストデータの交差エントロピー誤差
2018.02.27
1刷 305
2行目~3行目
訓練データの交差エントロピー誤差は、history.history['val_loss']で参照できます(B)。
テストデータの交差エントロピー誤差は、history.history['val_loss']で参照できます(B)。
2019.01.22
1刷 306
図 7.26の(A)と(B)
5刷
学習ステップ
学習エポック
2018.11.27
1刷 313
上から2行目
3刷
テストデータでの相互エントロピー誤差
テストデータでの交差エントロピー誤差
2018.02.27
1刷 315
図8.4
3刷
相互エントロピー誤差
交差エントロピー誤差
2018.02.27
1刷 321
上から2行目
5刷
27 × 27
28 × 28
2018.11.27
1刷 324
本文上から2行目
3刷
訓練データの2番目の "4" に適用してみましょう。
訓練データの3番目の "4" に適用してみましょう。
2018.03.02
1刷 333
上から1行目
3刷
テストデータ x_test の中で 12 番目の "9" の
テストデータ x_test の中で 13 番目の "9" の
2018.02.14
1刷 336
下から5行目
4刷
1刷、2刷:28 × 28 × 16 のブロックとなります。 3刷 :28 × 28 × 16(パディングを入れていないので画像サイズは26)のブロックとなります。
26 × 26 × 16(パディングを入れていないので画像サイズは26)のブロックとなります。
2018.02.14
1刷 337
上から1行目、上から4行目
3刷
・図8.19 ・上から1行目 半分の 14 × 14 ・上から4行目 画像サイズが 7 × 7
・図8.19 ・上から1行目 半分の 12 x 12 ・上から4行目 画像サイズが 5 x 5
2018.02.14
1刷 346
上から5行目
3刷
この例では K=3 なので3つの中心ベクトルをとりえず、
この例では K=3 なので3つの中心ベクトルをとりあえず、
2018.02.16
1刷 348
図9.3 Mu = の下の値
3刷
2018.02.16
1刷 349
図9.4 Step1
3刷
2018.02.16
1刷 351
図9.5 Mu = の下の値
3刷
2018.02.16
1刷 360
上から1行目
5刷
潜在変数(latent valiable)や隠れ変数(hidden valiableI)
潜在変数(latent variable)や隠れ変数(hidden variable)
2018.11.27
1刷 362
上から9行目 プログラムコード
% reset
%reset
2020.02.14
1刷 367
上から7行目
3刷
π、μ、∑を使って、γ求めます。
π、μ、∑を使って、γを求めます。
2018.03.02
1刷 368
図9.13
3刷
2018.02.16
1刷 369
式9-16
5刷

1本目の式を削除
2018.11.27
1刷 369
式9-16、図9.14
3刷
・式9-16 ・図9.14
・式9-16 ・図9.14
2018.03.02
1刷 371
式9-20
3刷
・式9-20
・式9-20
2018.03.02
1刷 373
図9.15
3刷
・図9.15上 ・図9.15下
・図9.15上 ・図9.15下
2018.02.16
1刷 378
リスト 9-2-(15)の 9行目のコメント
3刷
# dstortion measure
# distortion measure
2018.02.16

感想・レビュー

MATSUDA, Shougo さん

2019-06-15

同シリーズ読み進めてますが、本書も学び多し。本書と同シリーズのKeras/Tensorflow本で結構実践的に学べます。

ogappy さん

2018-12-09

とある講座の教科書として。jupyter notebookをつかっているのと先生つきでしたのでサクサクと。 数学のまとめは不要かなぁ。

funa1g さん

2021-03-10

基本的な数学から押さえつつ、機械学習に関して数学的に理解する本。まさに教科書。大学学部レベルの人工知能の授業っぽい。出てくる数学の解説もありますが、これだけで理解するのはしんどいと思うので、できたら大学数学か最低でも高校数学くらいの基礎はほしい。なんとなく機械学習ライブラリが動かせる、みたいな感じではなく、論文も読み下せるようになりたい人の入門書として有用。少なくともこれくらいは読み下せないとPRMLは読めないので、有名だからとPRMLとかに行く前にオススメ。