はじめに
本記事は、書籍『ゼロから作るDeep Learning ❷―自然言語処理編』の1章をまとめたものです。
1章で学べる内容と、読み進める上で押さえておきたい重要な単語について解説します。
ゼロつくを読むのに苦労している方の理解の助けになれば幸いです。
この章で学べる内容
1章では、ニューラルネットワークの基礎的な仕組みについてPythonで実装しながら学びます。
前作である「ゼロから作るDeep Learning―Pythonで学ぶディープラーニングの理論と実装」のダイジェスト版という位置づけなので、前作を読んでいない方は特に注意して読む必要があります。
具体的な学習内容
本章で扱う主な内容は以下の3つです。
1. ニューラルネットワークの基本構造
ニューラルネットワークとは、人間の脳神経系を模倣した機械学習モデルです。入力層、隠れ層、出力層から構成され、層と層の間はニューロン(ノード)同士が重みで結ばれています。
本章では、この基本的な構造をPythonのNumPyライブラリを使って実装する方法を学びます。
2. 順伝播と逆伝播の仕組み
- 順伝播(Forward Propagation): 入力データがニューラルネットワークを通過し、最終的な出力を得るまでの計算プロセスです。
- 逆伝播(Backpropagation): 出力と正解との誤差を計算し、その誤差を逆向きに伝播させて各層の重みを更新する仕組みです。
この2つの仕組みは、ニューラルネットワークの学習において最も重要な概念であり、本章では実装を通じてその動作原理を理解します。
3. ニューラルネットワークの高速化
実用的なニューラルネットワークを構築するには、計算の高速化が欠かせません。本章では、ビット精度とGPUを活用した高速化について学びます。
ビット精度とは
ビット精度とは、ニューラルネットワークの計算に使用する数値の精度のことです。一般的に、64ビット浮動小数点が使われますが、32ビット浮動小数点を使うことで、メモリ使用量を削減しつつも精度は落ちないことが知られています。
GPUによる並列処理
GPU(Graphics Processing Unit)は、もともと画像処理用に設計されたハードウェアですが、行列演算などの並列計算に非常に優れています。ニューラルネットワークの学習では大量の行列計算が必要となるため、CPUよりもGPUを使うことで数十倍から数百倍の高速化が期待できます。
押さえておきたい重要な単語
損失関数(Loss Function)
損失関数とは、ニューラルネットワークの予測値と正解値の差(誤差)を数値化する関数です。
この値が小さいほど、モデルの予測精度が高いことを意味します。代表的な損失関数には、平均二乗誤差(MSE)や交差エントロピー誤差などがあります。
勾配(Gradient)
勾配とは、損失関数の各パラメータに対する微分値のことです。
簡単に言えば、「パラメータをどちらの方向にどれだけ動かせば損失が減るか」を示す指標です。勾配を使ってパラメータを更新することで、モデルの性能を向上させます。