【DeepLeaning】 ニューラルネットワークとパーセプトロン

Deep Learning とは何なのか・・・まったく知らない状態から挑戦してみたいと思います!

ニューラルネットワークとパーセプトロン

  • 単層と複層
    パーセプトロンは単純な2クラス分類問題を解決するために開発された単層のニューラルネットワークの一種であり、
    入力と出力がバイナリー(0か1)の値であるという制限があります。
    一方、ニューラルネットワークは、複数層のニューロンを持ち入力と出力が連続的な値である場合もあります。
  • 出力
    パーセプトロンでは入力に対して重み付けをしバイアスを加えた総和を取り、それを活性化関数に渡すことで出力を決定します。
    これに対し、ニューラルネットワークでは入力が複数の層を通過し中間層を介して最終的な出力を計算します。
    ニューラルネットワークでは各層の出力が次の層の入力として使用され重み付けされます。
    このような多層構造によって、非線形性を導入することができます。
  • 線形と非線形
    パーセプトロンは線形分離可能な問題を解決するために最適化されていますが、
    ニューラルネットワークは非線形な問題や複雑なパターン認識問題を解決するために最適化されています。

活性化関数


活性化関数は入力された値に対して出力を決定する非線形な関数です。

DeepLearninにおいて、活性化関数は以下の2つの点で重要です。

  1. 非線形性の導入
    活性化関数はニューロンの出力値を非線形に変換するために使用されます。
    もし活性化関数が線形であれば多層ニューラルネットワークでも単層パーセプトロンと同じような機能しか持たず、複雑な問題を解決することができません。
    しかし非線形な活性化関数を使うことでニューラルネットワークは複雑な問題に適応でき高い表現力を持つことができます。
  2. 勾配の伝播
    勾配の伝播とは、誤差を測定してその誤差を最小化するために各層の重みを微小な変化させて誤差を修正するプロセスです。
    具体的には、入力層から出力層までの各層でそれぞれの重みに関する誤差の勾配(傾き)を計算します。
    この勾配は誤差を最小化するための方向性を示しています。
    次に、この勾配を逆方向に(バックプロパゲーション)伝播させて各層の重みを微小な量だけ変化させ、誤差を修正するのです。
    このプロセスは、ニューラルネットワークの学習において非常に重要であり、誤差を最小限に抑えるために必要な重みの更新を行うことができます。
    勾配の伝播により各層の重みを最適化し、より高度なパターン認識や予測能力を持つモデルを作成することができます。

活性化関数は、ニューラルネットワークの表現力を高め、勾配の伝播を効率的に行うために必要な非常に重要な要素です。

なぜ活性化関数を使用しなければならないのか?

活性化関数は非線形性を導入するために必要です。

線形関数(例えば、単純な重み和)は、重みを変えてもその出力も線形に変化してしまうため、ニューラルネットワークの表現力が制限され
より複雑なパターンのモデリングを行うことができません。

一方、非線形活性化関数を使用することで、出力を入力の非線形関数として表現することができるとされています。

AIにものすごいことをやらせようとしたら「非線形」で出力しないとダメ。そのために活性化関数を使うわけです。