Slide 1

Slide 1 text

猫でもわかるTabNet 2021-07-26 poya

Slide 2

Slide 2 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning poya(ぽや) 所属 新卒よわよわデータサイエンティスト 経歴 数学科→情報系院 趣味 麻雀(天鳳), お絵かき, 猫, ネコぱら (アイコンはネコぱらのバニラちゃん) 本発表では、猫でもわかるようにTabNetの論文解説をします。 決定木系モデル(ランダムフォレストやLGBMなど)と前回のLT会の内容 (Seq2Seq, Attentionなど)を理解している猫が望ましい

Slide 3

Slide 3 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning 目次 導入 TabNetはテーブルデータ向けのすごいDNNモデル。 TabNetのしくみ 決定木系のしくみも取り入れつつさらに改良した。 実装方法 pytorch-tabnetというライブラリを使えば簡単に使える。 精度 いくつかのテーブルデータで他のモデルより高い精度を出した。 ̍

Slide 4

Slide 4 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning 目次 導入 TabNetはテーブルデータ向けのすごいDNNモデル。 TabNetのしくみ 決定木系のしくみも取り入れつつさらに改良した。 実装方法 pytorch-tabnetというライブラリを使えば簡単に使える。 精度 いくつかのテーブルデータで他のモデルより高い精度を出した。 ̍

Slide 5

Slide 5 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning TabNetとは テーブルデータ向けのすごいDNNモデル 2019年に公開、Google CloudAIの研究チームによって開発された テーブルデータに対する精度が高い場合が多い 解釈性もある データをほぼ前処理なしで入れられ、特徴設計の負担が軽減 kaggleなどデーブルデータコンペで最近では当たり前のように使われている。

Slide 6

Slide 6 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning 背景 ランダムフォレスト、LGBM、XGBoostなど テーブルデータに対して ※私が知らないだけで解釈性のあるDNNモデルは あるかもしれません 一般的なDNNモデル △ × ※ △ 決定木系モデル ◯ ◯ ◯ 精度 解釈性 学習時間 今まではテーブルデータには主に決定木系のモデルしか使われてなかった。 → 学習データ量が多い場合の精度向上 + end-to-end性のために、 テーブルデータ向けのDNNモデルを作りたい

Slide 7

Slide 7 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning 背景 ランダムフォレスト、LGBM、XGBoostなど テーブルデータに対して ○ ※私が知らないだけで解釈性のあるDNNモデルは あるかもしれません 学習データの量が多い 場合やデータの種類に よって決定木系モデル より精度期待できる 一般的なDNNモデル △ × ※ △ 決定木系モデル ◯ ◯ ◯ 精度 解釈性 学習時間 TabNet ◯ ◯ △ △ end-to-end 今まではテーブルデータには主に決定木系のモデルしか使われてなかった。 → 学習データ量が多い場合の精度向上 + end-to-end性のために、 テーブルデータ向けのDNNモデルを作りたい

Slide 8

Slide 8 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning end-to-endとは ドメイン知識や専門性を活かして特徴量を設計する手法 特徴設計 デコード 中間表現 猫 or not 猫 or not end-to-endでない方法 end-to-end end-to-endモデル モデルにできるだけ生に近いデータを与えて、その関係性を見つけるのも1つのモデルで行う手法 画像認識、音声認識、機械翻訳などでよく用いられている 何段階もある場合も 特徴設計の必要性が減る 画像とテーブルデータが一体になったような複合データも処理できる ストリーミングデータの学習 表現学習(有用な特徴をデータから学習することを目的とした手法)によるさまざまな応用 end-to-endにより...

Slide 9

Slide 9 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning 目次 導入 TabNetはテーブルデータ向けのすごいDNNモデル。 TabNetのしくみ 決定木系のしくみも取り入れつつさらに改良した。 実装方法 pytorch-tabnetというライブラリを使えば簡単に使える。 精度 いくつかのテーブルデータで他のモデルより高い精度を出した。 ̍

Slide 10

Slide 10 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning TabNetのイメージ 入力された特徴量のうち関連した特徴量を取り出す(疎な特徴選択)ことを 数回行い、予測に用いる 職に関すること 資産に関すること 例 人のデータから年収が50k$より多いか判断する問題

Slide 11

Slide 11 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning TabNetの工夫点 教師なしの事前学習を用いることで特徴量同士の関係を調べる (テーブルデータに対して初めて実現) 多段階のステップからなり、各ステップが予測に寄与 多段階ステップ+高次元化により、アンサンブルのような構造を実現 特徴量の非線形処理 instance-wiseで疎な特徴選択 (instance-wise : 入力データごとに用いる特徴量の組や度合いを適切に変える) どんな工夫によってそんなすごいモデルが実現できたのか? 工夫① 工夫② 工夫③ 工夫④

