マエカワの備忘録的な何か

思い立ったが吉日

認知工学 其の六 20171108

あいまいさについて

 言葉の中には同音異義語や多義語、同形異義語など様々ある。このような複数の意味をどう処理するのかがネック。代表的な処理モデルは以下の通り。

  • 逐次処理モデル:使用頻度によって優先度が変わる
  • 文脈依存処理モデル:文脈に合うもののみを選択する
  • 並列処理モデル:複数の意味を同時に処理、その後文脈に合うものを選択

現在は並列処理モデルが支持されている
 また、文脈にかかわらず、多義語は非多義語に対して反応時間が長いことが分かっている。これは人間は最初、並列処理モデルを使っていることの証拠になる(複数の意味を最初に処理しているから時間が長い)。

クロスモーダルプライミング

 音と文字によってプライミング効果を測定する方法。音声がprimeで単語がtargetの例が紹介された。多義語が聞こえた直後は度の意味も活性化するが、200msくらいたつと、文脈に関係のない意味が抑制されることが分かっている。

 研究を進めていくと、大元は並列処理モデルだが、それでも「意味」「頻度」「文脈」によってアクセスされやすい言葉が変わっていく。これには二つのモデルがある。

  • reordered access model:文脈が支持する意味にアクセスしやすくなるモデル。
  • autonomous access model:頻度に応じてアクセスのしやすさが決まる。

 reordered access modelには注意しないといけない点がある。それは、意味によって頻度が同じ場合(balanced)と異なる場合(unbalanced)があるということ。同じ場合は、文脈が指定している意味が活性化。違う場合、文脈が低頻度の意味を指定すると複数の意味に同時にアクセスされる。
 ここからもわかる通り、アクセス時間と頻度は切っても切れない関係になっている。

ニューラルネットワーク

 最近、言語認知の分野に用いられるようになってきた。その理由は

  • 特徴表現ベクトルの扱いにたけている
  • 意味表現が創発される
  • 人間の言語獲得と類似している

など。
 そもそも、ニューラルネットワークとは、ユニットとリンクで形成されていて、各ユニットには活性度が、リンクには重みが設定されている。リンクを通ることで、ユニットの活性度がほかのユニットに伝播していく(活性拡散・伝播)。
 特徴としては、

  • 分散表現ができる
  • 誤差逆伝播法による認知能力の獲得
  • コネクショニストモデル:人間の認知機能のモデルとして用いるときのニューラルネットワークの特別な呼び方
  • ネットワークタイプ:階層型と、相互結合型がある

階層型ネットワーク

 現在はこの階層ネットワークが主流なので、これについての説明。次のようなネットワークを考えていくとします。ただし、 \displaystyle k-1層のユニット数は \displaystyle m個とする。

f:id:maekawa_yoshimiki_1119:20171201200958j:plain:h200

数理
  •  \displaystyle z_i^k \displaystyle k \displaystyle i番目のユニットの活性度を表す
  •  \displaystyle w_{j,i}^{k-1,k} \displaystyle k-1 \displaystyle j番目のユニットから \displaystyle k \displaystyle i番目のユニットへの重み
  •  \displaystyle a_i^k \displaystyle k \displaystyle i番目のユニットの出力
  •  \displaystyle f, \displaystyle f_o:活性度関数
  •  \displaystyle b_i^k \displaystyle k \displaystyle i番目のユニットのバイアス

このような条件で、

 \displaystyle z_i^k=\sum_j w_{j,i}^{k-1,k} a_j^{k-1}+b_i^k

 \displaystyle a_i^k=f(z_i^k)

が成立している。

活性度関数の例

 各ユニットの出力を決定する活性度関数にはいろいろ種類がある。

  • 閾値関数:初期に使われていた
  • 区分線形関数
  • シグモイド関数:現在のスタンダード
  • 双曲線正接関数
  • 正規化線形関数:最近使われ始めている
  • ソフトマックス関数:出力層に使われることが多い
ソフトマックス関数

 \displaystyle \frac{\exp z_i^m}{\sum_j \exp z_j^m}

で求められる関数。全ての出力の総和が1になり、確率分布を与えるようになっているので、出力層で用いられることが多い。

結合の重みの決め方-パーセプトロン学習則-

 そもそもニューラルネットでは、入力に対応した出力を出せるようなユニット間の重みづけを探索している。この探索が終了したことをもって「学習した」と表現している。この方法の基本は「出力層の値と真の出力の誤差」を小さくする方向に重みづけを変更していくこと。ここでは、一番初歩的な、パーセプトロン学習則による、重みづけの決定方法について書いていく。基本式は

 \displaystyle \Delta w_{i,j}^{k-1,k}=\alpha (y_j-a_j^k)a_i^{k-1}

 この値を各ユニット間の重みに足していくことで、精度を上げていく。 \displaystyle \alphaは学習係数と呼ばれ、学習の精度に関係してくる数で、 \displaystyle y_jは実際に得ようとしている出力データ(教師データ)の \displaystyle j番目の値を表している。目標となる \displaystyle \vec{y}がなければならないので、2層以上のネットワークでは適用できない。3層以上のネットワークで使う場合は、入力層、隠れ層の重みを固定値にしなければならない。
 このような背景から、多層ニューラルネットの各ユニット間の重みづけを探索できる誤差逆伝播が誕生した。

 \displaystyle