生成AI資格対策(生成AIパスポート+G検定)
ニューラルネットとDL
学習とは、数値を合わせにいく作業のこと
ニューラルネットワークは、脳の神経細胞のふるまいをごく単純化した計算の仕組みです。もっとも単純な形が単純パーセプトロンで、1957年にフランク・ローゼンブラットが考案しました。
動きは3段階です。まず複数の入力それぞれに重みという数値を掛けて足し合わせます。次にバイアスという調整用の数値を加えます。最後に活性化関数を通して出力を決めます。重みはその入力をどれくらい重視するかを表し、バイアスはどれくらい発火しやすいかを全体にずらす役割を持ちます。
学習とは、この重みとバイアスの値を、答えが合うように調整していく作業そのものです。人間がプログラムとして判断基準を書くのではなく、無数の数値が正しい値に落ち着くことで判断が生まれる、というのがニューラルネットワークの本質です。
直線1本では XOR が分けられない
単純パーセプトロンは、入力を平面上の点として見たとき、1本の直線で仕切れる問題しか解けません。この性質を線形分離可能といいます。
論理演算で確かめられます。AND も OR も真と偽を直線1本で分けられるので表せますが、排他的論理和 (XOR) は真になる点と偽になる点が斜めに向かい合うため、どう線を引いても分けられません。1969年にマービン・ミンスキーとシーモア・パパートがこの限界を指摘し、ニューラルネットワーク研究は一度停滞しました。
解決策は層を増やすことでした。入力層と出力層の間に隠れ層を挟んだ構造を多層パーセプトロンと呼びます。隠れ層が入力を一度別の見方に変換するため、最終的に引ける境界が直線でなくなり、XOR も表現できるようになります。
非線形を挟まないと、層を重ねる意味が消える
活性化関数は、重み付き和に非線形性を持ち込む部品です。もしこれが無ければ、層をいくら重ねても全体は結局1つの線形変換にまとまってしまい、深くする意味がなくなります。非線形の関数を挟むから、層を重ねた効果が出るという理解が要点です。
代表的なものにシグモイド関数と ReLU があります。シグモイド関数は出力を0から1の範囲に滑らかに押し込む関数で、初期に広く使われました。ただし入力が大きくても小さくても傾きがほぼ0に近づくため、層を深くすると誤差が奥まで伝わらなくなる勾配消失問題を招きます。ReLU は入力が0以下なら0、0より大きければそのまま出す関数で、正の側の傾きが一定なので勾配が消えにくく、深いネットワークの学習を実用的にしました。出力層では用途に応じて使い分け、多クラス分類ではソフトマックス関数で合計が1になる確率の形に整えます。
誤差は出力側から戻ってくる
学習は2つの流れの繰り返しで進みます。順伝播は、入力を入力層から出力層へ向かって計算していき、予測を出す流れです。その予測と正解のずれを損失関数で数値化します。
誤差逆伝播 (バックプロパゲーション) は、その損失を出力層から入力層へ逆向きにたどり、各重みが損失にどれだけ寄与したかを求める手続きです。求めた寄与に応じて重みを少しずつ動かします。この動かし方が勾配降下法で、損失が小さくなる方向へ坂を下るように更新を繰り返します。1回でどれだけ動かすかを決める値が学習率で、大きすぎると行き過ぎ、小さすぎると学習が進みません。
ディープラーニングの「深い」とは、単純に隠れ層が多いことを指します。深くする利点は、層が進むにつれてより抽象的な特徴が自動的に取り出される点にあります。画像なら浅い層で線や角、中間で目や耳のような部品、深い層で顔全体、という具合です。従来は人間が設計していた特徴量の抽出を機械が担うようになったことを、特徴表現学習と呼びます。
試験ではこう出る
- 「単純パーセプトロンで表現できない論理演算はどれか」という形で XOR が問われます
- 勾配消失問題の説明と、その対策として ReLU を選ばせる問題が定番です
- 順伝播と誤差逆伝播の向きを入れ替えた選択肢が用意されます。誤差は出力側から入力側へ戻ります
- 「活性化関数が無いと何が起きるか」では、層を重ねても線形変換1つ分にしかならないという記述が正解です
- 学習で調整されるのは重みとバイアスであり、層の数や学習率は人が決めるハイパーパラメータだという区別も問われます
復習ミニクイズ
単純パーセプトロンでは表現できないが、隠れ層を持つ多層パーセプトロンなら表現できる代表例として、正しいものはどれですか。