読んでほしい人・このシリーズについて
深層学習 (ディープラーニング)の技術の発展で、AIブームが起きていたのが記憶に新しいですが、ソフトやモデルがたくさんあり簡単に使える一方、その中身について、ゼロから考えてみるという記事やサイトは少ないと思います。
(実際AIを作るときも、便利なライブラリがあり、難しいことも一行でできてしまったりします。)
「実務で使う分だけ」、「出力結果にしか興味がない」、「中身の知識は必要ない」、という場合は使い方だけわかればそれでいいと思いますが、私や一部の知識欲がある人は、その中身がわからないものを使っているとなんだかムズムズするものです。
そこで、この記事シリーズでは、ディープラーニングに入るまでの道筋をその根本的な設計思想からディープラーニングの肝であり、基礎の最小単位である全結合層について、ゼロから作って理解していこうと思います。
このシリーズを読んだらニューラルネットワークを知っている人から作れる人になる第一歩を踏み出せます。
できるだけかみ砕いて例を挙げながら、説明していくので、ちょこっと数学が好きな子供なら余裕で分かるくらいの難易度にたいと思っていますので、ついてきてください。

ニューラルネットワーク
はじめに、
「ニューラルネットワーク」は、人間の脳の神経細胞(ニューロン)の仕組みにヒントを得て作られた、非常に強力な数学的なモデルのことを言います。
「ニューラルネットワーク」と聞くと、何やら難解な数式や、TensorFlowやPyTorchといった専門的なライブラリを使いこなさなければならない、複雑な「ブラックボックス」を想像するかもしれません。
しかし、どれほど複雑に見えるAIも、分解してみれば基本的な部品(レイヤー,層)の組み合わせでできています。
この層が深いものをディープ(深い)ニューラルネットワークといい、GPTやGeminiなど皆さんがよく目にするようなAIと言われているものはこれに該当するものになります。
深くすることで、より複雑な問題を推論することができるようになりますが、これがなぜなのかについても今後の記事で触れていきたいと思います。
なぜ「ゼロから」実装するのか?
「車輪の再発明」は無駄だと言われますが、学習においては最強の近道です。
- デバッグ力がつく: エラーが出た時、数式レベルで原因が推測できる。
- 論文が読めるようになる: 数式とコードの対応関係が体感できる。
- 応用が利く: 最新のアーキテクチャも、基本のブロックの組み合わせだと気づける。
この記事シリーズで学ぶこと
このシリーズでは、以下のような構成で順に全結合層の中身を実装していこうと思います。
はじめは、ニューラルネットワークの原点である「パーセプトロン」という単純なモデルからスタートして、学習を行うバックプロパゲーション、簡単な問題をNNで解いてみるというところまでこのシリーズで紹介しようと思います。
- 第1章:パーセプトロン
- AIの最小単位とも言える「パーセプトロン」を学び、単純な論理回路(AND, OR)を実装します。そして、なぜそれだけでは不十分なのか(XOR問題の壁)を知ります。
- 第2章:壁を越える(多層パーセプトロン)
- パーセプトロンの限界を突破するため、「層を重ねる」こと、そして「活性化関数」という“非線形性”を導入し、ニューラルネットワークへと進化させます。
- 第3章:全結合層(Affineレイヤー)の実装
- ニューラルネットワークの中核部品である「全結合層」の正体が、実は高校数学で習う「行列の積(アフィン変換)」であることを学び、順伝播(入力から出力を計算する処理)をコードに起こします。
- 第4章:学習の仕組み(バックプロパゲーション)
- AIが「賢くなる」とはどういうことか? 答えの「誤差」をどのように入力側の「重み」にフィードバックするのか、学習の核心である「誤差逆伝播法(バックプロパゲーション)」を実装します。
次回:パーセプトロン
次回は、手始めに、全結合層がどんなふうに構成されているか、その最小単位について考えてみます。
全結合層では、”全”、”結合”という様に、何かしらを全部結合しているもののことです。
この何かしらの原点となるのが、ノードやパーセプトロンと呼ばれるものになります。
【仕組み解説】全結合層をゼロから実装しよう:パーセプトロンとは?(NN #2)
NNの最小単位「パーセプトロン」をゼロから実装。ニューロンの仕組みや活性化前の出力を解説し、多層化の必要性を理解します。
記事一覧 -アーカイブ用-
このシリーズの記事一覧です。適宜使ってください。
(投稿予定の記事は投稿される日時が表記されます。投稿までお待ちください)
【仕組み解説】全結合層をゼロから実装しよう: シリーズの全体像とロードマップ【ニューラルネットワーク入門 】(NN #1)
全結合層の実装まで、NNの基礎をゼロから学ぶための学習ロードマップを解説。シリーズ全体の道筋を明確にします。
【仕組み解説】全結合層をゼロから実装しよう:パーセプトロンとは?(NN #2)
NNの最小単位「パーセプトロン」をゼロから実装。ニューロンの仕組みや活性化前の出力を解説し、多層化の必要性を理解します。
【仕組み解説】全結合層をゼロから実装しよう:パーセプトロンで解けない-XOR問題-(NN #3)
XOR問題はなぜパーセプトロンで解けないのか?その限界に挑み、線形分離不可能な問題から非線形の必要性を理解します。
【仕組み解説】全結合層をゼロから実装しよう:多層化でXOR問題を解決する-多層パーセプトロン-(NN #4)
XOR問題の解決策である多層パーセプトロン(MLP)を導入。多層化の設計思想と、ニューラルネットワークの基礎となる構造を学びま
【仕組み解説】全結合層をゼロから実装しよう:活性化関数の導入(NN #5)
なぜ活性化関数が必要なのか?非線形性を導入し、全結合層の機能を最大限に引き出すための重要な役割と効果を解説します。
【仕組み解説】全結合層をゼロから実装しよう:全結合層とは?-アフィンレイヤー-(NN #6)
全結合層を数学的に扱うための概念、アフィンレイヤーを解説。NNの「層」の順伝播処理をゼロから理解します。
【仕組み解説】全結合層をゼロから実装しよう:活性化関数-Reluとシグモイド関数-(NN #7)
頻繁に利用されるReLUとシグモイド関数の具体的な数式と役割を比較解説。逆伝播に向けた実装準備を行います。
【仕組み解説】全結合層をゼロから実装しよう:全結合層の順方向だけ実装してみる。(NN #8)
これまでの理論に基づき、順伝播(Forward)をゼロから実装します。入力から予測値を導くNNの骨格を作り上げます。
【仕組み解説】全結合層をゼロから実装しよう:NNの学習の仕組み-誤差と損失、逆伝播-(NN #9)
NNが賢くなる仕組みを解説。損失関数、誤差の計算、そして学習の核となる逆伝播(Backward)の理論を理解します。
【仕組み解説】逆伝播と更新のサイクルを実装:「心臓部」の動きを理解(NN #10)
逆伝播とパラメータ更新のサイクルをゼロから実装。NNの「心臓部」を動かし、学習の仕組みを完成させます。
【仕組み解説】-完結- XOR問題をNNで解く:学習ループと推論の実装(NN #11)
XOR問題を実際にNNで学習させ、解けることを確認してシリーズ完結。エポックやローカルミニマムといった概念も解説します。
おわりに
今回のシリーズでは、最後の方でpythonを使って、サンプルを作っていこうと思っているので、ちょこっとだけでもプログラミングの知識、実行できる環境があるといいと思います。
ゼロから作る全結合層
ゼロから作る全結合層シリーズでは、初心者でも理解しやすいように、 「パーセプトロンの仕組み」から「全結合層の実装」までを...
ここまで読んでいただきありがとうございます。
では、次の記事で。 lumenHero