私は研究者ではないので機械学習を学術的に述べることは出来ませんので、「こういう事なんだな~」と思ったことを少し。全てを網羅することは出来ませんが、理解を深めるベースになるかも。
産業界では主に画像認識や分類に使われることが多いと思います。私自身の感想を言うと、開発しても手間や費用を考えると、自社に合ったノウハウを貯めるのが目的で無い限りハード買ったほうが安いしな~というのが正直なところです、現時点では。
ニューロン
神経組織ですね。核(Nucleus)が有り電気信号が樹状突起(Dendrite)から軸索末端(Effector nerve endings)に伝達されます。これがシナプスによって人の場合は1000億個程度結合されているそうです。その役割は情報処理と情報伝達です。
基本的な機能として、樹状突起から入力刺激を受け取り活動電位を発生させて他の細胞に情報を伝達します。神経細胞には刺激などの感覚や、動作などの運動に関わるものもあります。
これをコンピュータで処理出来るようにモデル化したものが人口ニューロンです。
人口ニューロン
神経細胞をコンピュータ上に構築するためには、そのままでは無理なので数学的な解釈によってモデル化する必要が有ります。神経細胞を意識されるような図ですが、これは考え方を模しているだけに過ぎません。
X1~Xnは入力で樹状突起に相当し、∑はニューロンが発火するためのロジックです。bは?bはバイアスで、ニューロンの発火度合いを調整する値で、実際の神経細胞には有りません。これは学習で大きな意味を持ちます。
φは活性化関数と呼ばれ、出力Yを発火させるかどうかを一般的にはしきい値をもって計算する部分です。また、wはそれぞれの入力に対する重みです。
基本的な発火の仕組みは、「X1~XnそれぞれにW1~Wnの重みをかけた数値を合計し、それにbバイアスを足した後、活性化関数を通して得られた結果をY出力する」という事です。
ニューラルネットワーク
ちょっとずつ話が進みます。
人工ニューロン1個では何も出来ないので、これを複数組み合わせてネットワークを構成します。
「入力」は、例えば写真や手書き文字など、「出力」は例えば文字の分類の場合は「a」かな~、「b」かな~、などの分類ごとの値ですね。
「入力層」はデータを受け取ります。画像はデジタルなので例えば16✕16ドットの画像だったら入力層にはピクセルの数=256個の人工ニューロンが有ります。そして入力層では何もせずに中間層にデータを渡すだけです。GPTなどのLLMの場合は、入力時に文章を単語などに分割し、位置エンコーディングされて順番や文脈が保持されたまま入力データとして渡されます。
「中間層」で学習を行います。学習とは、結果が適切になるような重み(W1~Wn)を調整する、という事です。先の話ですが。
「出力層」は回帰問題(ある数値を予測)なのか分類問題(どれなのかを予測)なのかによって出力を変える部分です。出力層のニューロンの数は取りうる答えの数になります。
1つのニューロンの出力は、その後の層にある全てのニューロンに伝えられます。
次はディープニューラルネットワークですね。そのうちに。
コンピュータ上のネットワークでは終点が決まっていて必ず何らかの出力が得られます。GPTが嘘を吐くことも有る、というのもそのためでしょう。「分からない」という時も有りますが、それは単にパラメータとしての要件を満たしていないか、結果が0だったとか、エラーが起きたとか、そういった場合じゃないのかな。
人だったら、何かを見て「これは何?」と聞かれたら、「う~ん分からない」という答えが返るかも知れません。人の神経細胞は縦横無尽に繋がっているので、何を持ってその答えが出たのかが分からないです。人の意識ってそう言った神経細胞全体の活動の結果なんだろうか、って思ってみたりもします。物にぶつかった時に物理的に「痛い」と思いつつ「いやだな~」とか「気をつけなきゃ」て思うとか、複数の側面で捉えますよね。
2024年11月04日 手塚幹人
コメント