AIを理解するには実際に作ってみること

AIをいろいろ調べていても、いまいちピンとこない。

それはAIの周りから見ているだけで、中が見えていないからだ。
というわけで、例によって実際に作りながら理解することにした。
作るといっても、実はニューラルネットワークはパッケージになっている。つまりブラックボックスになっているのでこれを使う。
pythonとか言語も選ばなければいけないけど、
昨年から始めたRでもパッケージがあると知った。

昨日は放送大学でもやっていたので、それを見て、大体の流れをつかみ、後は実際に動かしてみた。
大体の流れと使い方はわかってきたけど、このパッケージ自体がわからない。そこは理論となる。今まで統計の処理をRでやってきたけど、それが役に立っている。ほとんどが行列の計算。

ニューラルネットワークは脳細胞の数学的なモデル化。
細胞の数とさらにそれが層になっている。
それは多元一次方程式で表されるから行列で処理される。
その時に、それぞれの係数(=重み)を決めるために、バックプロパゲーションという手法を用いる。
これは微分を用いる。昔、最小値を求める時に微分して0になる所というのをやったけど、それに似ている。
そうやって何回も逆にたどると、係数(=重み)がある値になる。
今度は、その重みを使って予測をする。

たったこれだけのことだけど、線形代数や解析が随所に使われている。
いろいろなアイディアの集合なのだ。

 ニューラルネットワークで0か1の値ではなく、中間の値を決めるために使われる関数。aを動かすと・・・こうやって次のニューロンに値を受け渡す。

 

最急降下法
 最小値を求めるには、微分した値が0になれば良い。でもそれは3か所ある。どうしたら最小値にたどり着けるか? AやBをいろいろな位置に動かしてみよう。