2020の1日目の記事です。Corrをちょびっとだけ上げる小技」です。コンペの解法まとめ(応用編)はじめにニューラルネットワークなどの機械学習ではモデルの初期値を乱数で生成しています。その初期値によってスコアが変動しまうことに悩んでおりました。初期値を変えながらモデルを作成して、validationのスコアがいいものを選んだらいいのか?どうアプローチをしたらいいのか?と悩んでおりましたところ、ランダムシードアベレージという手法を教えていただきました。実験Notebookはこちら(Gist)。scriptの初期値を変えながら30個のモデルを生成します。各モデルのvalidation予測のスコアの平均を計算します。各モデルのvalidation予測を平均した予測のスコアを計算します。|考察スコアの平均値よりも、予測を平均したもののスコアの方が高くなりました。違う初期値で作成したモデルの予測をそれぞれsubmitするよりも、平均してからsubmitしたほうが、Payoutsは多くなると期待できそうです。Averageしておけば初期値ガチャに悩まなくて済みそうです。予測は1アカウント10個までしか提出できないので節約できておトクですね!Kerasで予測の平均を出力するさて、10個の予測を平均しようとすると、予測の計算に10倍の時間がかかってしまいます。Kerasなどを使用してGPUで予測を計算している場合、GPUの計算能力に空きがあれば、並行で実行して時間を短縮することができます。Kerasで各モデルの平均を出力するモデルの作成方法をご紹介します。KerasにはAverageレイヤーがあるのでこれを利用します。使えば1つのモデルと同等の時間で、予測を計算できます。終わりにこれでようやく初期値の悩みから解放されました。kunigakuこんにちはバッジを贈って著者を応援しようバッジを受け取った著者にはZennから現金やAmazonギフトカードが還元されます。Proよくある質問LinksX(Twitter)GitHubメディアキットLegal利用規約プライバシーポリシ。