深層学習の基礎、ニューラルネットの仕組みと学習の仕組み。
ニューラルネットワークって、結局どういう仕組みなんだろ?
まずは基本単位のパーセプトロンから見ていきましょうか。 入力xに重みwをかけて足し合わせて、活性化関数を通す、という構造なのよ。
パーセプトロン: y = f(Σwᵢxᵢ + b)。 fはシグモイドやReLUなどの活性化関数。 線形変換+非線形変換の組み合わせ。
活性化関数って、なんのためにあるんですかぁ?
非線形性を入れるためだよ。 線形変換を何回重ねても結局は線形変換のままだから、非線形を挟むことで複雑な関数を表現できるの。
層を深くすると、何ができるようになるの?
複雑なパターンを階層的に学習できる。 これが深層学習(ディープラーニング)。 画像なら低層がエッジ、中層が形、高層が物体、というふうに階層的特徴を学ぶ。
学習方法が誤差逆伝播法(Back Propagation)。 出力から入力に向かって誤差を伝播させ、各層の重みを勾配降下法で更新する。
誤差を逆向きに伝えていく、ってことですかぁ?
数学的には『損失関数の各重みについての偏微分』を、{kw('連鎖律')}を使って出力側から入力側へ順に計算していく手順なの。 計算量を大幅に節約できるのが革新的だったのよ。
活性化関数って、いろんな種類があるよね。
代表的なのは シグモイド(0〜1)、tanh(-1〜1)、ReLU(max(0,x))、softmax(多クラス確率)。 現代の深層学習では ReLU が主流。
DS検定では『パーセプトロン構造』『誤差逆伝播の役割』『活性化関数の種類』が頻出。
1ニューロンの計算: 入力 x = (x₁, x₂, x₃) 重み w = (w₁, w₂, w₃) バイアス b z = w₁x₁ + w₂x₂ + w₃x₃ + b (線形変換) y = ReLU(z) = max(0, z) (非線形変換) 学習ステップ: 1. 順伝播: 入力 → 各層 → 出力 2. 損失計算: L = (出力 - 正解)²/2 など 3. 誤差逆伝播: 出力側から各層へ ∂L/∂w を計算 4. 重み更新: w_new = w_old - η · ∂L/∂w
確認クイズ
ニューラルネットワークで活性化関数が必要な理由として最も正しいのはどれか。
- 計算速度を上げるため
- 非線形性を導入し、複雑な関数を表現できるようにするため
- 重みの数を減らすため
- メモリ消費を減らすため
こたえを見る
正解: 2. 非線形性を導入し、複雑な関数を表現できるようにするため
非線形性を導入し、複雑な関数を表現できるようにするため。 線形変換だけ重ねても結局線形のままなので、活性化関数で非線形を挟むことで、複雑な関数(=複雑なパターン)を学習できるようになります。