4th place solution
初コンペ参加&初回帰問題です
国産技術を応援するためずっとChainerを使っていましたが開発終了してしまったので今回が最後のChainerプロジェクトです.
スライドにはAttentionもどきと書いてありますが,内積を使っているだけでAttention本来の意味は失われています.
今回,投稿していないものも含めて数百個のモデルを作成しましたが,活性化関数を使いすぎないというのがポイントだと感じました.
活性化関数があるとネットワークの表現力が増しますが,今回のような小さなデータセットの場合,過学習に陥りやすかったです.
活性化関数の使用を抑えることでネットワークの表現力を落として過学習になりにくくしています.
今回作成したネットワークは今回のコンペに特化したもので非常に不安定で汎用性がありません.
もっとシンプルなモデルで高い精度がでるものを作成しようとしましたが時間切れでした.
ちなみにシンプルな3層の全結合でスコア21台はすぐに出ると思うので試してみてください
1層目 ユニット数200
2層目 ユニット数10
出力層 ユニット数1
活性化関数は1層目のあとはなし,2層目のあとはRelu,出力層の値を1200倍にしたものを予測値とする.
最適化アルゴリズムはAdam
Chainerの場合,出力を1200倍しない場合はスコア44ぐらいしか出ませんが,300~1200倍することでスコアが大きく改善されます.
Adamのパラメータを調整することで1200倍しなくても良いスコアは出るとは思います.