Upgrade to Pro — share decks privately, control downloads, hide ads and more …

NN Starterモデルを ベイズNNにして分析してみた

habakan
December 18, 2021

NN Starterモデルを ベイズNNにして分析してみた

Numerai MeetUp Japan 2021

habakan

December 18, 2021
Tweet

More Decks by habakan

Other Decks in Technology

Transcript

  1. ForumでのNNの議論事例 ・ResNetによる特徴量変換[1] ・特徴量の正負反転やノイズ付与などのData Augmentation [1] ・Metric Learningによるera間の分析[2] ・ランキング学習の枠組みでLossを定義して学習[3] ・Denoising Auto

    Encoderによるデノイズ[4] ・End2EndではなくNNで事前学習をした特徴量を利用[5] ・Pseudo Labellingを利用した学習[6] 4 NumeraiにおけるNNの活用 アーキテクチャや損失関数などを活用した柔軟なモデル構築 ForumでもNNの利用はいくつか議論されている
  2. NNは学習設定が多く、学習結果の要因が分析しにくい 特徴選択, アーキテクチャ, Loss, ミニバッチ方法, Optimizer, Epoch数, 学習率, 正則化 etc…

    Forumでのアイデア共有があっても、設定の違いにより上手くいかないケースがある 初期値のseedを変更するだけパフォーマンスが大きくかわる ・設定した初期化分布からパラメータの初期値をサンプル 再現性を考慮した評価に基づいたモデル選択が必要 ・K-foldや初期値のseed値を変えて複数モデルを構築し、  評価やアンサンブルをすることで安定化 5 NNの評価に課題がある 初期値によって評価が変動し、再現性を担保しにくい 結果的に検証コストが高くなる
  3. 1. 分布をもとにパラメータを複数サンプルして評価 ・複数パラメータを利用したアンサンブル ・評価指標を分布としてモデルを評価 2. 不確実性を利用したBurn Eraの検出評価 予測分布のstdを活用した、Burn Era検出の評価を比較 3.

    targetの生成過程を考慮した確率モデルの構築・評価 複数targetの生成過程などもモデルに考慮して分析 8 検証内容 パラメータの分布を推定して、 分布を活用してモデルを新たな視点で評価できないか?
  4. katsuさん公開のNN Starter Notebook [8] https://www.kaggle.com/code1110/numerai-nn-baseline-with-new-massive-data ・Borutaで選択した38個の特徴量を入力 ・4層の全結合層で構成 ・Dropout, ガウスノイズによる正則化 ・複数targetを予測

    シンプルにしたものをbaselineとして検証 ・Borutaで選択した38個の特徴量を入力 ・4層の全結合層で構成 ・正則化レイヤーなし ・targetは一つのみ予測 9 NN Starterをベースに検証
  5. ベースライン ・損失関数: MSE ・パラメータはHeの初期化 ・学習率: 1e-2 ・バッチサイズ: 4096 ・エポック数: 30

    ・最適化手法: Adam ・early stoppingなし 10 ベイズNN ・事後分布の計算: SVI(変分推論) ・以下の生成モデルを仮定 ・priorのscaleはHe初期化に準拠 ・学習率: 1e-3 ・バッチサイズ: 4096 ・エポック数: 30 ・最適化手法: Adam ・early stoppingなし 学習方法 training_data.csvを学習に、validation_dataを評価データとして利用 validation_dataを監視したearly stoppingなどはなし 30エポック決め打ちでのvalidation_dataの結果を評価
  6. 一様分布 非正則な分布として設定 正規分布 MAP推定の場合、L2正則化(Ridge)に相当 ガウスノイズの追加をパラメータの分布として考える ラプラス分布 MAP推定の場合、L1正則化(Lasso)に相当 全結合層のパラメータがスパースな行列となる 11 事前分布の設定

    正則化を考慮し、事前分布を設定して比較 ベイズNNの評価 学習後、1000組のパラメータをサンプルして評価に利用 ・1000組の予測それぞれで評価を計算することで評価の分布を作成 ・1000組の予測を平均して1つの評価を計算
  7. ベースラインと各事前分布をおいたベイズNNのアンサンブルを比較 ・validation corrはベースラインよりベイズNNのほうが高い ・sharpe ratioは一様分布が一番高いだが、ベースラインが二番目 ・正規分布とラプラス分布の比較ではラプラス分布のほうが高い ・Epochを監視すると、ベースライン※でもパフォーマンスは出る  (ただvalを監視してるので、正当な評価ではない) 13 ベースラインと各事前分布のアンサンブル比較

    ベースライン 一様分布 ベイズNN 正規分布 ベイズNN ラプラス分布 ベイズNN ベースライン (Best※) NN Starter [3] validation corr 0.0145 0.0199 0.0167 0.0185 0.191 0.0153 SharpeRatio 0.6422 0.6454 0.5038 0.5573 0.6489 0.5035 ※エポックごとに監視し、 Val Corrが高かった時点を採用した参考値 (5epoch目) 検証1:アンサンブルとベースラインの比較
  8. 評価分布の平均とアンサンブル比較 それぞれの評価を平均 < アンサンブル  →アンサンブルが寄与している? 14 1000サンプルモデルそれぞれの評価の平均と アンサンブルの評価を比較 一様分布 正規分布

    ラプラス分布 val corr (平均±std) 0.0142 ±0.0023 0.0049 ±0.0072 0.0123 ±0.0020 val corr (アンサンブル) 0.0199 0.0167 0.0185 SharpeRatio (平均±std) 0.5764 ±0.0908 0.2107 ±0.3021 0.4989 ±0.0673 SharpeRatio (アンサンブル) 0.6454 0.5038 0.5573 検証1:パフォーマンスの分布の評価 評価の分布 正規分布はばらつきがある 一様分布・ラプラス分布は シャープ
  9. 20 検証3:targetの確率モデルの構築 μ target nomi target janet target george μ

    target nomi target janet target george μ μ 複数種類のtargetを複数生成するモデルを構築 生成過程の仮説を元に設計して検証 仮説1 targetは同じ分布からサンプル 仮説2 (NN Starter) 分布は異なるがμは同じ潜在変数から変換
  10. 21 検証3:targetの確率モデルの構築 一様分布 正規分布 ラプラス分布 仮説1 0.0151(0.5794) 0.0110(0.3735) 0.0122(0.4161) 仮説2

    0.0171(0.5891) 0.0080(0.3236) 0.0075(0.3040) 検証1の ベイズNN 0.0199(0.6454) 0.0167(0.5038) 0.0185(0.5573) 仮説1・2の検証結果 target1つのみのベイズNNと比較すると評価が劣後 ・仮説1の同一分布の仮定は厳しそう ・仮説2ではないなら共通する潜在変数は一部 or 存在しない? ・ただ、正規分布, ラプラス分布が大きく劣後している  →パラメータ増加によって事後分布の計算が影響していないか?
  11. 22 検証3:targetの確率モデルの構築 target nomi 20d target nomi 60d μ μ

    target nomi 20d target nomi 60d μ μ 予測期間の異なるtargetを複数生成するモデルを構築 生成過程の仮説を元に設計して検証 仮説3 分布は異なるがμは同じ潜在変数から変換 仮説4 60日後targetのμは20日後targetの説明変数
  12. 23 検証3:targetの確率モデルの構築 一様分布 正規分布 ラプラス分布 仮説3 0.0130(0.5458) 0.0136(0.6621) 0.0136(0.5867) 仮説4

    0.0146(0.6991) 0.0144(0.7036) 0.0139(0.6379) 検証1の ベイズNN 0.0199(0.6454) 0.0167(0.5038) 0.0185(0.5573) 仮説3・4の検証結果 全体的にSharpe Ratioの向上は確認 60日targetの併用がある程度寄与している? ただ仮説4の60日targetから20日targetへの 重みの分布は0付近で対称にばらつきがある →本来の相関は正のはずなので検証が必要
  13. アーキテクチャによる比較 隠れ層の総数を減らすことによって どのように変化するかを検証 結果的には単調増加していない 29 隠れ層の数 ベースライン 一様分布 正規分布 ラプラス分布

    0 (線形モデル) 0.0156(0.5838) 0.0134(0.4077) 0.0093(0.3236) 0.0115(0.3679) 1 0.0164(0.5481) 0.0199(0.6599) 0.0174(0.5152) 0.0171(0.5114) 2 0.0169(0.5948) 0.0175(0.6086) 0.0147(0.4641) 0.0132(0.4483) 3 (Baseline) 0.0145(0.6422) 0.0199(0.6454) 0.0167(0.5038) 0.0185(0.5573) アーキテクチャの比較 隠れ層の数 隠れ層のユニット数 0(線形モデル) - 1 (128) 2 (128, 64) 3(Baseline) (128, 64, 64)
  14. アーキテクチャによる比較 隠れ層の数が1・3層の時の分布が似ている 30 隠れ層数 0 1 2 3 0 0.0

    1.4725 1.1164 2.4232 1 1.4725 0.0 1.9590 0.0855 2 1.1164 1.9590 0.0 2.0222 3 2.4232 0.0855 2.0222 0.0 モデルごとのCorr Meanの分布の距離 正規分布のJensen-Shanon Divergenceで計算 アーキテクチャの比較