1. ホーム >
  2. 書籍 >
  3. Pythonで動かして学ぶ! あたらしい機械学習の教科書

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


形式:
書籍
発売日:
ISBN:
9784798144986
価格:
本体2,680円+税
仕様:
A5・400ページ
分類:
PC書その他

本書籍の他の形式を確認する

  • このエントリーをはてなブックマークに追加

【本書の概要】
人工知能開発の分野では、機械学習(教師あり学習)を利用した開発が非常に多くなってきています。
本書は学習環境の準備から始まり、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」となります。

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

書籍・SEshop限定PDF:ご購入刷数  電子書籍 最終更新日:2018年07月12日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
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
式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刷 141
式4-143
2刷
2018.01.30
1刷 153
図5.5 の下の吹き出し
2018.07.06
1刷 158
リスト 5-1-(10) 12行目は不要
3刷
mse = mse_line(X, T, W)
2018.02.27
1刷 167
下から2行目
2刷
xm=0 とは、xm=1 と t を表す
xm=0 と xm=1 と t を表す
2018.02.27
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刷 186
図5.14内 解析解 φの行列の左下の要素
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行目
K-hold cross-validation
K-fold cross-validation
2018.07.12
1刷 192
図5-19
4刷
2018.05.07
1刷 193
図5.20 キャプション
図 5.20: K- 分割交差検証(K-hold cross validation)の方法
図 5.20: K- 分割交差検証(K-fold cross validation)の方法
2018.07.12
1刷 195
上から本文2行目
この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
上から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刷 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行目
3刷
・上から4行目 式を求め(7.2.5 項) ・上から5行目 式を求める(7.2.6 項)
・上から4行目 式を求め(7.2.6 項) ・上から5行目 式を求める(7.2.7 項)
2018.02.19
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刷 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刷 313
上から2行目
3刷
テストデータでの相互エントロピー誤差
テストデータでの交差エントロピー誤差
2018.02.27
1刷 315
図8.4
3刷
相互エントロピー誤差
交差エントロピー誤差
2018.02.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刷 367
上から7行目
3刷
π、μ、∑を使って、γ求めます。
π、μ、∑を使って、γを求めます。
2018.03.02
1刷 368
図9.13
3刷
2018.02.16
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

関連書籍