関連サイト
本書の関連ページが用意されています。
内容紹介
ニューラルネットワークで使われる数学の最もやさしい入門書 ― さらにコンピュータ言語Pythonを使って自分自身で作ってみよう!
本書はニューラルネットワークで必要となる数学について、一歩一歩、旅する気分で触れていきながら、コンピュータ言語:Pythonを使いニューラルネットワークを自作します。今日ニューラルネットワークは深層学習と人工知能の重要な鍵であり、大きな実績をあげています。しかし、実際にニューラルネットワークがどのように機能するかを本当に理解している方は極少数でしょう。
本書では極カンタンなところからスタートし、ニューラルネットワークがどのように機能するかを理解していく―ゆっくりと楽しい旅のお手伝いします。読者の方には中学・高校で学んだ以上の数学の知識を必要としません、本書を通して微分へ入門することも可能です。
本書の目的はできるだけ多くの読者に・できるだけ理解しやすくニューラルネットワーク自作をお手伝いすることです(さらに発展した課題が欲しい読者には、既にたくさんの教科書があると思います)。 Pythonでコードを作成し、独自の工夫を入れたニューラルネットワークを作成。「手書きによる数字」を認識してみます。
Part 1 は数学的考え方に関するものです。我々は、ニューラルネットワークの基礎となる数学的考え方を、多くのイラストや例を使って丁寧に紹介していきます。
Part 2 は実践編です。人気があり習得しやすいプログラミング言語:Pythonを紹介しつつ、人間が手書きした「数字」を認識し、容易に実行できるニューラルネットワークを構築していきます。
Part 3 では、これらのアイデアをさらに拡張。シンプルなアイデアやコードを使用し、認識率98%のニューラルネットワークへと改良を進めます。自分で書いた手書き文字でニューラルネットワークをテストし、さらに"制作者の特権"を活かしミステリアスなニューラルネットワークの心の中を覗き見してみよう。
最後に制作物をRaspberry Piで動かしてみます。本書で紹介するすべてのコードは、Raspberry Piで動くことを確認しています。
書誌情報
- 著者: Tariq Rashid(著), 新納浩幸(監訳)
- ページ数: 272ページ(PDF版換算)
- 対応フォーマット: PDF
- 出版社: マイナビ出版
対象読者
専門家でないが人工知能技術に興味がある方、数学の知識はないが機械学習、深層学習を理解しておきたい方、ニューラルネットワークのプログラムを動かしてみたい方
著者について
Tariq Rashid
イギリス生まれのイギリス育ち。子供のころ、近所の図書館でフラクタル数学とBBC Microのプログラミングに関する本を読み漁った。物理学の学位と機械学習、データマイニングの修士号を取得。現在はPythonやRを活用したデータ・テキスト分析を行う。イギリス国政府のオープンソース活用を先導し、London Python meetupグループを率いている。難しいことを美しいほど画期的なアイデアで、誰もが理解でき感謝されるほどシンプルにすることを個人的な使命としている。
新納浩幸
19 61年生まれ。東京工業大学大学院理工学研究科情報科学専攻修士課程修了。現在、茨城大学工学部情報工学科教授、博士(工学)。専門は自然言語処理。主な著書に『数理統計学の基礎—よくわかる予測と確率変数』(森北出版、2004)、『入門Common Lisp—関数型4つの特徴とλ計算』(マイナビ出版、2006)、『Chainer による実践深層学習』(オーム社、2016)がある。
目次
プロローグ
- 0.1 知的マシンの探求
- 0.2 新しい黄金時代を感じさせるもの
イントロダクション
- この本は誰のため?
- 何をするの?
- どうやるの?
- 執筆上、気をつけたこと
Part 1 どうやって動くのか
- 1.1 自分には簡単だけど、相手にとっては困難
- 1.2 単純な予測マシン
- 1.3 分類と予測に大きな違いはない
- 1.4 単純な分類器の学習
- 1.5 時として1つの分類器では不十分
- 1.6 ニューロン、自然界の計算機
- 1.7 ニューロンのネットワークを通る信号の追跡
- 1.8 行列の掛け算は有益・・・本当です!
- 1.9 行列の掛け算を扱った3層の例
- 1.10 1つ以上のノードからの重みの学習
- 1.11 出力層のさらに多くのノードからの誤差逆伝播
- 1.12 さらに多くの層への誤差逆伝播
- 1.13 行列の掛け算による誤差逆伝播
- 1.14 実際にどうやって重みを更新するの?
- 1.15 重み更新の実行例
- 1.16 データの準備
Part 2 Pythonでやってみよう
- 2.1 Python
- 2.2 IPython:インタラクティブなPython
- 2.3 とてもやさしいPython 入門
- 2.4 Pythonでニューラルネットワーク
- 2.5 手書き数字のMNISTデータセット
Part 3 もっと楽しく
- 3.1 自身の手書き文字
- 3.2 ニューラルネットワークの心の中
- 3.3 回転による新しい訓練データの作成
付録A 微分のやさしい導入
- A.1 平らな直線
- A.2 傾斜のある直線
- A.3 曲線
- A.4 手作業による微分
- A.5 手作業ではない微分
- A.6 グラフを描かずに微分
- A.7 微分の規則
- A.8 関数の関数
- A.9 微分計算ができた
付録B Raspberry Piでやってみよう
- B.1 IPython のインストール
- B.2 動くことの確認
- B.3 ニューラルネットワークの学習とテスト
- B.4 Raspberry Piで成功!