1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Professional Machine Learning Engineerの学習メモ

Posted at

はじめに

Google CloudのProfessional Machine Learning Engineerの学習中のメモとなります。

PrecisionとRecallとF1スコア

Presicion(適合率)

モデルが正解と予測したデータのうち、実際に正解だった割合。
精度を重要視するときに使用することが多い。(誤検出による影響が大きい場合)

Recall(再現率)

実際には正解であるデータのうち、どれだけを正しく正解と予測できたかの割合。
網羅性を重要視するときに使用することが多い。(検出漏れによるリスクが大きい場合)
偽陰性(False Negative)を最小限に抑えることに重点を置いている。

F1スコア

PresicionとRecallをバランスよくとるのに最適。
偽陽性(False Positive)と偽陰性(False Negative)両方を最小限に抑えることに重点を置いている。

L1正則化とL2正則化

L1正則化

不要な重みを0に近づけやすくし、モデルがシンプルになる。
多くの重みが0になり、重要な特徴量が残る。
外れ値の影響を受けにくい。

L2正則化

重みの分散を小さくする。
外れ値の影響を受けやすい。

知識ベースフィルタリングと協調フィルタリングモデルの違い

知識ベースフィルタリング(knowledge-based filtering model)

ユーザーの好みやニーズを、具体的な知識やルールに基づいて判断する。

  • 「SF小説が好きな人」には、「SFジャンルの小説」をおすすめする。
  • ECサイトで、「カメラ」を検索した人に、「カメラ関連のアクセサリー」をおすすめする。

協調フィルタリング(collaborative-based filtering model)

ユーザーの過去の行動履歴(評価、購入履歴など)に基づいて、他のユーザーの行動パターンを参考に、おすすめアイテムを予測する。

  • ある映画を「面白い」と評価したユーザーが多かった場合、その映画をまだ見ていないユーザーにおすすめする。
  • 音楽ストリーミングサービスで、特定のアーティストの曲をよく聞く人に、同じようなアーティストの曲をおすすめする。

参考

カテゴリカルクロスエントロピーとスパースカテゴリカルクロスエントロピーの違い

カテゴリカルクロスエントロピー (Categorical Crossentropy)

ラベルの形式がOne-hotエンコーディングされているときの分類問題のときに最適。

3つのクラス(猫、犬、鳥)を分類する場合、「犬」が正解なら、ラベルは [0, 1, 0] のようになる。

スパースカテゴリカルクロスエントロピー (Sparse Categorical Crossentropy)

正解ラベルの形式が整数値の分類問題のときに最適。

3つのクラス(猫、犬、鳥)を分類する場合、「犬」が正解なら、ラベルは 1 のようになる (クラスのインデックス)。

参考

DataflowでのRunInference API

モデルをエンドポイントにデプロイする代わりに、RunInference APIを使用することでDataflow内で推論可能になる。
レイテンシを最小限に抑えられる。

MirroredStrategyとMultiWorkerMirroredStrategyの違い

MirroredStrategy

1台のマシンの複数のGPUでの分散学習。

MultiWorkerMirroredStrategy

複数のマシンの複数のGPUでの分散学習。

参考

スキュー(Skew)とドリフト(Drift)

スキュー(Skew)

本番環境での特徴データの分布が、モデルのトレーニングに使用される特徴データの分布と異なる状態。

ドリフト(Drift)

本番環境において特徴データの分布が時間の経過とともに大きく変化する状態。

参考

機密データを分類するとき

  1. データを隔離(Quarantine)バケットに格納する
  2. Cloud DLPを使用してデータを検査する
  3. 結果を適切なバケット(機密バケット or 非機密バケット)に移動させる

Vertex AI PipelinesでのTensorFlow Extended(TFX)とKubeflow Pipelinesの使い分け

TensorFlow Extended(TFX)は、テラバイト単位の構造化データまたはテキストデータを処理するTensorFlowを使用する場合に適している。
Kubeflow Pipelinesは、それ以外のケースで使用する。

TPUにおけるbfloat16とfloat32の違い

TPUにおいて、bfloat16の演算はfloat32よりも高速に実行できる。
精度を落とした浮動小数点数を使用すると、モデルの精度を失わずに収束までの時間を短縮できる。

BigQueryのデータをTensorFlowで読み込む方法

BigQueryのデータをTensorFlowへ直接読み込むことが可能。
データ取り込みのボトルネックを最小限に抑えられる。

不均衡データセットの対応

ダウンサンプリング(Downsampling)とアップウェイト(Upweight)を行う。

ダウンサンプリング(Downsampling)

多数クラスのデータを減らして、少数クラスとの割合を緩和させる。

アップウェイト(Upweight)

少数クラスの学習時に重みを付与して、重要度を上げる。

参考

カテゴリカル変数をモデルに入力するとき

one-hotエンコーディングを行う。
カテゴリ間の大小関係を誤解させないようにすることができる。

もしカテゴリ変数を整数値に変換してしまうと、大小関係を学習してしまう恐れがある。

GPUとTPUのデバッグの容易さ

GPUはデバッグがしやすい。
TPUはトレーニングエラーやTPUエラーのデバッグが難しい。

BigQuery MLの自動特徴前処理

BigQuery MLは、CREATE MODELを使用すると自動前処理が実行される。
自動前処理は、欠損値の補完と特徴量の変換が行われる。

Tabnet

Tabnet(Tabular Attention Network)とは、Googleが開発した、テーブルデータ(表形式のデータ)を扱うための深層学習モデル。
モデルがどのように予測に至るのかを説明することが可能。

Reduction Server

WorkerとReducerの2つのノードで、計算を行う仕組み。
Workerは主にGPU上でモデルを実行し勾配を計算する。
ReducerはCPU上でWorkerの結果を集約する。

Vertex AI WorkbenchとColab Enterpriseの使い分け

Vertex AIには、ノートブック環境がVertex AI WorkbenchとColab Enterpriseの2つが用意されている。

Vertex AI Workbench

VMインスタンスを介してノートブック環境が提供されるので、インフラストラクチャを細かく管理することができる。

Colab Enterprise

インフラストラクチャの管理に時間を費やさない(マネージド コンピューティング)でノートブック環境を使用できる。
ノートブックを共有して共同編集が可能。

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?