-
Notifications
You must be signed in to change notification settings - Fork 0
DNET_MachineLearning
- 戻る(人工知能(AI) / 統計解析 / ベイズ統計)
- 機械学習(machine learning)
- 深層学習(deep learning)
- 強化学習(Reinforcement Learning)
- 生成系AI(Generative AI)
機械学習(machine learning)について纏める。
-
第2次人工知能ブーム(人工知能(AI)の該当節を参照)での人工知能
-
人が、その機械は何を学習するか?というのを予め定義する。
-
注目スべきデータ(特徴量)の選定タスクは人間が担う。
-
「訓練データ」として知られる
サンプルデータに基づいて数学モデルを構築する。 -
学習の方向性を人が思い通りにコントロールがし易い。
-
-
明示的な指示を用いることなく、
- パターン(統計モデル)と
- 推論(アルゴリズム)に
依存して、特定の課題を効率的に実行する
-
アーサー・サミュエル
「明示的にプログラムしなくても学習する能力を、コンピュータに与える研究分野」 -
トム・ミッチェル
タスクT(推論)とパフォーマンス測定P(損失関数と評価指標)に関連する経験E(学習データ)から学習する
以下はいずれも 機械学習の理論の該当節を参照。
- 情報理論
- 統計的機械学習
- 数理最適化
- 独立同時分布仮定
-
注目スべきデータ、機械学習的に言った説明変数
-
特定の概念を特徴づける変数、問題の解決に必要な本質的な変数
-
学習データにどのような特徴があるかを数値化したもの。
-
モデルを y = f(x) とすると、x が説明変数で y が目的変数
-
非構造化データでは特徴量(説明変数)はベクトル化される。
-
機械学習では入力された学習データから特徴量と呼ばれる数値を抽出する。
- 特徴量の抽出は人間が設計し実装する必要がある。
- 抽出した特徴量を元に機械はパターン・経験則をモデルを使って学習する。
である。
-
-
この特徴量を発見できれば、
- あらゆる問題の解決につながったり、
- パターン認識精度の向上や、
- フレーム問題(人工知能(AI)の該当節を参照)の解決につながったりする
と期待されている。
重みとも呼ばれるモデルの学習実行後に獲得される値。
-
各アルゴリズムに付随して、アルゴリズムの挙動を制御するための値。
-
学習実行前に設定した値によって学習実行後のパラメタが変わってくる。
-
-
例えばロジスティック回帰(データ解析の該当節を参照)モデルを学習する場合は
regularization rate というハイパーパラメタを使ってモデルのバイアスを軽減できる。 -
ハイパーパラメタはモデル学習のパフォーマンス、モデルの学習時間に強く影響する。
-
一般的には複数の候補の組み合わせを試すことで適切な設定値を探す。
-
-
深層学習におけるハイパーパラメタの例(ニューラルネットワーク(学習)の該当節を参照)
- 枠組みをあらかじめ決めてパラメタだけを学習するモデル。
- 機械学習・深層学習のモデルは基本的にパラメトリック・モデル
- 関数の枠組みそのものを推定するモデル。
- 決定木やカーネル関数を使用するモデルがノンパラメトリック・モデル
- 母集団に関する事前の仮定を置かずにデータの特性をより柔軟に関数形を推定する。
- データに潜在する複雑な構造や関係性をより良く捉え過剰適合のリスクが低くなる。
- パラメトリックモデルよりも多くのデータが必要
-
モデルを作成するアルゴリズム
モデルを最適化する方法 -
アルゴリズムはモデルに含まれることがある。
分離した方が系統的にモデリングを理解できる。
- 複雑なものの認識や、異常値の検出
- たくさんの情報の中から必要なものを探す
- 予測、フォーキャスト(予想や見込み)、意思決定支援
- 言葉を使ったコミュニケーション
- 新しい体験を作り出したい場合
- データの中にあるバイアス(を、そのまま学習)
- プリシジョンとリコール(高度午前 - 技術要素 - データベースの該当節を参照)のトレードオフがある(分類問題)。
- コールド・スタートによる誤検知(SC:対策技術 - 防御・侵入検知の該当節を参照)がある(協調フィルタリング、クロス集計分析の該当節を参照)。
- モデルの検証のためのフィードバックループが必要。
- Exploration(冒険、探索)とExploitation(搾取、利用)
学習に使用したデータだけではなく、新たなデータに対する予測性能。
- モデルの未知のデータへのあてはまりの良さ。
- 汎化性能は学習データとは別に収集された検証データでの性能を図ることで評価。
(学習不足、アンダーフィッティング)
-
モデルの表現力が低いため、表現力の高いモデルを利用する。
-
予測誤差を生む要因のバリアンス(Variance)対策の正則化(統計解析の該当節を参照)し過ぎで性能が出ない事も。
-
参考
- 機械学習で「分からん!」となりがちな正則化の図を分かりやすく解説 - Qiita
https://qiita.com/c60evaporator/items/784f0640004be4eefc51
- 機械学習で「分からん!」となりがちな正則化の図を分かりやすく解説 - Qiita
(過剰適合、過適合、オーバーフィッティング)
-
汎化能力の不足に起因する汎化できていない状態を指す(特化し過ぎている)。
- 訓練誤差を最小化(特化)
- 汎化誤差を最小化(汎化)
-
統計学において、非常に複雑な非線形性の高いモデルを用いた場合、
データが元々持っている誤差や不確実性と言った、本来説明ができない部分まで
フィットするような誤ったモデルが構築されてしまう場合がある。 -
機械学習において、学習精度がある一定の精度まで向上すると、
以降は未知のデータへの対応力を失ってしまう現象。 -
対策
- 学習データの量を増やす。
- 不要な変数を削除し表現力を抑止。
- 正則化法を利用して表現力を抑止。
あるデータを使って訓練した機械学習モデルにおいて、
その訓練データ(入力データおよび教師ラベル)の数値の
-
内挿(Interpolation)
- 範囲内で出力を求めることを指す。
- 最も一般的で容易に適用できるものは、一次関数(直線)による内挿(直線内挿)。
-
外挿(Extrapolation)
- 範囲外で出力を求めることを指す。
- 外挿の信頼性はその予測信頼区間によって表示される。
- 予測信頼区間は理論的にとりえない値を含む場合があり、
- 外挿結果をそのまま用いることは誤った結果を導く可能性がある。
-
バイアス(Bias)
思い込みは過学習なのか未学習なのか。ココでは後者らしい。- モデルの表現力不足、未学習のモデルによって生じる。
- 例えば、3次関数に従ったデータを線形回帰した時(未学習)。
- 表現力の低いモデルを利用しているため意味のあるパターンを拾いきれていない。
-
バリアンス(Variance)
-
ノイズ(Noise)
- データに混入している本質的でない情報。
- 本質とノイズの情報は混ざっており区別できない。
- 機械学習の手法では取り除くことができない。
※ より専門的なプロセスについては、データマイニング(DM)- CRISP-DMを参照。
良いデータの準備が性能発揮の生命線となる。
-
探索的データ解析(EDA)
データの特徴を探求し、構造を理解する。 -
前処理
前処理の良し悪しも性能を大きく左右する。-
データセットを
- 検査(補完や除去)
- 拡大、次元削減、標準化・正規化(特徴量の選択とエンジニアリング)
-
非構造化データは数値化される(通常はスカラではなくベクトル、テンソル)。
例えば、テキストデータのベクトル化(言語処理(AI)の該当節を参照)には
色々な手法があり永遠のテーマとなっている。
-
-
データの分割(データマイニング(DM)- CRISP-DMの該当節を参照)
- 訓練データ:6
- 検証データ:2
- テストデータ:2
- 利用
- 転移学習(深層学習のテクニックの該当節を参照)
- 追加学習
-
優れたアルゴリズムを用いても誤った教師データで学習すると
正しく学習できず精度の高い学習モデルが作れない。 -
アノテーションとは、学習のため教師データを作成する(タグを付与する)こと。
-
データに付与するタグを標準化、均一化しないと誤った推論結果となる。
-
労働集約的
- 外注(アウトソーシング)するかしないか?
- ただし、クォリティ・アシュアランスには要注意
-
アノテーションの質を高める方法
-
コストが掛かっても正しくアノテーション
- プロによるアノテーション
- 高精度なアノテーション
- 多数決による品質の管理方法
・実際は能力に差があるという前提で、アノテーターの能力を考慮。
・複数のアノテーターが同じ能力を持っていると仮定した場合、
良い品質を得るために沢山の人が必要となる(コスト)。
-
異なる種類のデータ形式よるタグ付け
- 画像データを用いる
- テキストデータを用いる
- 構造化データを用いる
-
データの意味は普遍的ではなく目的によって変わる。
→ ターゲット層に適したバイアス(推し)をかけたアノテーション
-
本番運用しながら自然に追加学習できる仕組み
- AIのアウトプットを全て人間がチェックし、間違っていたものを修正して追加学習データとして利用
- AIのアウトプットの信頼度(Confident)の値が低いデータのみを人間がチェックして追加学習。
-
モデルの汎化性能を向上させるため個々に学習した複数のモデルを融合させる方法
-
「複数のモデルによる各予測結果」をアンサンブル(≒組合せ)して「最終的な予測結果」を得る。
-
理論立ては"まだ"だが、経験的に過学習を防ぎ、汎化性能を向上させることが知られている。
-
バギング
複数の弱学習器を並列作成し予測を組み合わせ、各予測を平均や多数決で最終予測結果を得る。-
複数のモデルを学習し
平均(回帰の場合)または多数決(分類の場合)することによって
過学習の傾向が打ち消しあって最終的に丁度、良い決定境界をつくる。 -
ブートストラップ(サンプリング)
データ全体の中から重複を許して train データを選ぶ手法。
ブートストラップによって train データをつくる。
-
-
ブースティング
弱学習器を連続的に学習(≒何度も訂正)、順次作成し、精度を向上させる手法。- 学習器の精度を向上するために誤分類データに注意を払って次の学習を行う。
- 一つのモデルの間違いをうまく訂正するようなモデルを次々につくる。
- 大元のモデルを最適化するための補助的なモデルを逐次的に学習させる。
- バギングより高い精度が見込めるが、学習に時間がかかる。
-
スタッキング(ブレンディング)
-
ブレンディング
・バギングは平均 / 投票でアンサンブル
・ブレンディングは統計 / 機械学習モデル(一般的には線形モデル)でアンサンブル -
スタッキング
3層以上のレベル数でブレンディング
・いくつかのFold(グループ)にデータを分けて、それぞれを各モデルで予測
・それぞれの予測値を新たな特徴量とする。
・何回か繰り返して最終アウトプット算出。
-
-
-
決定木分析におけるアンサンブル学習(統計解析の該当節を参照)
色々なデータを使う場合、色々なモデルが必要になる。
-
統合
一つの機械学習のモデルに
色々なデータを入れて予測値を出す。 -
分割
人間が非常に理解し易くなる。
-
専門分野の知識を取り込み、分野の専門家のように振る舞うプログラム
-
歴史
DENDRAL → Mycin → Cycプロジェクト- エドワード・ファイゲンバウム、DENDRAL、1960年代
未知の有機化合物を特定する - スタンフォード大学、マイシン(Mycin)1970年代
血液中のバクテリアの診断支援 - ダグラス・レナート、Cycプロジェクト 1984年〜
一般常識をコンピュータに取り込む。30年以上経った今も継続している。
- エドワード・ファイゲンバウム、DENDRAL、1960年代
-
知識ベース
-
専門知識が豊富であればあるほど暗黙的で矛盾があり、知識ベースの保守が困難に。
-
一般常識については、そもそも暗黙的で(明文化されていない)ことが明らかに。
-
知識(概念体系)を扱うための方法論(意味ネットワークやオントロジー)の研究が活性化
- 意味ネットワーク(semantic network):
関係を定義可能なUMLクラス図の様な
・is-a:推移率が成立する(継承とも)。
・part-of:推移率が成立するとは限らない、最低5つのpart-ofがある(属性とも)。 - オントロジー(ontology):概念化の明示的な仕様
上記と同様の概念体系を言語状に記述可能なフォーマット
・ヘビーウェイト・オントロジー:共有のため哲学的な考察が必要で個別に定義しない
・ライトウェイト・オントロジー:正当性について深い考察は行わない
(ウェブ マイニング、ビジネス インテリジェンス(BI)の該当節を参照)
- 意味ネットワーク(semantic network):
-
-
エキスパート・システムの例
SC:法制度 - 内部統制に関する法制度の該当節も参照。
-
Li et al
-
概要
- 24個の会計情報を使ったロジスティック回帰モデル
- サポートベクターマシンで不正会計確率を推定
- 一度スコアを求めるかどうかというのが違いになる。
-
特徴
- 手を加えていない会計情報そのものと
不正・非不正の情報で構成される大量データを
訓練データとテストデータに分け訓練データでモデルを作り
テストデータでその検知能力を調べるという一般的な研究
・訓練データ:1991年から2002年までのデータ
・テストデータ:2003年から2005年までのデータ -
アンダーサンプリングを行っている。
訓練データの1と0(不正と非不正)が同数になるようにサンプリング
- 手を加えていない会計情報そのものと
-
実務家の方法を取り入れることで
先行研究よりも正判別確率の高いモデルを構築
(東海林・中村・尾崎(2020))- 不正会計を不正手段の種類別に認識
- 貸借対照表に不正会計の歪みが蓄積されることを利用して
その歪みから得られる違和感により不正会計を経験的に認知
-
-
正判別率の上げかた。
- 歪みと違和感を変数化して特徴量にした。
- 不正手段を売上過大計上に限定した。
- 目的変数を不正群・非不正群ではなく
非不正群から利益調整群を除いた1,0データとした。
ベイズ統計の該当節を参照。
| 分類1 | 分類2 | 用途 | アルゴリズム |
|---|---|---|---|
| 教師あり学習 | 回帰 | ・売上予測 ・人口予測 ・需要予測 |
・線形回帰 ・非線形回帰 ・ニューラルネットワーク回帰 |
| 分類 | ・画像分類 ・故障診断 ・顧客維持 |
・ロジスティック回帰 ・サポートベクターマシン ・ランダムフォレスト |
|
| 教師なし学習 | クラスタリング | ・レコメンド ・顧客セグメンテーション ・ターゲットマーケッティング |
・k-means |
| 次元削減 | ・特徴量エンジニアリング | ・主成分分析 | |
| 強化学習 | ・ゲーム ・広告 ・自動運転 ・リアルタイム判断 |
・Q学習 ・モンテカルロ法 |
移行メモ: 元表の縦セル結合(
|~|)は GitHub Markdown で表現できないため、
空セルとした。アルゴリズム欄の各項目は 統計解析
の該当節にリンクしていた。
- コンピュータとその周辺の技術・情報が発達してきたため出てきた概念
- 互いに独立なものではなく、高度に組合せて使用することも可能。
(supervised learning)
-
教科書を使った勉強のように、
「結果と予測すべき答え」(訓練データ)が与えられ、
それ(≒教師)に至るためのモデルを構築する学習手法 -
「予測すべき答」は
- ラベル(タグ)とも呼ばれる
- 人間の専門家が訓練例にラベル付け(タグ付け)して提供
- このラベル付け(タグ付け)の作業をアノテーションとも呼ぶ。
-
未知のデータ「x」にそれを適用して、予言 y = f(x) を与えることができる。
-
予言 y と、出力 ȳ の誤差が小さくなるように学習が進められる。
-
異常・不正の検出(AIの活用例の該当節を参照)など、
正例が少ないケースでは適合しない(若しくは工夫が必要)
(unsupervised learning)
-
データ自体に構造・特徴があり、そのデータを分類・識別する。
-
与えられたデータセット(訓練データ)の中に予測すべき正解が与えられないまま、
データの背後に存在する本質的な構造かをデータ同士の関係から導き出すという学習 -
評価規範Cが与えられている。評価規範Cを最適化するように学習が進められる。
-
自分で学習のための「教師」データを作り出す自己教師型を教師なし学習に分類することもある。
-
判断ではなく、データマイニング(ビジネス インテリジェンス(BI)の該当節を参照)などグルーピングを行う、
クラスタ分析、主成分分析、対応分析などは教師なし学習 -
教師あり学習と比べると、
- 結果の解釈が難しく、分析者の主観的な解釈が必要となる。
- 異常・不正の検出など、正例が少ないケースにも適合する。
(semi-supervised learning)
-
一部のデータにのみ出力の正解が付与されたデータを用いる手法。
- ラベルありの例とラベルなしの例を両方扱える。
- すべてのデータにラベルを付けなくても良いので、効果的な学習が可能。
-
- 主成分分析などの教師なし学習によって事前学習(深層学習のテクニックの該当節を参照)を行い、教師あり学習の精度向上を図る。
- 教師ありデータを使ってモデルを作り、それを使って教師なしデータに対する推論の結果を取得
精度の高いデータを正解ラベルとして採用し、教師ありデータとして使ってモデルを再学習する。
-
分類問題(識別モデルと生成モデル)(機械学習の理論の該当節を参照)で使われる。
(回帰分析の半教師あり学習で同じようなメリットを得るのは難しい)- 説明変数の事前分布が明確になる
- クラス間の境界が明確になる (クラス分類のみ)
- モデルの安定性が向上する
- モデルの適用範囲が広がる
(self-supervised Learning)
-
ラベル無しデータを使う教師なし学習の一種
- 自分で学習のための「教師」データを作り出す。
- 「常識」などの抽象的な概念を獲得するための重要な手法
-
データ自身に隠されている構造を読み取り、
ターゲットを予測する学習を行う。- 次単語(予測)
- マスク単語(予測)
self-xxxxxxx Learning と言うアルゴリズムはコレの場合が多い。
- ≒モデルの種類。
- 利用:recall、想起、適用
- 教師データに対するテストデータに適用
- 「知りたい情報」の設定に依存して多様。
- 深層学習では、ほとんどのことができる。
-
ある事実を手掛かりにして、推し量って決めること。
-
プリミティブ?
-
ベイズ云々(ベイズ統計の該当節を参照)
- ベイジアンフィルタ
- ベイズモデル
- ベイジアンネットワーク
- 統計的機械学習手法の一つ
- 説明可能性が高い機械学習手法
- ベイジアンネットワークを自動的に構成
・グラフ構造の探索
・条件付き確率表の推定
-
連続的な応答を予測
-
教師あり学習を用いる
-
深層学習を使った回帰もある。
-
種類
-
線形回帰
直線で予測。- 連続する目的変数を複数の説明変数を用いて予測、説明する
- 1つ以上の独立した説明変数を使用し、線形方程式の係数を推定
-
非線形回帰
曲線で予測。- 線形パラメタとの関係を適切にモデル化できない場合
- 連続する目的変数と1つ以上の説明変数との間の
非線形な関係を表す方程式を用いて予測、説明する。 - パラメトリック非線形回帰
目的変数(単変量または多変量)を
非線形パラメタと1つ以上の説明変数の
組み合わせとして関数化して予測、説明する。 - ノンパラメトリック非線形回帰
機械学習の手法が使用される。
-
正則化を施した線形回帰(統計解析の該当節を参照)
- Ridge回帰
- Lasso回帰
- Elastic Net回帰
-
ステップワイズ回帰
- 精度の高いモデルを選択する回帰分析の手法
- 自動的に説明変数を1つずつ追加、削除
-
複数の決定木を使用するモデル
(この場合は分類木ではなく回帰木か) -
時系列データを対象とする回帰モデル
- 自己回帰(AR)モデル:単変量の時系列データを対象とする回帰モデル
- ベクトル自己回帰(VAR)モデル:ARモデルを多変量に拡張したモデル
-
-
離散的な応答を予測
-
教師あり学習を用いる
-
深層学習を使った分類もある
(物体識別、画像処理とコンピュータビジョン(AI)の該当節を参照)。 -
種類
-
最も一般的な教師なし学習手法
-
探索的データ分析により、データ内の隠れたパターンやグループ構造を発見する。
-
種類(統計解析の該当節を参照)
- ウォード法
- k平均法(k-means clustering)
- トピックモデル
- 混合ガウスモデル (GMM)
- 隠れマルコフモデル (HMM)
- 自己組織化マップ
- ファジィ c 平均クラスタリング
-
パターン認識など。
-
物事をはっきりと見分け、判断すること。
-
主体あるいは主観が対象を明確に把握すること。
-
Googleの猫:self-taught learning(自己教示学習)
≠ self-supervised Learning(自己教師あり学習)
- GANとかの生成モデル?
- 物事を新しく造り出すこと。
- 物質や個体が、系全体を俯瞰する能力を持たないのに関わらず、
個々の自律的な振る舞いの結果として、秩序を持つ大きな構造を作り出す現象 - 行動規範型ロボット的な自己修復機能をもった自己組織化ロボットなどへの応用
-
深層強化学習(強化学習(Reinforcement Learning)の該当節を参照)
-
その他
-
トランスダクション(トランスダクティブ推論)
観測された具体的な(訓練)例から
具体的かつ固定の(テスト)例の
新たな出力を予測しようとする。 -
マルチタスク学習
関連する複数の問題について同時に学習させ、
主要な問題の予測精度を向上させる。
-
-
どちらも
- データを使って問題を解決する
- 数学的な手法を使って質問に答えることに関心がある
-
ゴールと貢献の仕方が違う。
- 分析において説明力を重視するのか?
- 予測において精度を重視するのか?
-
SVMやDNNなどの精度が高いが説明しにくいモデルの使用を避け
代わりに表現力が乏しいが説明がし易いモデルを使用することがある。
-
統計学か数学の一環
-
データを“説明”すること(推定と推論)を強調
- 限られた標本から調査したい母集団全体の特徴を推測する。
- データを(学習データと検証データに)分割しない。
- 過学習の可能性を気にしない。が、疑似相関は気にする。
-
説明変数の数が大きくなると多変量解析を使った変数選択手法では多重検定のリスクが大きくなる。
-
コンピュータ・サイエンスの一環
-
データから“予測”することを強調
- 変数間の関係性やルールなどを機械学習による予測モデルに学習させ予測する。
- データを(学習データと検証データに)分割する。
- 過学習の可能性を気にする。が、疑似相関は気にしない。
-
説明変数の数が多くなる場合は、機械学習を含む解析が使える。
予測モデルの使い分け。
-
モデルとデータ
-
モデル
- モデルとデータ全体を解釈したい。
-
データ
-
量
・データのサンプルサイズが大きくない。
・トレーニングデータを持っていない。 -
質
・不確実性やランダム性がある。
・信号対ノイズ比(ノイズに対するシグナルの割合)が大きくない。
-
-
-
目的
- 不確実性や予測変数の影響度を調べる必要がある。
- 少ない数の変数の影響度を切り離して評価したい。
-
モデルとデータ
-
モデル
推論の精度に興味があり、モデルへの興味は薄い。- 複雑な構造の内部パラメタに大量のデータの情報を反映できる。
- 十分なデータを使用できれば、精度な予測・分析ができる可能性が高い。
- トレードオフとしてモデル構造が複雑で解釈性が犠牲になりがち。
-
データ
-
量
大量のデータを使用して学習することが期待されている。
・データのサンプルサイズが大きい。
・膨大なトレーニングデータで学習できる。 -
質
・強い不確実性やランダム性を持たない。
・信号対ノイズ比(ノイズに対するシグナルの割合)が大きい。
-
-
-
目的
- 不確実性の推測や選択した予測変数の影響度には興味が無い。
- 予測がゴールで少ない数の変数の影響は問題ではない。
今あるデータの特徴量からドメイン知識などを生かして
- 特徴量選択:特徴量を絞ったり
- 特徴量エンジニアリング:新しくデータの特徴量を作成したり
することで、予測性能、すなわち汎化性能を向上させる作業。
いずれも データマイニング(DM)- CRISP-DMの該当節を参照。
-
データの理解
- データの調査(相関関係)
- データの品質の検証(欠損値)
-
データの準備
- データのクリーニング(欠損値)
- データ統合(フォーマット変換)
-
記録されなかった値を含むデータの削除や補完
-
Pythonのライブラリで処理可能
(いずれも データマイニング(DM)- Pythonの該当節を参照)。- 欠損率の計算と確認
- データのクリーニング(削除や補完)
-
ピアソンの積率相関係数
相関係数(2つの量的変数間の直線的関連の程度を表す係数) -
スピアマンの順位相関係数
各変量を順位に変換してピアソンの積率相関係数を求めたもの
-
フィルター法(Filter Method)
- 特徴量間の統計的な関係を評価して、それらをランキングする方法。
- 特徴量の個々の特性(分散、相関、情報量など)を計算し特徴量を選択。
- 散布図行列、相関行列のヒートマップ、相関係数、情報利得、分散分析、相互情報量など。
- 相関係数を考慮した場合、多重共線性(マルチコ)対策になる。
- モデルの学習が不要なので計算効率が高く、計算コストが低い。
-
ラッパー法(Wrapper Method)
-
モデルで予測をした誤差を評価し最適な説明変数の部分集合を決める。
-
ステップワイズ法(変数増減法:変数増加法、変数減少法)
・各ステップで、特徴量を追加した後にモデルの性能を評価し、最も性能が改善される特徴量を選択。
・指定された基準(例:AIC、BIC、交差検証スコアなど)が満たされるまでステップを繰り返す。-
変数増加法
・モデルに含める特徴量を一つずつ増やしていく。
・特徴量が1つの状態から、一つずつ特徴量をモデルに加えていく。 -
変数減少法
・モデルに含める特徴量を一つずつ減らしていく。
・特徴量がすべて含まれている状態から、一つずつ特徴量を削除していく。
-
-
-
埋め込み法(Embedded Method)
- アルゴリズムに特徴量選択が組み込まれているモデルの学習で特徴量選択
- 回帰係数(重み)から重要度を算出したり、Lasso回帰で次元削減したり。
- その他、決定木などのモデルの「感度分析」に書かれている項目を使用することがある。
-
One-Hotエンコーディング
-
多クラスのカテゴリを0・1ラベルで表す特徴量として展開する。
-
One-Hotエンコーディング結果のデータをOne-Hotベクトルと言う。
-
Dummyコーディング、Effectコーディングがある。
-
Dummyコーディングでは最初の列を削除
- オール 0 → 参照カテゴリ
- 多重共線性(マルチコ)を回避
-
Effectコーディングでは最初の列を削除
- オール 0 → 欠損データ
- オール -1 → 参照カテゴリ
- 多重共線性(マルチコ)を回避、欠損データ対応
-
Pythonのライブラリ(データマイニング(DM)- Pythonの該当節を参照)で処理可能。
-
-
Featureハッシング
- One-Hotエンコーディングは高次になることで不安定になる。
- 説明変数をハッシュ値のビットフラグ的に表現し削減する。
- 衝突が起きる、直感的に理解できなくなる、などの問題がある。
-
Frequencyエンコーディング
- 各カテゴリ変数値の出現確率でエンコーディング
- Ranked frequencyエンコーディングは出現順位でエンコーディング
- 次元を増さずにエンコーディングでき線形・非線形どちらでも有効
- 外れ値に敏感だがRanked frequencyでは外れ値の影響も小さくなる。
-
Targetエンコーディング
- 各カテゴリ変数値の目的変数の情報(平均値)を使ってエンコーディングする方法
- リークを起こす可能性(訓練データで高い評価、テスト・データで低い評価)
-
ラベル・エンコーディング(Ordinalエンコーディング)
- カテゴリに任意の(連番の)数値を割り当てる。
- 数値間の差が一定なのでカテゴリ間の差が一定でないものに対して有効でない。
- ラベル間の数値の大小関係を学んでしまうアルゴリズムでは使えない。
-
その他
- ビンカウンティング
- Nonエンコーディング
特徴量生成のパターン(数値変換)
-
単一変数
-
二値化
境目(閾値)を設け、"0"と"1"に分ける。 -
離散化
ある連続した値を不連続な(階級)値に分割する。 -
分位化
階級ごとの件数に大きな差がある場合、
データの分布に応じて階級を決める。 -
べき乗
指数が実数全体となる計算 -
スケール変換
- 特徴量がおおよそ同じスケール(寸法、尺度)になるように変換する手法
- StandardScaler、Normalizer、MinMaxScaler等の手法がある。
・StandardScaler:特徴量の平均が0、分散が1、になるようにスケール変換
・Normalizer:ノルムが1になるようにスケール変換(デフォルトでは、L2正規化)
・MinMaxScaler:特徴量の値が一定の範囲(0〜1 or -1〜1)に収まるようにスケール変換
-
対数変換
目的変数Yを目的変数log(Y) に変換する。 -
Box-Cox変換
- 指定の分布(正規分布)に近づける手法
- 0や負値を扱えない点に注意
-
ウィンザー化
- 一定の範囲外のデータを除外する手法
- 外れ値処理などに適用可能
-
ロジット変換
- なにかしらの比例xを、オッズの自然対数に変換する。
- (確率値などの)0〜1の間の数を、正負両方向に無限大の値に変換
-
Yeo-Johnson変換
-
数学関数による変換
- log関数
- exp関数
- sin関数
- cos関数
-
-
複数変数
-
四則演算(交互作用項・非線形特徴量)
既存の説明変数から四則演算で説明変数を作成、例えば、- 購入金額と購入件数から購入単価(1回の購入時に1人の顧客が支払う総額)を作る。
- 多重共線性(マルチコ)対策で「x人人口」と「総人口」を組み合わせ「x人密度」を作る。
-
クラスタ分析、主成分分析(統計解析の該当節を参照)
- 主成分分析
あまりにも特徴量の多い高次元データは、
主成分分析で複数の説明変数を圧縮して少なくする。 - クラスタ分析
クラスタリングで新たなカテゴリの説明変数を追加し、
コレを利用することで精度が上がるコトがある。
- 主成分分析
-
特異値分解
-
移行メモ: 元ページでは「Yeo-Johnson変換」「特異値分解」の説明が
「...」のまま書きかけになっている。
-
アンサンブル学習だが、新たな特徴量を作る方法でもある。
-
あるモデル(1段目のモデル)を使った予測値を特徴量として、
さらに別のモデル(2段目のモデル)を作るようなアンサンブル学習の手法
-
アンダーサンプリング
少数派のデータに合わせて多数派のデータを削除する。 -
オーバーサンプリング
少数派のデータを多数派のデータに合わせて追加する(SMOTE)。
いずれも データマイニング(DM)- CRISP-DMの該当節を参照。
- モデルの評価
- 精度の評価
- 精度と説明力
いずれも データマイニング(DM)- Pythonの該当節を参照。
- グリッド・サーチ
- ランダム・サーチ
- 多目的ベイズ最適化
- 特徴選択とエンジニアリング
(Machine Learning Operations)
-
機械学習(machine learning)のMLと、DevOpsとを組み合わせた造語。
-
機械学習、深層学習の開発・運用サイクルを円滑化する管理体制を築くための、
開発者(データ・サイエンティスト、エンジニア)と、保守・運用担当者の
コラボレーションおよびコミュニケーションに関する実践手法。
-
CT/CM
- CT : 継続的にトレーニング
- CM : 継続的モニタリング
| 管理 | セキュリティ | 性能 | 通信環境 | |
|---|---|---|---|---|
| クラウド | ○ | △ | ○ | △ |
| オンプレ | ✕ | ○ | △ | ○ |
| エッジ | ✕ | △ | ✕ | ○ |
反比例のトレードオフ
ノウハウが必要(データ・パイプライン)
-
データの収集・整形
- パイプライン構築
- 適切な管理
-
学習・評価
- 状況確認
- デプロイ
-
本番・運用
- 運用監視
- データの収集・追加学習
※ 本番・運用のチェックの労力で学習データを作成し精度を上げていくサイクルを造るなど。
-
AutoML(Automated Machine Learning: 自動化された機械学習)
-
機械学習を実際の問題に適用するプロセスを自動化する手法や概念
-
主に、実行手順に記載した工数の掛かる工程を自動化する。
-
以下のような欠点がある。
- 専門家の方が良いモデルを開発できる可能性がある。
- ブラックボックスのため説明性の問題が発生する可能性がある。
- 構造化データが中心で非構造化データは発展途上。
⽣産性向上が阻害されている主な要因はデータ・ツール・デプロイ
ビジネス インテリジェンス(BI)の該当節も参照。
以下のような課題を持っている。
-
低品質でサイロ化:データ活⽤が進まない
データが”Ready” となっていない -
整合性の維持
- ざっくり、スキーマが無い事が問題
- スキーマレスの状態からデータの加工に時間がかかる
-
更新の重複への対応
- 読み取りのスケーラビリティが高い
- 一方で、更新処理が苦手(トランザクション制御)
以下のような課題を持っている。
- ⼤量のツール群:活⽤が不⼗分
ツールやフレームワークの共有、ナレッジの管理
コラボレーション、再現性が厳しい。
- scikit-learn
- TensorFlow・Keras
- PyTorch・PyCharm(深層学習(deep learning)の該当節を参照)
- Jupyter Notebook・JupyterLab
- RStudio
- , etc.
以下のような課題を持っている。
- 本番適⽤:MLのデプロイが困難
エラーが発⽣しやすい⼿作業によりイノベーションのスピードが減速
- AzML(Azure Machine Learning)
- MLflow(Azure Databricksの該当節を参照)
- コンテンツへのリンク - OSSコンソーシアム
https://www.osscons.jp/joho108j0-537- 機械学習・深層学習についてのレポート
https://1drv.ms/p/s!Amfs5caPP9r5jh-m6pIMwKgDln1N - 機械学習・深層学習についてのNotebook
https://github.com/OpenTouryoProject/DxCommon/tree/master/Notebook/path
- 機械学習・深層学習についてのレポート
-
機械学習で重要な特徴量エンジニアリングとは?|スタビジ
https://toukei-lab.com/variable-engineering -
特徴量エンジニアリングとは - AI・機械学習ナレッジセンター | VARISTA
https://www.varista.ai/knowledge/what-is-feature-enginnering/ -
今あらためて考える特徴量エンジニアリング ~予測精度をあと一歩改善するテクニック\
- アイマガジン|i Magazine|IS magazine
https://www.imagazine.co.jp/
- アイマガジン|i Magazine|IS magazine
-
特徴量エンジニアリングについて6つ|前処理と性能を高める手法
| テックマガジン from FEnetインフラ
https://www.fenet.jp/infla/
-
深層学習(深層学習(deep learning)の該当節を参照)
- データ分析、前処理、モデル構築・適用
https://qiita.com/tk-tatsuro/items/b72e418724ceb78e4af9
https://qiita.com/tk-tatsuro/items/561e9fc657422e05f0f7
-
特徴量エンジニアリング
https://qiita.com/tk-tatsuro/items/f27c012e0cb95a5f51d2 -
前処理(特徴量エンジニアリング)
https://qiita.com/tk-tatsuro/items/793bc3ec181e30803157 -
データの理解
-
テクニック
- 数値変換
https://qiita.com/tk-tatsuro/items/86c0a9ff744f73ad1832 - エンコーディング
https://qiita.com/tk-tatsuro/items/a06f1fa4f35639bcad8d - 欠損データ
https://qiita.com/tk-tatsuro/items/3aaaf7139de19c0d8555 - クラスタリング
https://qiita.com/tk-tatsuro/items/1228c90e8803db378f31 - 主成分分析
https://qiita.com/tk-tatsuro/items/705c865009bc7ccb6b04 - 相互作用特徴量
https://qiita.com/tk-tatsuro/items/49a886cf3290a512aacf - 特徴選択
https://qiita.com/tk-tatsuro/items/759acd001d4fbb8ef6c5
- 数値変換
-
データ分析で説明変数間の相関が高いときどうすればよいか(多重共線性対策)
https://qiita.com/kenTee/items/03285eb311d16c1e08f3
https://qiita.com/tk-tatsuro/items/ec8c1a36582d4bec7924
-
推計統計(統計的機械学習)(統計解析の該当節を参照)
-
サポートベクターマシン
https://ja.wikipedia.org/wiki/サポートベクターマシン -
ニューラルネットワーク
https://ja.wikipedia.org/wiki/ニューラルネットワーク
-
CRISP-DM
https://en.wikipedia.org/wiki/Cross-industry_standard_process_for_data_mining -
エキスパートシステム
https://ja.wikipedia.org/wiki/エキスパートシステム
Tags: 移行, サービス, DX, AI, 機械学習, 開発基盤
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。