これまでの各記事は以下から。
- HMEの構造と出力の計算
- HMEでの学習
- HMEの出した結果
HMEの構造
HMEは、次のような構造になっている:
シンプルな例
2階層にした例
エキスパートネットワークというのは、任意の学習器。
ニューラルネットワークなどが使われる。
ゲートネットワークというのは、各エキスパートネットワークの出力をどのような割合で使うのかを決定するためのもので、これ自体も一つの学習器。
プロパゲートノードというのは、エキスパートネットワークとゲートネットワークの出力から、その階層の最終的な出力を計算するノード。
HMEの出力の計算
HMEでは、次のように出力の計算を行う:
- エキスパートネットワークの出力 を次のように求める:
ただし、 はエキスパートネットワークのパラメータ。 - ゲートネットワークの出力 を、次のように求める:
ただし、 はゲートネットワークのエキスパートネットワークに関するパラメータ。
- プロパゲートノードの出力 を、次のように求める:
複数の階層になっている場合、下の階層のHMEを上の階層のエキスパートネットワークとみなして計算を行っていくことになる。
HMEでの学習
HMEでの学習は、次のようにする:
- エキスパートネットワーク について、値 を、次のように求める:
- エキスパートネットワークについて、誤差関数の出力に関する偏微分 を次のようにして、エキスパートネットワークの学習を行う:
- ゲートネットワークについて、誤差関数の中間層の出力に関する偏微分 を次のようにして、ゲートネットワークの学習を行う:
複数の階層になっている場合についてはHMEについて学んでみた。(その2) - いものやま。を参照。
このHMEを強化学習の関数近似に使う方法について、次は考えていきたい。
今日はここまで!