Slide 12

Slide 12 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning fine tuningのイメージ ファインチューニングあり 犬の画像 データ 猫の画像 データ ファインチューニングなし 猫種判別 モデル 犬種判別 モデル 猫の画像 データ 猫種判別 モデル 情報 的なもの 猫の画像データは大量にあるが犬のデータは 少ない。→ 犬種の判別精度が低くなりがち。 猫の種類判別で得られた情報を⽝の種類判別 モデルに適応させることで、判別精度の向上を図る 犬の画像 データ 犬種判別 モデル 画像や自然言語、音声の分野でよく用いられている。

Slide 13

Slide 13 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning fine tuningの流れ ①事前学習 ②ファインチューニング 目的のデータで学習済みのネットワークの 重みを初期値としてモデルの重みを再学習 入力 出力 ... ... ... ... 入力 ... ... ... ... ... ... 大量のデータ(前ページの例だと猫の画像 データ)でネットワークの重みを学習 ... ... 学習済みモデル 新しいモデル、層 ※学習済みのネットワークの重みを固定して用いるのが転移学習[8] 出力 ... ... 画像や自然言語、音声の分野でよく用いられている。 ...

Slide 14

Slide 14 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning TabNetの概要図 この例は人の特徴 から収入が50k$より 多いか少ないか判断 するタスク ①事前学習 ②ファインチューニング TabNet encoder TabNet decoder 表は[1]より引用 データの一部を 隠す(マスクする) マスクされた 特徴を予測 TabNet encoder decision making ファインチューニングは画像や自然言語、音声の分野でよく用いられているが、 TabNetはこれをテーブルデータに適用 工夫①

Slide 15

Slide 15 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning この例は人の特徴 から収入が50k$より 多いか少ないか判断 するタスク TabNet encoder TabNet decoder 表は[1]より引用 TabNet encoder decision making ファインチューニングは画像や自然言語、音声の分野でよく用いられているが、 TabNetはこれをテーブルデータに適用 ②ファインチューニング ①事前学習 TabNetの概要図

Slide 16

Slide 16 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning TabNet encoder features Feature transformer Split Attentive transformer Mask ReLU Mask ReLU Split Split Feature transformer Attentive transformer Feature transformer + ... ... Output

Slide 17

Slide 17 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning features Feature transformer Split Attentive transformer Mask ReLU Mask ReLU Split Split Feature transformer Attentive transformer Feature transformer + ... ... Output Step1 Step2 Step3 ... 多段階のステップで構成される TabNet encoder 工夫②

Slide 18

Slide 18 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning features Feature transformer Split Attentive transformer Mask ReLU Mask ReLU Split Split Feature transformer Attentive transformer Feature transformer + ... ... Output Step1 Step2 Step3 ... どの特徴量をどのくらい使うのか決める (instance-wise, 疎な特徴選択) 特徴量の非線形処理 TabNet encoder 工夫③ 工夫④

Slide 19

Slide 19 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning TabNet encoderの簡単ver 決定木でやると... a x1 x2 犬 猫 うさぎ 鳥 d 特徴量:x1, x2 犬・猫・うさぎ・鳥に分類する問題 x1 > a か? Yes No x2 > d か? x2 > d か? Yes No Yes No 猫 鳥 犬 うさぎ 0

Slide 20

Slide 20 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning encoderでやると... a x1 x2 犬 猫 うさぎ 鳥 d 特徴量:x1, x2 犬・猫・うさぎ・鳥に分類する問題 0 W : [C1, -C1, 0, 0] b : [-aC1, aC1, -1, -1] ReLU FC ReLU + Mask Mask [x1,x2] FC ⵙ[1,0] ⵙ[0,1] W :[0, 0, -C2, C2] b : [-1,-1,-dC2, dC2] TabNet encoderの簡単ver ※ C1, C2 > 0

Slide 21

Slide 21 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning W : [C1, -C1, 0, 0] b : [-aC1, aC1, -1, -1] ReLU FC ReLU + Mask ⵙ[1,0] Mask ⵙ[0,1] [x1,x2] FC W :[0, 0, -C2, C2] b : [-1,-1,-dC2, dC2] 0 x y y=x ReLU x1 ≥ a のとき [正, 0, 0, 0] x1 < a のとき [0, 正, 0, 0] [C1x1-C1a, -C1x1+C1a, -1,-1] ② ① ① ※ C1, C2 > 0 TabNet encoderの簡単ver

Slide 22

