今回は黎明期の複素ニューラルネットワーク、特に MLP などに適用される活性化関数が中心です。実は私の研究分野は連想記憶に偏っているため、複素ニューラルネットワーク全般の歴史は詳しくありません。複素ニューラルネットワーク[第2版](廣瀬明 著,サイエンス社) の方が詳しいでしょう。連想記憶については別に記事を書きます。歴史については知らなくても、現在主流となっているモデルを知っていれば研究には差し支えありません。
複素数値化の試み
実数で構成されていたニューラルネットワークを複素数で構成しようとした動機は分かりません。当時の研究者それぞれに考えがあったのでしょう。位相情報をニュールラネットワークで表現したいという応用上の理由は1つの目的だったようですが、単に理論を拡張してみたという研究者もいたでしょう。何を複素数値化すれば良いかというと、結合荷重と活性化関数です。ニューラルネットワークは多数のニューロンが結合したもので、各ニューロンが他ニューロンからの情報を入力和として受け取って、活性化関数で変換して出力します。結合荷重は単純に複素数にするだけですが、活性化関数の複素数値化はかなり難航しました。実数の場合は
を連続関数で近似しています。さて、これをどのように複素数値化したらよいでしょうか。有界性、正則性(微分可能性)、位相情報の保存などが求められるでしょう。しかし、有界かつ正則な関数は定数に限るというリューヴィルの定理により、有界性と正則性の共存は早々に断念せざるを得ませんでした。何人かの研究者により幾つもの活性化関数が提案されました。正則な活性化関数を提案した研究者もいたようですが、最終的には正則性を捨てた活性化関数が生き残りました。大きく分けて2種類の活性化関数が使われています。複素ニューラルネットワーク[第2版](廣瀬明 著,サイエンス社) では、実部-虚部型 と 振幅-位相型 と呼んでいます。研究者によって呼び方は様々です。私は実部-虚部型をスプリット型と呼んでいますので、以下スプリット型と呼びましょう。また、振幅-位相型は簡単に位相型と呼びましょう。
スプリット型
スプリット型は同時期に複数の研究者が独立に提案したようです。1つの論文の中では1つの活性化関数だけが定義されて、位相型と区別する必要がなく、単に複素活性化関数(complex-valued activation function)などと呼ばれているかもしれません。
スプリット型は2つのニューロンの組み合わせと見ることもできます。実ニューロンから複素ニューロンに変更することは、ニューロン数を倍にして制限すれば実現出来ます。結合荷重を
位相型
複素数を