4th place solution

初コンペ参加&初回帰問題です 国産技術を応援するためずっとChainerを使っていましたが開発終了してしまったので今回が最後のChainerプロジェクトです.

SalaryPrediction-01.png

SalaryPrediction-02.png

SalaryPrediction-03.png

SalaryPrediction-04.png

SalaryPrediction-05.png

スライドにはAttentionもどきと書いてありますが,内積を使っているだけでAttention本来の意味は失われています.

今回,投稿していないものも含めて数百個のモデルを作成しましたが,活性化関数を使いすぎないというのがポイントだと感じました. 活性化関数があるとネットワークの表現力が増しますが,今回のような小さなデータセットの場合,過学習に陥りやすかったです. 活性化関数の使用を抑えることでネットワークの表現力を落として過学習になりにくくしています.

今回作成したネットワークは今回のコンペに特化したもので非常に不安定で汎用性がありません. もっとシンプルなモデルで高い精度がでるものを作成しようとしましたが時間切れでした. ちなみにシンプルな3層の全結合でスコア21台はすぐに出ると思うので試してみてください 1層目 ユニット数200 2層目 ユニット数10 出力層 ユニット数1 活性化関数は1層目のあとはなし,2層目のあとはRelu,出力層の値を1200倍にしたものを予測値とする. 最適化アルゴリズムはAdam

Chainerの場合,出力を1200倍しない場合はスコア44ぐらいしか出ませんが,300~1200倍することでスコアが大きく改善されます. Adamのパラメータを調整することで1200倍しなくても良いスコアは出るとは思います.

Icon15
Yuhei0320

他の方の解法を見ると特徴ベクトルの作成は加法だけでなく乗法・除法も重要なんですね 勉強になりました 通常のNNだと加法しかサポートできませんが Attentionは内部に内積を含んでいるので乗法で得られる重要な特徴を自動的に学んでいるのかもしれません Attentionに除法の概念も組み込めば過学習の危険も増しますが更に性能が上がるかもしれませんね

Favicon
new user
コメントするには 新規登録 もしくは ログイン が必要です。