ニューラルネットワークとは何か
AIは、一度に答えを出すのではなく、小さな判断を積み重ねながら、少しずつ正解に近づいていきます。
ニューラルネットワークは、人間の脳の神経細胞(ニューロン)のつながり方をヒントにして作られました。
でも大事なのは、「脳っぽい形をしている」ことではありません。
大事なのは、たくさんの小さな判断を、つなげていける構造になっていることです。
たとえば、私たちが犬を覚えるとき。
最初から「犬とはこういうものだ」と分かるわけではありません。
・なんとなく四本足
・なんとなく毛がある
・よく吠える
・しっぽがある
こうした小さな特徴を何度も見て、少しずつ「犬らしさ」を学んでいきます。
脳の中では、たくさんの神経細胞がつながり、「この特徴は大事そう」「これはあまり関係ないかも」と、つながりの強さを少しずつ変えていきます。
この「つながりの強さが変わること」こそが、学習です。
ニューラルネットワークも同じ仕組みを使います。
・入力を受け取る
・小さな計算をする
・結果を次の層へ渡す
・間違えたときには、「このつながりは強すぎたかも」「ここはもう少し強めたほうがいいかも」と、つながり(重み)を少しずつ調整していく
これを何度も繰り返すことで、だんだん正解に近づいていきます。
だから、脳をまねすると学習が進むのではなく、「つながりの強さを変えられる構造」だから学習できるのです。
入力層・隠れ層・出力層
ニューラルネットワークは、いきなり答えを出すわけではありません。
情報は、いくつかの「層」を通りながら、少しずつ姿を変えていきます。
その基本構造が、
・入力層
・隠れ層
・出力層
の三つです。
◆入力層
入力層は、データを受け取る入り口です。
たとえば画像認識なら、画像は「たくさんの数字の集まり(画素の値)」として入力されます。
私たちで言えば、目や耳のようなものです。
まだここには「意味」はありません。あるのは、ただの情報です。
◆隠れ層(中間層)
隠れ層は、入力された情報を加工する場所です。
ここで、数字のかたまりは少しずつ変換され、
・線っぽい
・丸っぽい
・模様っぽい
といった「特徴」に分解されていきます。
「隠れ」と呼ばれるのは、この過程が外からは見えないからです。
私たちが何かを理解するときも、頭の中ではたくさんの思考が走っています。でも、その途中経過は見えませんよね。
隠れ層は、その「思考の途中段階」にあたります。
学習によって変わるのが、この隠れ層を通るときの「つながりの強さ」であるということが、ポイントです。
間違えたら、少し修正する。それを何度も繰り返す……。
だから、だんだん精度が上がっていきます。
◆出力層
最後にたどり着くのが出力層です。
ここで、
・「これは猫の可能性が80%」
・「これは犬の可能性が20%」
のように、最終的な判断が出ます。
私たちが「たぶん犬だ」と言う瞬間に近い部分です。
では、なぜ、わざわざ層を分けるのでしょうか。
それは、複雑な問題を、小さな段階に分けるためです。
いきなり「これは猫か?」と考えるのは難しいです。
でも、
・まず形を見る
・次に模様を見る
・最後に全体像を判断する
と段階を踏めば、少しわかりやすくなります。
ニューラルネットワークは、この「段階的な理解」を仕組みにしたものです。
単純パーセプトロン
単純パーセプトロンは、ニューラルネットワークのいちばん基本的な形です。
いわば、「最小単位の判断装置」です。
やっていることは、とてもシンプルです。
・いくつかの数字を受け取る
・それぞれに「重み(重要度)」をかける
・合計して、ある基準を超えたら「1」、超えなければ「0」と判断する
これだけです。
たとえば、
・テストの点数が高い
・出席率が高い
この二つの条件を見て、「合格」か「不合格」かを決めるような場面を考えてみましょう。
それぞれに重み(どれくらい重要か!)をつけて合計し、一定の基準を超えたら「合格」と判断する……。
単純パーセプトロンは、そんな二択の判断をする装置です。
では、どうやって賢くなるのでしょうか。
もし間違えたら、
・「この条件を重く見すぎたかも」
・「こっちをもう少し重要視しよう」
と、重みを少しだけ調整します。
その修正を何度も繰り返すことで、だんだん正しく判断できるようになるのです。
ここに、学習の原型があります。
でも、単純パーセプトロンには限界があります。
それは、「まっすぐな線で分けられるもの」しか扱えないこと。
つまり、きれいに一本の線を引いて分けられる問題しか解けないのです。
世の中には、単純に線で分けられない問題、いくつもの条件が絡み合う問題がたくさんあります。
単純パーセプトロンは、世界をシンプルに切り分けることはできます。
でも、複雑な世界をそのまま扱うには、少し力不足でした。
では、どうすればいいのでしょう。
答えは、層を重ねることでした。
単純な判断をいくつも重ねることで、より複雑な世界を表現できるようになる……。
それが、次に登場する多層パーセプトロンです。
多層パーセプトロン
単純パーセプトロンは、まっすぐな一本の線で世界を分ける装置でした。
でも、世界はそんなに単純ではありません。
丸いもの、曲がったもの、入り組んだ条件……現実は、線一本では割り切れません。
そこで生まれたのが、多層パーセプトロンです。
単純パーセプトロンは、入力からすぐに出力へつながっていました。
多層パーセプトロンは、その間に、隠れ層(中間層)を挟みます。
入力
↓
隠れ層
↓
出力
という構造になります。
つまり、判断を一回で終わらせず、段階を踏むようになったのです。
層が増えることで、何が変わるのでしょうか。
答えは、まっすぐな線では分けられない問題を扱えるようになった、ということです。
単純な判断をいくつも組み合わせることで、曲線のような、複雑な境界も表現できるようになります。
これは試験でもとても重要なポイント。
単純パーセプトロン → 線形分離のみ可能
多層パーセプトロン → 非線形問題も扱える
ここは押さえておきたいところです。
イメージしてみてください。一人の判断者よりも、何人もの判断者が順番に考えたほうが、複雑な結論にたどり着けそうですよね。
多層パーセプトロンは、最初の層で「ざっくり特徴」を見つけ、次の層でそれを組み合わせ、最後に結論を出すという、段階的な理解を実現します。
世界をいきなり理解するのではなく、分解して、組み立て直す。その積み重ねが、より複雑な認識を可能にします。
多層パーセプトロンは、隠れ層を持つニューラルネットワークです。
そして、隠れ層をさらに増やしていったものが、ディープラーニングです。
「ディープ(深い)」とは、層が深くなることです。
つまり、判断の段階が増えることであり、理解がより多層的になることです。