ノート/ノート
訪問者数 831      最終更新 2017-04-19 (水) 10:57:54

RNN 2017-03-17

RecursiveNN

活性化関数とlossの再考

値の範囲を考える。w2v出力は-1〜1の要素を持つベクトル。活性化関数に何を使うか、だが、たとえばreluを使うと数値は全体に正の方がいい(出ないと困る)。ということで、w2vの出力を0.5だけゲタを履かせて、すべての数値を0〜1にしてみる。

ちなみに、sigmoidを使うなら-1〜1の設定はありだろう。sigmoidでやってみたのだが、かなり収束が遅い。

とりあえずreluを使った現状。横軸は学習データ数/100、縦軸は、青=loss、緑=出力ベクトル長。
v7-relu.png

京大データ

評価のアイデア1 〜 グラフ

元評価で◎のサンプルについて、距離の評価の分布をみる。同様に〇、△、×についても分布をみる。

評価のアイデア2 〜 割合の比較

ポイントは、コーパス上の評価値(◎、〇、△、×)とベクトル距離との対応・一致を見たいこと。

ベクトル距離順に並べたサンプルを、元の◎、〇、△、×の個数の割合で分割する。

◎×分類×合計
サンプル数9246622626242472
割合37.3%26.8%10.6%25.2%100%
◎×ごとの距離分布×
0.0〜0.1131657
0.1〜0.267512147
0.2〜0.3114822672
0.3〜0.4107762777
0.4〜0.593883670
0.5〜0.6106823058
0.6〜0.7105633863
0.7〜0.8111892853
0.8〜0.969452050
0.9〜1.01397031127

RNN-frequency.gif

サンプルを距離順にソートし、上位から上記の割合で分割した結果に含まれる◎〜×の個数

距離順分類上位924次位662三位262四位624合計
サンプル数9246622626242472
順位0〜924925〜15861587〜18481849〜2472
距離の値1〜0.6690.668〜0.4280.427〜0. 3390.339〜0
351 (38.0%)248 (37.5%)95 (36.3%)230 (36.9%)
226 (24.5%)184 (27.8%)75 (28.6%)177 (28.4%)
95 (10.3%)75 (11.3%)28 (10.7%)64 (10.3%)
×252 (27.2%)155 (23.4%)64 (24.4%)153 (24.5%)
合計924 (100%)662 (100%)262 (100%)624 (100%)

語彙/用言/言い換えの範疇のサンプルのみを見る

◎×分類×合計
サンプル数97821061250
割合38.8%32.8%4.0%24.4%100%
◎×ごとの距離分布×
0.0〜0.11400
0.1〜0.25402
0.2〜0.310517
0.3〜0.4101006
0.4〜0.581028
0.5〜0.681115
0.6〜0.711417
0.7〜0.8101425
0.8〜0.914404
0.9〜1.02016317

RNN-frequency-iikaeonly.gif


Chainer ExampleにあるRecurrent NNの実行テスト2017-04-19(上とは関係ない)

コメント

それで、-pには単語を入れればいいらしいので、

python gentxt.py -m result/model_iter_1328 -p "there"

みたいなことで、生成テストができた。


添付ファイル: filev7-relu.png 678件 [詳細] fileRNN-frequency-iikaeonly.gif 673件 [詳細] fileRNN-frequency.gif 664件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-04-19 (水) 10:57:54 (2170d)