はじめに
久しぶりにテキスト読みながら真面目に資格勉強してますが、
わからんことが多い。
知らない単語が怒涛に出てきて、理解するのが追いついていないです。
なんとなーく分かった気になってますが、理解はしていない。
前提知識として頭の中には入れておくにはいいなと思いますが、
業務の提案するところまではなかなかハードル高そうだな・・・、頑張りますが。
勉強している中でテキスト読んでいると活性化関数なるものが出てきたのですが、
いまいち何をやっているのかわからなかったのでちょっと調べてみました。
その前に
活性化関数について書く前に活性化関数が使われているニューラルネットワークについて
簡単に書いておきます。
ニューラルネットワークとは、人間の脳の中の構造を模したアルゴリズムです。
ニューラルネットワークは「入力層」、「隠れ層」、「出力層」という層に分かれていて、
そのような層に分かれているニューラルネットワークが多層パーセプトロンと言います。
ちなみに隠れ層がないものを単純パーセプトロンと言います。
ディープラーニングでは、ニューラルネットワークが使われていますが、
ここで使われているのは隠れ層を増やしたニューラルネットーワークと言えます。
上の画像は間に隠れ層があるので、多層パーセプトロンですね。
入力層から隠れ層、隠れ層から出力層の繋がりは重みで表され、
重みによってどれだけの値を次の層へ伝えるかを調整しているようです。
その後それぞれの入力層の値を足し合わせて活性化関数を経由することで、
出力値を決定しています。
活性化関数とは
活性化関数にはいろいろあるようですが、よく見かけるものとしてはシグモイド関数があります。
他にもソフトマックス関数、ReLu、恒等関数などがあるようです。
他はまだよく分かっていないのでとりあえずシグモイド関数だけ。
シグモイド関数は0または1を求める関数となります。
例えばあるINPUTがあり、それが○か×かを表現したい時に
活性化関数を通すことで○の確率が高いかどうかを表すことが出来ます。
シグモイド関数の場合だと関数を通して出力された結果が1に近づけば近いほど
○である確率が高いことを表して、
0に近づけば近いほど×に近いということが表現できます。
この処理を層ごとに施して何回も重ねることでより正しい値に近づけることができるようになります。
最後に
とりあえず自分が調べたことをアウトプットしようと思って書きましたが、
ちょっとわかりにくくなってしまった。
重みと活性化関数は同じものだと思っていたのでそこの違いが整理されたことは
自分の中ではよかったですが、表現しきれていないとは思います。
やっぱり実際に文章に起こしたりしようとすると頭の中も一緒に整理できて良い。
あまりわかりやすく表現はできないとは思うけどしばらくはこんな感じで記事書いていきたい、自分のために。
それでは今日はこの辺で。
それではー
コメント