Open GENZITSU opened 1 year ago
サポートベクター回帰(分類)を高速に学習することが可能なRAPIDS SVRの利用方法の紹介記事
SVRは少数データに対しては性能が高い傾向にあるが学習時間がデータ数に応じて指数感的に増えるという弱点があった、これをGPUに最適化させたのがRAPIDS SVRでsklearnの10~50倍ほど高速に動作するらしい
実装例は以下。 使い方はほぼsklearnのsvcである。
# from https://secon.dev/entry/2022/12/13/090000-rapids-svr-svc-marc-ja/
from cuml.svm import SVC
import numpy as np
DEFAULT_SVC_PARAMS = {
"C": 3.0, # Penalty parameter C of the error term.
"kernel": "rbf", # Possible options: ‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’.
"degree": 3,
"gamma": "scale", # auto or scale
"coef0": 0.0,
"tol": 0.001, # 0.001 = 1e-3
}
def train_svc(
X: np.ndarray,
y: np.ndarray,
svc_params: dict[str, object] = DEFAULT_SVC_PARAMS,
probability: bool = True,
) -> SVC:
svc = SVC(**svc_params)
svc.probability = probability
svc.fit(X, y)
return svc
これをhaggingfaceの事前学習モデルからエンコードした文章特徴量にかけることで、サクッと高性能が出るというから驚きである。
記事中では約6000文章に対する学習が18秒で終わっている
学習時間が長くて使うのが億劫だったがここまで早ければ試してみたいところ。
2022年12月5日時点で、pytorchやhagging faceで利用可能な21個の音声モデルをまとめている記事
まとめ助かる
競走馬の骨格点を推定し、その軌跡から馬の体調を探れないかを調査している記事
Horse10benchmarkというサラブレットの特徴点をアノテーションしたデータセットがあり、これをもとにパドックを歩行する馬の特徴点を検出している
このデータセットには30個体、8,000frame以上のデータが格納されている
分析のイメージ
馬の骨格推定データとか知らなんだ
plotlyでグラフを描画する基本的な方法を解説している記事。
plotly express ばかり使っていると細かなカスタマイズに困る時があったので助かる
AutoVizの作者が作成したAutoMLライブラリ
データの前処理や特徴量選択を行った上で、モデルの学習およびアンサンブルまで実行してくれるのが強みか
以下を実行するだけで、いろいろ出してくれる
# from https://github.com/AutoViML/Auto_ViML
model, features, trainm, testm = Auto_ViML(
train,
target,
test,
sample_submission,
hyper_param="GS",
feature_reduction=True,
scoring_parameter="weighted-f1",
KMeans_Featurizer=False,
Boosting_Flag=False,
Binning_Flag=False,
Add_Poly=False,
Stacking_Flag=False,
Imbalanced_Flag=False,
verbose=0,
)
AutoMLライブラリとえいばpycarretだと思っていたが、前処理と特徴量選択までサポートしているのは結構やりそう。
学生の書いた小論文データの採点結果を予測するコンペの上位陣が採用していた手法を改めて追試し、その効果を試している記事。
最終的なablation結果は下記だが、面白いと思ったテクニックを抜粋していく。
小論文などで話題の転換などを示す際に利用される連続改行を[PARAGRAPH]
のような特殊なトークンに変換することでモデルがレイアウトを理解できるようにするテクニック。
[PARAGRAPH]
ではなく|
などの絶対に使われなさそうな文字にするとモデルへの入力が楽になる
今回は採点項目が複数あったので、採点項目ごとに予測トークンを設置することでそれらの相関をモデルに理解させようという試み
以下のようなイメージ
"[CLS] cohesion syntax vocabulary phraseology grammar conventions text [SEP]“
それはまぁめちゃくちゃ強かったとのこと
こういうテクニックまとめ助かる。
多クラス分類の際は、クラスごとに予測トークンを設置して予測させるというアプローチは汎用的に使えそうである。 (クラス数が多いと入力文章が長くなってそれはそれで大変そうだが)
重みの固有値が1になるように初期化することで、勾配の発散消失を防ぐ初期化 orthogonal initializationの紹介
2016年に提案されたもののようだが知らなかった。
Explaining and illustrating orthogonal initialization for recurrent neural networks
Feature Attributionを使ったモデルモニタリングの開発と実際の機械学習モデルへの適用
モデルの出力に影響を与えた特徴量がどれほど変化したかでモデルのモニタリングを行うFeature Attributionを実際のシステムに適用した事例の紹介
モデルのモニタリングには、入力データの分布を監視する方法や出力を監視する方法などが有名だが、Yahooではそれをもう一歩進化させて入出力の関係を監視する方法を実装
どのようなモデルにも対応可能なKenerlSHAPを用いて特徴量のランキングを行い、いつものランキングとのnDCGを計算することでモデルの監視を実施
コメント
入出力の関係を定量化する方法として勉強になった。
出典
Feature Attributionを使ったモデルモニタリングの開発と実際の機械学習モデルへの適用