この記事は京都大学人工知能研究会 KaiRA Advent Calendar 2023 13日目の記事になります。
なぜこの記事を書いたのか
ニューラルネットワークを学ぶにあたり、当然ながら書籍やネット記事で ニューラルネットワークとは というテーマについて調べます。
すると多くの資料で以下のように説明されています。
- ニューラルネットワークは数理モデルを用いて人間の神経回路を模したもの
- ニューラルネットワークの構造は...
- 重みづけは...
すでにニューラルネットワークの存在意義を十分に理解している方なら、このような説明でよいかもしれません。
しかし私のような初心者だと、 結局なんのためにニューラルネットワークがあるのか というところがどうも腑に落ちないわけです。
そこで今回は、私自身がニューラルネットワークのイメージをつかむために「こんな記事あったらいいな」と思う内容を書き起こしてみました。
記事のテーマと対象読者
テーマは 数式を使わずニューラルネットワークのイメージを掴む に設定します。
対象読者は、ニューラルネットワークについてちょっと調べたけどイメージがつかない方。
具体的には下記のような疑問がモヤモヤしている方を想定しています。
- 人間の神経回路を再現してどんなメリットがあるの?
- 人間の脳が行なっている複雑な処理ってどういうこと?
- 重みづけってどういうこと?何のためにするの?
こういった疑問に答える形で書いていこうと思います。
実は人間の脳ってスゴイ
ニューラルネットワークが有用である点について、自分のような初学者でもなんとか腑に落ちる表現はないものかと悩みました。
そこで、AWSによるニューラルネットワークの解説記事 にて興味深い例が紹介されているのを見つけたので説明の題材にしたいと思います。
下記の2文を見てください。
- 支払い方法を教えてもらえませんか?
- 送金するにはどうすればよいですか?
これらが同様の意味で用いられることは人間にとって当然かもしれませんが、どうやらニューラルネットワークを用いていない(普通の)コンピュータにとっては一筋縄ではなかなかの難問みたいです。
コンピュータはものすごく頭がよいのに、どうしてこのようなことが起こるのでしょうか。
謎を解く鍵は、コンピュータにはないスゴイ能力を人間は当たり前に使いこなしていることにあります。
人間にできてコンピュータにはできなかったこと。
それは文脈を考慮して、「100%確かではないけどたぶんこうだろう」 という予測を立てることです。
(私はそう解釈しています)
答えを求めるためのシンプルな道順が用意されておらず、かつ答えが一意に定まらない問題を解く。
これが人間の神経回路に与えられた能力であり、その思考回路を数理モデルによりコンピュータ上で再現したものがニューラルネットワークです。
ここで 文脈 とは語学で用いられる一般的な "文のつながり"よりも広い意味で、 予測対象に影響を与えるものすべて というニュアンスで用いています。
たとえば写真に何が写っているかを解析するとき周囲に写っているものも 文脈 です。
重みづけ~どんな選択肢がどれくらいの確率で起こりうるのか~
私たちが日常生活で予測を行うとき、どの選択肢がどれくらいの確率でありうるかを常に考えているはずです。
種々の判断材料のうち、「よく起こること」や「あまり起こらないこと」のような頻度の差が存在します。
もう少し簡単に言うと、「こういう場合、Aがよく起こるけど逆にBは考えにくいよな」といった 直感力 のようなものと考えてください。
コンピュータは人間と違い、最初から優れた直感力を持ち合わせていません。
そのため人間が
- 「こういう条件の場合、Aが起こりやすいよ」
- 「Bはあまり起こらないよ」
- 「Cが起こるケースはほぼ0だよ」
などと教えてあげる必要があります。
コンピュータが予測を行うために必要な「選択肢ごとの起こりやすさ」を教え込むこの作業を 重みづけ と理解すればよいと思います。
まとめ
今回は数式を使わずにニューラルネットワークのイメージをつかむというテーマで執筆させて頂きました。
ポイントをおさらいしておきます。
- 人間の脳は "文脈" を考慮して100%確かだと言い切れない答えも予測して組み立てている
- 数理モデルで人間の神経回路を再現したものがニューラルネットワークである
- 複雑に絡み合う条件から答えを予測できるように、選択肢ごとの起こりやすさを教え込む作業が重みづけ
厳密な定義に照らし合わせればいい加減な解釈だと言われるかもしれませんが、ニューラルネットワークの初歩の初歩でハードルを感じてしまっている方にとって学習の一助となれば幸いです。