Slide 22 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning W : [C1, -C1, 0, 0] b : [-aC1, aC1, -1, -1] ReLU FC ReLU + Mask ⵙ[1,0] Mask ⵙ[0,1] [x1,x2] FC W :[0, 0, -C2, C2] b : [-1,-1,-dC2, dC2] ③ a x1 x2 d 0 [正, 0, 正, 0] [0, 正, 正, 0] [0, 正, 0, 正] [正, 0, 0, 正] ③ !④の結果、[正, 0, 正, 0]なら猫, [0, 正, 正, 0]なら鳥、...とすればよい x1 ≥ a のとき [正, 0, 0, 0] x1 < a のとき [0, 正, 0, 0] ② TabNet encoderの簡単ver

Slide 23

Slide 23 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning features Feature transformer Split Attentive transformer Mask ReLU Mask ReLU Split Split Feature transformer Attentive transformer Feature transformer + ... ... Output Step1 Step2 Step3 ... どの特徴量をどのくらい使うのか決める (instance-wise, 疎な特徴選択) 特徴量の非線形処理 TabNet encoder 工夫③ 工夫④

Slide 24

Slide 24 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning Attentive transformer Sparsemax FC BN ⵙ Sparsemax関数 2次元の場合 softmaxでは小さい値(>0)になるが、 sparsemaxでは0になり、 重要な特徴だけを選ぶ疎な特徴選択を実現 Prior scales

Slide 25

Slide 25 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning features Feature transformer Split Attentive transformer Mask ReLU Mask ReLU Split Split Feature transformer Attentive transformer Feature transformer + ... ... Output Step1 Step2 Step3 ... どの特徴量をどのくらい使うのか決める (instance-wise, 疎な特徴選択) 特徴量の非線形処理 TabNet encoder 工夫③ 工夫④

Slide 26

Slide 26 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning Feature transformer FC BN GLU + + + √ 0.5 √ 0.5 √ 0.5 FC BN GLU FC BN GLU FC BN GLU 非線形処理により表現力を高める ゲーティングにより勾配消失問題を解消 GLU ⼊⼒Xに対し、Xⵙσ(X)を出⼒

Slide 27

Slide 27 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning decoder

Slide 28

Slide 28 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning 目次 導入 TabNetはテーブルデータ向けのすごいDNNモデル。 TabNetのしくみ 決定木系のしくみも取り入れつつさらに改良した。 実装方法 pytorch-tabnetというライブラリを使えば簡単に使える。 精度 いくつかのテーブルデータで他のモデルより高い精度を出した。 ̍

Slide 29

Slide 29 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning 2通りの実装方法が公開されている。 ✔ googleによる公式実装 https://github.com/google-research/google-research/tree/master/tabnet ✔ pytorch_tabnet(非公式) https://github.com/dreamquark-ai/tabnet pytorch_tabnetによる実装方法

Slide 30

Slide 30 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning 2通りの実装方法が公開されている。 fitとpredictで簡単に使えるので、こちらを解説します ✔ googleによる公式実装 https://github.com/google-research/google-research/tree/master/tabnet ✔ pytorch_tabnet(非公式) https://github.com/dreamquark-ai/tabnet pytorch_tabnetによる実装方法

Slide 31

Slide 31 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning Step3 事前学習 Step4 ファインチューニング Step1 install, import Step2 データの用意 pytorch_tabnetによる実装方法 encoder decoder decision making encoder ②ファインチューニング ①事前学習

Slide 32

Slide 32 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning pytorch_tabnetによる実装方法 Step3 事前学習 Step4 ファインチューニング Step1 install, import Step2 データの用意 TabNetのinstall PyTorchとTabNetのimport その他必要に応じて

Slide 33

Slide 33 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning Step3 事前学習 Step4 ファインチューニング Step1 install, import Step2 データの用意 前処理 欠損値:補完必要 カテゴリ変数:ラベルエンコーディング必要 pytorch_tabnetによる実装方法

Slide 34

Slide 34 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning Step3 事前学習 Step4 ファインチューニング Step1 install, import Step2 データの用意 TabNetPretrainerでインスタンス作成 → fit [13]より引用 pytorch_tabnetによる実装方法

Slide 35

Slide 35 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning Step3 事前学習 Step4 ファインチューニング Step1 install, import Step2 データの用意 分類ならTabNetClassifier、 回帰ならTabNetClassifierでインスタンス作成 → fit (from_unsupervised=pretrainerと指定) → predict 〜省略〜 [13]より引用 pytorch_tabnetによる実装方法

Slide 36

Slide 36 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning Local interpretability Mask 2種類の解釈性の出力方法 Global interpretability Feature Importance 最終的にどの特徴量がどのくらい予測に使われたか 各Stepでどの特徴量がどのくらい予測に使われたか、 特徴量同士で関係のあるものはどれか 5 2 0 1 3 6 4

Slide 37

