-
Notifications
You must be signed in to change notification settings - Fork 0
MS_AzureMachineLearningAlgorithms
- 戻る(Azure Machine Learning)
- Azure Machine Learningチュートリアル
- Azure Machine Learningのアルゴリズム・モデル
- Azure Machine Learningのモデルのデプロイ
機械学習アルゴリズム チート シート(2021)の情報から。
補足(デザイナーのコンポーネント一覧): 以下に挙がっているのは、
Azure Machine Learning の
デザイナー(GUI でパイプラインを組む機能)で選べるコンポーネントである。
Python でコードを書く場合は scikit-learn / PyTorch などを直接使うため、
この一覧に縛られない。
「どの種類の問題にどのアルゴリズムを当てるか」の見取り図として読むとよい。
-
値を予測する
-
値の関係を推定して予測
-
質問の例:いくらですか、いくつですか?
-
アルゴリズム
-
高速フォレスト分位点回帰
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/fast-forest-quantile-regression分布を予測する(価格予測、飛行機遅延予測)
-
ポワソン回帰
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/poisson-regressionイベント数を予測(イベント=飲料水の販売個数を予測などを意味する)
-
線形回帰
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/linear-regression高速トレーニング、線形モデル
-
線形モデル、小さなデータセット(確率的に直線が当てはまりそうな領域で予測)
-
デシジョン フォレスト回帰
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/decision-forest-regression正確で速いトレーニング時間
-
ニューラル ネットワーク回帰
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/neural-network-regression正確で長いトレーニング時間
-
ブースト デシジョン ツリー回帰
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/boosted-decision-tree-regression正確で高速なトレーニング時間、
大きなメモリフットプリント
-
-
2 つのカテゴリ間の予測
-
はい・いいえ、真・偽などの
単純な 2 つの選択肢の質問に答える。 -
質問の例:これは A ですか B ですか?
-
アルゴリズム
-
2 クラス サポート ベクター マシン
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/two-class-support-vector-machine100 未満の機能、線形モデル
-
2 クラス平均化パーセプトロン
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/two-class-averaged-perceptron高速トレーニング、線形モデル
-
2 クラス デシジョン フォレスト
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/two-class-decision-forest正確で迅速なトレーニング
-
2 クラス ロジスティック回帰
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/two-class-logistic-regression高速トレーニング、線形モデル
-
2 クラス ブースト デシジョン ツリー
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/two-class-boosted-decision-tree正確で高速なトレーニング、
大容量のメモリフットプリント -
2 クラス ニューラル ネットワーク
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/two-class-neural-network正確で長いトレーニング時間
-
移行メモ(文字化け・脱字): 元ページには、
⾼(U+2F9E)・⾧(U+2FA7)・⼤(U+2F24)・⼩(U+2F09)・⽣(U+2F5D)といった
康熙部首ブロックの文字が混入していた(高・長・大・小・生の誤り)。
見た目は似ているが別の文字で検索に掛からないため、通常の漢字に修正した。
また「メモリフットプリン」の脱字も補った。
-
いくつかのカテゴリ間で予測
-
複数の可能な答えで複雑な質問に答える。
-
質問の例:これは A または B または C または D ですか?
-
アルゴリズム
-
マルチクラス ロジスティック回帰
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/multiclass-logistic-regression速いトレーニング時間、線形モデル
-
多クラス ニューラル ネットワーク
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/multiclass-neural-network精度、長いトレーニング時間
-
多クラス デシジョン フォレスト
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/multiclass-decision-forest正確で速いトレーニング時間
-
One-vs-All Multiclass
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/one-vs-all-multiclass2 クラス分類器に依存
-
One-vs-One Multiclass
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/one-vs-one-multiclass2 クラス分類器に依存、複雑さが大きく、不均衡なデータセットに対する感度が低い
-
多クラスのブースト デシジョン ツリー
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/multiclass-boosted-decision-treeノンパラメトリック、高速トレーニング時間、スケーラブル
-
-
構造を発見する
- 類似のデータポイントを直感的なグループに分離
- 質問の例:これはどのように構成されていますか?
-
アルゴリズム(教師なし学習)
-
異常な出来事を見つける
-
稀な・異常なデータポイントを識別して予測
-
質問の例:これは奇妙ですか?
-
アルゴリズム
-
1 クラス サポート ベクター マシン
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/one-class-support-vector-machine100 未満の機能、積極的な境界
-
PCA ベースの異常検出
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/pca-based-anomaly-detection速いトレーニング時間
-
移行メモ(URL の欠落): 「1 クラス サポート ベクター マシン」の URL が
元ページでは「...」のままだったため、
他の項目と同じ規則(component-reference/one-class-support-vector-machine)で補った。
-
推奨事項を生成する
-
誰かが何に興味を持つかを予測
-
質問の例:彼らは何に興味がありますか?
-
アルゴリズム
-
SVD レコメンダー
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/train-svd-recommender協調フィルタリング、次元削減による低コストでのパフォーマンスの向上
-
ワイドかつディープなレコメンダー
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/train-wide-and-deep-recommenderハイブリッドレコメンダー(協調フィルタリングとコンテンツベースのアプローチ)
-
-
テキストから情報を抽出する
-
テキストから高品質の情報を導き出す
-
質問の例:このテキストにはどのような情報がありますか?
-
アルゴリズム
-
潜在的ディリクレ配分法
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/latent-dirichlet-allocation教師なしトピック・モデリング、類似したグループ・テキスト
-
テキストからの N gram 特徴抽出
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/extract-n-gram-features-from-textフリーテキストの列から n-gram の辞書を作成
-
特徴ハッシュ
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/feature-hashingVowpalWabbit ライブラリを使用して
テキストデータを整数エンコードされたフィーチャに変換 -
テキストの前処理
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/preprocess-textテキストのクリーニング操作
(ストップワードの削除、大文字と小文字の正規化など) -
単語からベクターへの変換
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/convert-word-to-vectorレコメンダー、固有表現抽出、機械翻訳などの
NLP タスクで使用するために単語を値に変換
-
-
画像を分類する
-
CNN で画像を分類
-
質問の例:この画像は何を表していますか?
-
アルゴリズム
-
ResNet
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/resnetCNN の代表的なモデル
-
DenseNet
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/densenetResNet より深い層の実現を目指したモデル
-
最適な機械学習アルゴリズムの選択は
- データの性質と、
- データで達成したい目標
の両方によって決定される。
クラスタリングを選択する。
-
2値分類
-
3値以上の分類:マルチクラス分類のアルゴリズム・モデルを理論別の分類で選定
補足(「正例が少ないケース」の判断): 不正検知や設備故障のように
正例が全体の数 % 以下しかない場合、2 クラス分類で学習すると
「常に負例と答える」モデルでも正解率が高くなってしまう。
このため異常検出(1 クラス学習)に切り替える、というのが本項の趣旨である。
2 クラス分類のまま扱う場合は、正解率ではなく
適合率・再現率で評価する必要がある。
回帰のアルゴリズム・モデルを理論別の分類で選定
RNN、LSTM など(DNET_NeuralNetwork.md)
- 混同行列
- ROC 曲線
- 適合率 - 再現率曲線
- 累積ゲイン曲線
- リフト曲線
- 較正曲線
- 残差
- 予測と True
移行メモ(未記述): 元ページは本節が「...」のみで書かれていなかった。
画像モデルでは、分類なら上記の分類メトリック、
物体検出・インスタンス セグメンテーションなら
**mAP(mean Average Precision)**や
**IoU(Intersection over Union)**が使われる。
著者による本文が加筆された場合は置き換えること。
信頼できる AI を実現するには、
「モデルがその予測にデータセットのどの特徴を使用したか」
を調査することが重要。
(モデル解釈・説明を参照)
-
解釈性
- モデルの改善方法を知りたい
- ステークホルダーへモデル自体を説明
-
説明性
- 説明可能な AI(
DNET_AIProjectManagement.md) - ユーザへモデルの出力した結果の根拠を説明したいケース
- 説明可能な AI(
-
大域的
学習したデータセット全体を使ってモデルを説明する。 -
局所的
1つのデータを使った予測結果でモデルを説明する。
-
解釈可能なモデル(Glass Box AI Model)
-
主に統計的機械学習のモデル(
DNET_MachineLearning.md)- シンプルな「統計モデル」
- 階層的な木構造の確率的な「生成モデル」
-
数理最適化(
DNET_MachineLearning.md)も、簡単な関数の近似なら解釈可能か。
-
-
ブラック・ボックスなモデル(Black Box AI Model)
- 深層学習で使用される DNN(Deep Neural Network)(
DNET_NeuralNetwork.md) - 複数の決定木を使用するモデル(ランダムフォレスト・勾配ブースティング木)(
DNET_MachineLearning.md)
- 深層学習で使用される DNN(Deep Neural Network)(
-
トレードオフ
一般的に、精度と解釈性・説明性はトレードオフ関係にある。- 解釈可能なモデルを採用するなら、精度を上げる。
- ブラック・ボックスなモデルを採用するなら、解釈性・説明性を上げる。
-
参考:機械学習(machine learning) - 開発基盤部会 Wiki > 詳細 > 理論(
DNET_MachineLearning.md)
InterpretML と言う、機械学習の解釈を説明可能
とするための python ライブラリ・フレームワーク
-
「高精度」を実現した「解釈可能なモデル」
Explainable Boosting Machine(EBM) -
「ブラック・ボックスなモデル」の局所的な説明を行う。
-
ある入力 x に対しモデルが出力 y とした時、予測の根拠を説明として提示する。
-
入力・出力のみに依存するため、あらゆるモデルに対応する。
-
また、モデルの誤差分析も可能(誤差の大きいコーホートを特定)
- 決定木で見る
- ヒートマップで見る
-
ライブラリ
- SHAP
- LIME
- , etc.
-
※ コーホート:ココでは、データの集団の意味。
補足(SHAP と LIME の違い): どちらも
「入力を少しずつ変えて出力の変化を見る」ことでブラック ボックスを説明する手法だが、
- LIME … 説明したい 1 点の周りだけを線形モデルで近似する(速いが不安定)
- SHAP … 協力ゲーム理論の Shapley 値に基づき、
各特徴の寄与を一貫性のある形で配分する(理論的な裏付けがあるが重い)という違いがある。
Azure Machine Learning の解釈可能性機能も、内部では SHAP を利用している。
-
Microsoft/InterpretMLの中身 - 勉強の記録
https://tmitani-tky.hatenablog.com/entry/2019/07/06/233837 -
MicrosoftのInterpretMLが便利だった - ざこぷろのメモ
https://zakopilo.hatenablog.jp/entry/2020/09/19/181719 -
AutoML & InterpretML (2019/11/27 Deep Learning Lab 講演資料)
https://www.slideshare.net/keitaonabuta/automl-interpretml-20191127-deep-learning-lab -
【記事更新】私のブックマーク
「機械学習における解釈性(Interpretability in Machine Learning)」
人工知能学会 (The Japanese Society for Artificial Intelligence)
https://www.ai-gakkai.or.jp/resource/my-bookmark/my-bookmark_vol33-no3/
-
Azure Machine Learning ハンズオン モデル解釈
https://www.youtube.com/watch?v=ljOxHenrOqg-
Module
- #1 環境準備
- #2 解釈性の高いモデルを構築する
- #3 BlackBox モデルを説明する
-
Resources
-
-
機械学習アルゴリズム チート シート - デザイナー
https://docs.microsoft.com/ja-jp/azure/machine-learning/algorithm-cheat-sheet -
機械学習アルゴリズムの選択方法
https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-select-algorithms -
機械学習のアルゴリズム
(コンポーネント リファレンス)-
回帰
-
クラスタリング
- K-Means Clustering (K-Means クラスタリング)
https://docs.microsoft.com/ja-jp/azure/machine-learning/component-reference/k-means-clustering - ...
- K-Means Clustering (K-Means クラスタリング)
-
分類
-
異常検出
-
レコメンダー
-
テキスト分析
-
コンピューター・ビジョン
-
-
AutoML 実験結果の評価
https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-understand-automated-ml -
自動 ML でのモデル説明 (プレビュー)
https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-machine-learning-interpretability-automl -
Python を使用したモデルの解釈と説明 (プレビュー)
https://docs.microsoft.com/ja-jp/azure/machine-learning/how-to-machine-learning-interpretability-aml
Tags: クラウド, BI/AI, Azure
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。