第3部 AIを支える技術の基礎
第9章ニューラルネットワークとディープラーニング
ディープラーニングやLLMの中心にあるのが、ニューラルネットワークというしくみです。この章では、 その基本的な考え方を、細かな数式には立ち入らずに整理します。なぜ層を深く重ねると賢くなるのか、 そのイメージをつかむことを目指します。ここが分かると、第4部で扱うLLMの内部の話が、ぐっと身近に なります。
9.1ニューロンを模した計算のしくみ
ニューラルネットワークは、脳の神経細胞のつながりをおおまかにまねた計算のしくみで、多数の小さな計算単位が信号を伝え合います。一つ一つは単純ですが、集まることで複雑なパターンを表せます。
ニューラルネットワークは、人間の脳にある神経細胞(ニューロン)のつながりから発想を得た計算のしくみです。 たくさんの小さな計算単位が層をなして並び、前の層から受け取った数値をもとに計算し、その結果を次の層へ 渡していきます。入力の側から出力の側へと、信号がバケツリレーのように伝わっていく、と考えると分かりやすい でしょう。
一つ一つの計算単位がしていることは、とても単純です。前の層から来た複数の数値を、それぞれの重要度に応じて 足し合わせ、その結果を次へ渡すだけです。ところが、この単純な計算単位が何百、何千と集まり、層をなして つながると、全体としては非常に複雑なパターンを表せるようになります。脳を正確に再現しているわけではなく、 あくまで発想の出発点としてまねたものだ、という点は押さえておいてください。
9.2重みとバイアス
計算単位どうしのつながりには「重み」という強さがあり、この値を調整することがニューラルネットワークの学習です。学んだ内容は、この重みの数値として蓄えられます。
計算単位どうしのつながりには、それぞれ「重み」と呼ばれる数値がついています。重みは、前の単位からの 信号をどれだけ重視するかを表します。重みが大きいつながりからの信号は強く効き、小さいつながりからの 信号はあまり効きません。あわせて、各単位には「バイアス」という調整用の値もあります。入力に重みを 掛けて足し合わせ、バイアスを加えた結果が、その単位の出力のもとになります。
学習とは、この重みとバイアスの値を、望ましい出力が得られるように少しずつ調整していく作業にほかなりません。 最初はでたらめな値から始め、たくさんの例を見ながら、少しずつ「ちょうどよい」値へと近づけていきます。 つまり、モデルが「学んだ」内容は、無数の重みとバイアスの数値として蓄えられています。後の章で出てくる 「パラメータ」とは、まさにこの重みやバイアスのことを指します。LLMが持つパラメータが膨大だというのは、 この調整可能な数値が非常に多いという意味です。
9.3層を重ねる意味
層を深く重ねると、単純な特徴から複雑な特徴へと段階的に捉えられるようになり、複雑なパターンを表せるようになります。これがディープラーニングの「ディープ(深い)」の意味です。
ニューラルネットワークの層を深く重ねたものが、ディープラーニングです。層が深いと、なぜ賢くなるのには、 理由があります。おおまかにいえば、浅い層では単純な特徴を捉え、深い層に進むほど、それらを組み合わせた 複雑な特徴を捉えられるようになるからです。単純な部品を組み合わせて、だんだん複雑なものを作り上げていく、 という段階的な処理が、層を重ねることで実現されます。
具体例:層が進むごとに捉えるもの(画像の場合)
顔が写った写真を扱う場合、層が進むにつれて、捉える特徴が次のように変わっていくイメージです。
浅い層 線や角、明るさの変化といった、単純な形
中ほどの層 目や鼻のような、部品のまとまり
深い層 顔全体という、大きなまとまり
単純な形から始めて、部品、そして全体へ。段階的に組み上げていくからこそ、複雑な対象を扱えるのです。
身近なたとえ
文章を理解するときも、まず文字を認識し、次に単語を、その次に文の意味を、最後に全体の主張を捉えます。 段階を追って、単純なものから複雑なものへと理解を積み上げていく。層を重ねるとは、これに近いことを 計算の中で行うイメージです。
9.4ディープラーニングと従来手法の違い
従来は人が特徴を指定していましたが、ディープラーニングは、注目すべき特徴そのものをデータから自動的に学び取ります。この違いが、複雑な対象を扱えるようにした鍵です。
ディープラーニング以前の機械学習では、「何に注目して判断するか」という特徴を、人があらかじめ設計して 与えるのが一般的でした。第6章で見たとおり、これには専門知識と手間が必要で、対象が複雑になるほど 難しくなります。ディープラーニングの大きな特徴は、この注目すべき特徴そのものを、大量のデータから モデル自身が学び取る点にあります。人が特徴を細かく指定しなくてよくなったことで、画像や言葉のような 複雑な対象を、うまく扱えるようになりました。
この「特徴を自分で見つける」力こそが、ディープラーニングが幅広い分野で成果を上げた理由であり、 LLMが言葉を巧みに扱える背景でもあります。第12章で見る、言葉を意味のあるベクトルに変換する埋め込みも、 この特徴を学び取るしくみの一例です。
深掘り:ただ層を重ねるだけでは足りない(読み飛ばし可)
実は、計算単位の「足し合わせ」だけをそのまま何層も重ねても、期待するほど表現力は上がりません。 単純な足し合わせを重ねても、全体としては結局ひとつの単純な計算にまとめられてしまうからです。そこで、 各層の出力に「ひとひねり」を加える処理をはさみます。この処理があることで、層を重ねるほど複雑な パターンを表せるようになります。専門的には活性化関数と呼ばれますが、ここでは「層と層の間に、単純な 計算に戻らないための工夫が入っている」と捉えておけば十分です。この工夫があるからこそ、深く重ねる ことに意味が生まれます。
ここまでで、ニューラルネットワークの骨格が見えてきました。次の章では、こうしたネットワークが実際に どのように学習し、どのように使われるのかを、学習と推論という二つの場面に分けて見ていきます。
この章の要点
- ニューラルネットワークは、脳のニューロンをまねた多数の計算単位が信号を伝え合うしくみです。
- つながりの強さを表す重みとバイアスを調整することが、学習の実体です。これがパラメータにあたります。
- 層を深く重ねると、単純な特徴から複雑な特徴へと段階的に捉えられるようになります。
- 各層の間には、単純な計算に戻らないための工夫(活性化関数)が入っており、深さに意味を与えます。
- ディープラーニングは、注目すべき特徴自体をデータから自動的に学び取る点が従来手法と異なります。