1章ニューラルネットワークの復習

ひとつ以上の方法を知るまでは、

ものごとを理解したことにはならない。

—— マービン・ミンスキー(コンピュータ科学者、認知科学者)

本書は、前作『ゼロから作るDeep Learning』の続編です。前作に引き続き、ディープラーニングの可能性をさらに深く探索していきます。もちろん、本書においても前作同様、ライブラリやフレームワークなどの既製品は使わずに、「ゼロから作る」ことを重視します。作ることを通して、ディープラーニングに関する技術のおもしろさや奥深さを探求していきたいと思います。

本章では、ニューラルネットワークの復習を行います。つまり、前作のダイジェスト版が本章に相当します。また本作では効率性を重視して、前作での実装ルールを一部変更した点があります(たとえば、メソッド名やパラメータの持ち方など)。その点も本章で確認していきましょう。

1.1 数学とPythonの復習

まず初めに数学の復習から始めます。具体的には、ニューラルネットワークの計算に必要な「ベクトル」や「行列」などをテーマに話を進めていきます。また、ニューラルネットワークの実装にスムーズに入っていけるように、Pythonによるコード——特にNumPyを使ったコード——も合わせて示していきます。

1.1.1 ベクトルと行列

ニューラルネットワークでは、「ベクトル」や「行列」(または「テンソル」)がいたるところで登場します。ここではそれらの用語について簡単に整理し、本書を読み進めるための準備を行います。

まずは「ベクトル」から始めます。ベクトルとは、大きさと向きを持つ量です。ベクトルは、数が一列に並んだ集まりとして表現でき、Pythonによる実装では1次元の配列として扱うことができます。それに対して「行列」は、2次元状(長方形状)に並んだ数の集まりです。ベクトルと行列の例を示すと ...

Get ゼロから作るDeep Learning ❷ ―自然言語処理編 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.