Select Language

AI Technology Community

MaxOut関数

maxout活性化関数の場合、その隠れ層ノードの出力式は次の通りです:

ここでのWは3次元で、サイズがd*m*kです。ここで、dは入力層ノードの数を表し、mは隠れ層ノードの数を表し、kは各隠れ層ノードに対応する「隠れ隠れ層」ノードの数を表します。これらのk個の「隠れ隠れ層」ノードはすべて線形出力で、maxoutの各ノードはこれらのk個の「隠れ隠れ層」ノードの出力値の中で最大の値を取ります。活性化関数にmax操作が含まれているため、maxoutネットワーク全体も非線形変換の一種です。

次の図は、maxout活性化関数が何であるかを直感的に理解するのに役立ちます(次の図ではk = 3です):

maxoutのフィッティング能力は非常に強く、任意の凸関数をフィッティングすることができます。最も直感的な説明は、任意の凸関数は区間線形関数によって任意の精度でフィッティングでき、maxoutはk個の隠れ隠れ層ノードの最大値を取り、これらの「隠れ隠れ層」ノードも線形であるため、異なる値の範囲では、最大値も区間線形と見なすことができる(区間の数はkの値に関係します)ということです。論文の図は次の通りです(これは任意の凸関数をフィッティングできることを表しており、もちろんReLUも含まれます):



post
活性化関数
2021-05-14 15:55:39join communtity
  • 22

    item of content
活性化関数(Activation Function)とは、人工ニューラルネットワークのニューロン上で動作する関数であり、ニューロンの入力を出力にマッピングする役割を担います。活性化関数は、人工ニューラルネットワークモデルが非常に複雑で非線形の関数を学習し理解することにおいて極めて重要な役割を果たします。これらはネットワークに非線形特性を導入します。図1のように、ニューロン内で入力(inputs)が重み付けされ、合算された後、さらにある関数によって処理されます。この関数こそが活性化関数です。活性化関数を導入することで、ニューラルネットワークモデルに非線形性が追加されます。活性化関数を使用しない場合、各層の出力は単なる行列の乗算と同等になります。たとえ複数の層を積み重ねても、結局のところそれは行列の乗算以上のものではありません。

活性化関数を使わない場合、各層の出力は前層の入力の線形関数となり、ニューラルネットワークがどれだけ多くの層を持っていたとしても、出力は常に入力の線形結合となります。これは最も原始的なパーセプトロン(Perceptron)の状況です。

一方、活性化関数を使用すると、ニューロンに非線形な要素が導入され、ニューラルネットワークは任意の非線形関数に近似することが可能になります。これにより、ニューラルネットワークは多くの非線形モデルに応用できるようになります。