Sigmoid Function
The universality theorem
「普遍性定理」の記事において、任意の(1次元1値)関数 の近似関数をサンプリングデータの数分だけステップ関数を用意すれば作成することができるが、実行時(近似関数を求める時ではなく、使う時)の処理速度が問題になるため、この手法で作る近似関数は実用的ではないという話をしました。
そこで導入するのが以下の関数です。
まずは、この関数が、 を調整することで、どうして、任意の関数を表現できるかを、説明したいと思います。
シグモイド関数
をシグモイド関数と呼びます。 この関数は単調減少関数であり、 で、それぞれ
という値をとり、
すなわち で点対称なグラフとなります。
では、次に
の関数について調べてみます。
が正の実数のとき、 の極限において
にかわりはありませんが、点対称の中心となる点は 0から に移動します。 すなわち、 > の時、グラフ全体が と比較して全体的に左に移動するような形になります。 また が1以上ならば、傾きはよりきつくなり、1以下ならばゆるくなるという特徴があります。
このシグモイド関数を線形結合させることで、任意のステップ関数が作れることになります。
シグモイド関数の線形結合
いよいよシグモイド関数を使って、ステップ関数を作成してみましょう。
シグモイド関数を2つ線形結合させて以下のような関数をつくります。
さらに、 が次の条件を満たす場合を考えます。
この時、この関数は の間で の値を取るステップ関数(に近い関数)となります。
このことを感覚的に証明してみましょう。
とするとシグモイド関数の特徴および が十分に大きいことにより および は を境に急激に1から0にその値を変える関数なります。従って、 を十分に小さい正の数とすると、
これを表にすると以下のようになります。
0 | 0 | 0 | 0 | |||
0 | 0 |
よって
は でのみ の値をとるステップ関数であることがわかります。
ステップ関数さえ作ることができてしまえば、あとはそれを足し合わせることで任意の形の関数を作ることができることは、前回の記事で説明したとおりです。
すなわち
は、 を調整することで、任意の1変数1値関数(の近似関数)を作り出せるのです。
言うまでもなく、これは数学的に厳密な証明ではありません。前回も述べたように厳密な証明は
- ハーン・バナッハの定理(関数解析学)
- リースの表現定理(関数解析学)
- フーリエ解析(解析学)
を使うことになります。
前回の記事で の値を条件分岐で細かく分けることで得られるステップ関数を組み合わせて作る関数で近似関数を求める手法を紹介しましたが、シグモイド関数を線形結合させてつくる関数と何が違うのでしょうか。
それはシグモイド関数を線形結合させてつくる関数は「ステップ関数を組み合わせる形によっても近似関数を作れる」だけであって、必ずしもその形にしなければならないというわけではありません。
もし、与えられたサンプリングデータから、ステップ関数をつくりだして、それぞれのステップ関数をつくるための を求めるのであれば、シグモイド関数を線形結合させてつくる関数のメリットはあまり感じられません。
では、実際には、与えられた大量のサンプリングデータから、どのようにして、 を求めるのでしょうか?
それには勾配降下法という手法を用います。