Slide 37 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning 目次 導入 TabNetはテーブルデータ向けのすごいDNNモデル。 TabNetのしくみ 決定木系のしくみも取り入れつつさらに改良した。 実装方法 pytorch-tabnetというライブラリを使えば簡単に使える。 精度 いくつかのテーブルデータで他のモデルより高い精度を出した。 ̍

Slide 38

Slide 38 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning 精度 [1]より引用 Performance for Forest Cover Type dataset Performance for Rossmann Store Sales dataset Model Test accuracy(%) XGBoost LightGBM CatBoost AutoML Tables TabNet 89.34 89.28 85.14 94.95 96.99 Model Test MSE XGBoost LightGBM CatBoost MLP TabNet 490.83 504.76 489.75 512.62 485.12

Slide 39

Slide 39 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning instance-wiseに関する精度 Syn1-Syn6:目的変数は一部の特徴量のみによって決まる。(この特徴量を重要な特徴量と書くことにする) Syn1-3:重要な特徴量は各入力データに依存しない。 例)Syn2の目的変数は特徴量X3-X6のみによって決まる。 Syn4-6:重要な特徴量は各入力データに依存する。 例)Syn4の目的変数はX11の値によってX1-X2またはX3-X6のみによって決まる。 instance-wiseな特徴選択が活きるSyn4-6においてTabNetの精度が特に良い。 しかも、INVASEは3つのモデルを組み合わせていてパラメータ数101kになるが、 TabNetは1つのモデル、パラメータ数はSyn1-3は26kでSyn4-6は31k。 [1]より引用

Slide 40

Slide 40 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning まとめ テーブルデータに対する精度が高い場合が多い 解釈性もある データをほぼ前処理なしで入れられ、特徴設計の負担が軽減 TabNetはテーブルデータ向けのすごいDNNモデル 教師なしの事前学習を用いて、マスクされた特徴を予測 多段階のステップからなり、各ステップが予測に寄与 多段階ステップ+高次元化により、アンサンブルのような構造を実現 特徴量の非線形処理 instance-wiseな特徴選択 TabNetの工夫 TabNetのすごさ

Slide 41

Slide 41 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning 参考文献 -論文と本編- [1](TabNet)https://arxiv.org/abs/1908.07442 [2](Sparsemax関数)https://arxiv.org/abs/1602.02068 [3](GLU) https://arxiv.org/abs/1612.08083 [4](Sequential Attention)https://www.aclweb.org/anthology/W17-2610/ [5](Key-Value Memory Networks)https://arxiv.org/abs/1606.03126 [6](BERT)https://arxiv.org/abs/1810.04805 [7](Deep Learning Scaling Is Predictable, Empirically)https://arxiv.org/abs/1712.00409 [8](INVASE)https://openreview.net/forum?id=BJg_roAcK7 [9](BN)https://arxiv.org/abs/1502.03167 [10] PyTorchによる発展ディープラーニング 小川雄太郎 著 [11] BERTによる自然言語処理入門 近江崇宏, 金田健太郎, 森長誠, 江間見亜利 著 [12] ゼロから作るDeep Learning 2 自然言語処理編 斎藤康毅著 [13] 機械学習プロフェッショナルシリーズ 深層学習による自然言語処理 坪井裕太ら著

Slide 42

Slide 42 text

ಋೖ ͘͠Έ ਫ਼౓ ࣮૷ 概要 encoder decoder -Attentive transformer -Feature transformer 背景 ·ͱΊ ࢀߟจݙ ͓ΘΓʹ -簡単ver ֶशɾਪ࿦ ղऍੑ end-to-end fine tuning 参考文献 -webページ編- [14](特徴量設計)https://japanexchangegroup.github.io/J-Quants-Tutorial/ [15](end-to-end)https://www.youtube.com/watch?v=ImUoubi_t7s [16](BNの解説ブログ)https://qiita.com/omiita/items/01855ff13cc6d3720ea4 [17](TabNetの解説ブログ1)https://www.guruguru.science/competitions/16/discussions/70f25f95- 4dcc-4733-9f9e-f7bc6472d7c0/ [18](TabNetの解説ブログ2)https://zenn.dev/sinchir0/articles/9228eccebfbf579bfdf4 [19](pytorch-tabnet作者による解説)https://www.youtube.com/watch?v=ysBaZO8YmX8 [20](転移学習・ファインチューニングの記事)https://ledge.ai/transfer-learning/ [21](googleによる公式実装)https://github.com/google-research/google-research/tree/master/tabnet [22](pytorch-tabnet, 非公式)https://github.com/dreamquark-ai/tabnet このスライドのデザインはBeamer(LaTeXでスライド作れるやつ)のGoettingen themeを参考にしています。 https://deic-web.uab.cat/~iblanes/beamer_gallery/individual/Goettingen-default-default.html