.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

機械学習(machine learning)について纏める。

  • 人が、その機械は何を学習するか?というのを予め定義する。
  • 注目スべきデータ(特徴量)の選定タスクは人間が担う。
  • 「訓練データ」として知られる
    サンプルデータに基づいて数学モデルを構築する。
  • 学習の方向性を人が思い通りにコントロールがし易い。
  • 明示的な指示を用いることなく、
    • パターン(統計モデル)と
    • 推論(アルゴリズム)に

依存して、特定の課題を効率的に実行する

定義

  • アーサー・サミュエル
    「明示的にプログラムしなくても学習する能力を、コンピュータに与える研究分野」
  • トム・ミッチェル
    タスクT(推論)とパフォーマンス測定P(損失関数と評価指標)に関連する経験E(学習データ)から学習する

応用例

詳細

理論

情報理論

統計的機械学習

数理最適化

独立同時分布仮定

用語

特徴量

  • 注目スべきデータ、機械学習的に言った説明変数
  • 特定の概念を特徴づける変数、問題の解決に必要な本質的な変数
  • 学習データにどのような特徴があるかを数値化したもの。
  • モデルをy = f(x) とすると、xが説明変数でyが目的変数
  • 非構造化データでは特徴量(説明変数)はベクトル化される。
  • 機械学習では入力された学習データから特徴量と呼ばれる数値を抽出する。
    • 特徴量の抽出は人間が設計し実装する必要がある。
    • 抽出した特徴量を元に機械はパターン・経験則をモデルを使って学習する。

である。

  • この特徴量を発見できれば、
    • あらゆる問題の解決につながったり、
    • パターン認識精度の向上や、
    • フレーム問題の解決につながったりする

と期待されている。

パラメタ

重みとも呼ばれるモデルの学習実行後に獲得される値。

ハイパーパラメタ

  • 例えばロジスティック回帰モデルを学習する場合は regularization rate というハイパーパラメタを使ってモデルのバイアスを軽減できる。
  • ハイパーパラメタはモデル学習のパフォーマンス、モデルの学習時間に強く影響する。
  • 一般的には複数の候補の組み合わせを試すことで適切な設定値を探す。

パラメトリック・モデル

  • 枠組みをあらかじめ決めてパラメタだけを学習するモデル。
  • 機械学習・深層学習のモデルは基本的にパラメトリック・モデル

ノンパラメトリック・モデル

  • 関数の枠組みそのものを推定するモデル。
  • 決定木やカーネル関数を使用するモデルがノンパラメトリック・モデル
  • 母集団に関する事前の仮定を置かずにデータの特性をより柔軟に関数形を推定する。
  • データに潜在する複雑な構造や関係性をより良く捉え過剰適合のリスクが低くなる。
  • パラメトリックモデルよりも多くのデータが必要

アルゴリズム

  • モデルを作成するアルゴリズム
    モデルを最適化する方法
  • アルゴリズムはモデルに含まれることがある。
    分離した方が系統的にモデリングを理解できる。

適合

  • 複雑なものの認識や、常値の検出
  • たくさんの情報の中から必要なものを探す
  • 予測、フォーキャスト(予想や見込み)、意思決定支援
  • 言葉を使ったコミュニケーション
  • 新しい体験を作り出したい場合

限界

  • データの中にあるバイアス(を、そのまま学習
  • プリシジョンとリコールのトレードオフがある(分類問題)。
  • コールド・スタートによる誤検知がある(協調フィルタリング)。
  • モデルの検証のためのフィードバックループが必要。
  • Exploration(冒険、探索)とExploitation(搾取、利用)

汎化性能

学習に使用したデータだけではなく、新たなデータに対する予測性能。

  • モデルの未知のデータへのあてはまりの良さ。
  • 汎化性能は学習データとは別に収集された検証データでの性能を図ることで評価。

未学習

(学習不足、アンダーフィッティング)

  • モデルの表現力が低いため、表現力の高いモデルを利用する。

過学習

(過剰適合、過適合、オーバーフィッティング)

  • 汎化能力の不足に起因する汎化できていない状態を指す(特化し過ぎている)。
    • 訓練誤差を最小化(特化)
    • 汎化誤差を最小化(汎化)
  • 統計学において、非常に複雑な非線形性の高いモデルを用いた場合、
    データが元々持っている誤差や不確実性と言った、本来説明ができない部分まで
    フィットするような誤ったモデルが構築されてしまう場合がある。
  • 機械学習において、学習精度がある一定の精度まで向上すると、
    以降は未知のデータへの対応力を失ってしまう現象。
  • 対策
    • 学習データの量を増やす。
    • 不要な変数を削除し表現力を抑止。
    • 正則化法を利用して表現力を抑止。

内挿と外挿

あるデータを使って訓練した機械学習モデルにおいて、
その訓練データ(入力データおよび教師ラベル)の数値の

  • 内挿(Interpolation)
    • 範囲内で出力を求めることを指す。
    • 最も一般的で容易に適用できるものは、一次関数(直線)による内挿(直線内挿)。
  • 外挿(Extrapolation)
    • 範囲外で出力を求めることを指す。
    • 外挿の信頼性はその予測信頼区間によって表示される。
      • 予測信頼区間は理論的にとりえない値を含む場合があり、
      • 外挿結果をそのまま用いることは誤った結果を導く可能性がある。

予測誤差を生む要因

  • バイアス(Bias)
    思い込みは過学習なのか未学習なのか。ココでは後者らしい。
    • モデルの表現力不足、未学習のモデルによって生じる。
    • 例えば、3次関数に従ったデータを線形回帰した時(未学習)。
    • 表現力の低いモデルを利用しているため意味のあるパターンを拾いきれていない。
  • バリアンス(Variance)
  • 学習データに過剰適合することによって生じる誤差。
  • 例えば、
    • 3次関数に従ったデータを7次関数で多項式回帰した時(過学習
    • 正則化によって、モデル複雑化を抑制、より単純(低次元)モデルにする。
  • 表現力が高すぎるモデルを利用しているために、
    学習データにしかないパターンを拾ってしまう。
    • 重み(パラメタ)の値が極端になっている
    • サンプル数に対して説明変数が多過ぎる。
  • ノイズ(Noise)
    • データに混入している本質的でない情報。
    • 本質とノイズの情報は混ざっており区別できない。
    • 機械学習の手法では取り除くことができない。

実行手順

※ より専門的なプロセスについては、CRISP-DMを参照。

データ作成

良いデータの準備が性能発揮の生命線となる。

  • 探索的データ解析(EDA)
    データの特徴を探求し、構造を理解する。
  • 前処理
    前処理の良し悪しも性能を大きく左右する。
  • 非構造化データは数値化される(通常はスカラではなくベクトル、テンソル)。
    例えば、テキストデータのベクトル化には色々な手法があり永遠のテーマとなっている。

学習の実行

  • 機械学習システムの選択
  • 訓練を繰り返しパラメタを更新&収束
  • 最終評価を行い採用 / 不採用

利用と追加学習

学習方法

アノテーション

  • 優れたアルゴリズムを用いても誤った教師データで学習すると
    正しく学習できず精度の高い学習モデルが作れない。
  • アノテーションとは、学習のため教師データを作成する(タグを付与する)こと。
  • データに付与するタグを標準化、均一化しないと誤った推論結果となる。
  • 労働集約的
    • 外注(アウトソーシング)するかしないか?
    • ただし、クォリティ・アシュアランスには要注意
  • アノテーションの質を高める方法
  • コストが掛かっても正しくアノテーション
    • プロによるアノテーション
    • 高精度なアノテーション
    • 多数決による品質の管理方法
      ・実際は能力に差があるという前提で、アノテーターの能力を考慮。
      ・複数のアノテーターが同じ能力を持っていると仮定した場合、
       良い品質を得るために沢山の人が必要となる(コスト)。
  • 異なる種類のデータ形式よるタグ付け
    • 画像データを用いる
    • テキストデータを用いる
    • 構造化データを用いる
  • データの意味は普遍的ではなく目的によって変わる。
    → ターゲット層に適したバイアス(推し)をかけたアノテーション

アクティブ・ラーニング

本番運用しながら自然に追加学習できる仕組み

  • AIのアウトプットを全て人間がチェックし、間違っていたものを修正して追加学習データとして利用
  • AIのアウトプットの信頼度(Confident)の値が低いデータのみを人間がチェックして追加学習。

アンサンブル学習

  • モデルの汎化性能を向上させるため個々に学習した複数のモデルを融合させる方法
  • 「複数のモデルによる各予測結果」をアンサンブル(≒組合せ)して「最終的な予測結果」を得る。
  • 理論立ては"まだ"だが、経験的に過学習を防ぎ、汎化性能を向上させることが知られている。
  • バギング
    複数の弱学習器を並列作成し予測を組み合わせ、各予測を平均や多数決で最終予測結果を得る。
  • 複数のモデルを学習し
    平均(回帰の場合)または多数決(分類の場合)することによって
    過学習の傾向が打ち消しあって最終的に丁度、良い決定境界をつくる。
  • ブートストラップ(サンプリング)
    データ全体の中から重複を許してtrainデータを選ぶ手法。
    ブートストラップによってtrainデータをつくる。
  • ブースティング
    弱学習器を連続的に学習(≒何度も訂正)、順次作成し、精度を向上させる手法。
  • 学習器の精度を向上するために誤分類データに注意を払って次の学習を行う。
  • 一つのモデルの間違いをうまく訂正するようなモデルを次々につくる。
  • 大元のモデルを最適化するための補助的なモデルを逐次的に学習させる。
  • バギングより高い精度が見込めるが、学習に時間がかかる。
  • スタッキング(ブレンディング
  • ブレンディング
    ・バギングは平均 / 投票でアンサンブル
    ・ブレンディングは統計 / 機械学習モデル(一般的には線形モデル)でアンサンブル
  • スタッキング
    3層以上のレベル数でブレンディング
    ・いくつかのFold(グループ)にデータを分けて、それぞれを各モデルで予測
    ・それぞれの予測値を新たな特徴量とする。
    ・何回か繰り返して最終アウトプット算出。

モデルの統合・分割

色々なデータを使う場合、色々なモデルが必要になる。

  • 統合
    一つの機械学習のモデルに
    色々なデータを入れて予測値を出す。
  • 分割
    人間が非常に理解し易くなる。

活用例

データマイニング

エキスパート・システム

  • 専門分野の知識を取り込み、分野の専門家のように振る舞うプログラム
  • 歴史
    DENDRAL → Mycin → Cycプロジェクト
  • エドワード・ファイゲンバウム、DENDRAL、1960年代
    未知の有機化合物を特定する
  • スタンフォード大学、マイシン(Mycin)1970年代
    血液中のバクテリアの診断支援
  • ダグラス・レナート、Cycプロジェクト 1984年~
    一般常識をコンピュータに取り込む。30年以上経った今も継続している。
  • 知識ベース
  • 専門知識が豊富であればあるほど暗黙的で矛盾があり、知識ベースを保守が困難に。
  • 一般常識については、そもそも暗黙的で(明文化されていない)ことが明らかに。
  • 知識(概念体系)を扱うための方法論(意味ネットワークやオントロジー)の研究が活性化
  • 意味ネットワーク(semantic network):
    関係を定義可能なUMLクラス図の様な
    ・is-a:推移率が成立する(継承とも)。
    ・part-of:推移率が成立するとは限らない、最低5つのpart-ofがある(属性とも)。
  • オントロジー(ontology):概念化の明示的な仕様
    上記と同様の概念体系を言語状に記述可能なフォーマット
    ・ヘビーウェイト・オントロジー:共有のため哲学的な考察が必要で個別に定義しない
    ・ライトウェイト・オントロジー:正当性について深い考察は行わない(ウェブ マイニング等で活用)
  • エキスパート・システムの例
  • IBMのWatson(ワトソン):
    • 2011年:テレビ・クイズ番組「Jeopardy!」で2人のチャンピオンと対戦し勝利した。
    • Wikipediaから生成されたライトウェイト・オントロジーを用いて、
      質問に含まれるキーワードから関連しそうな回答を高速に検索する。
  • 東ロボくん:
    • 東大入試合格を目指すビッグデータ深層学習を利用した統計的学習の人工知能
    • 私大合格は可能だが東大合格に必要となる読解力が致命的になく、未達。

不正会計の検知

  • Li et al
  • 特徴
    1. 手を加えていない会計情報そのものと
      不正・非不正の情報で構成される大量データを
      訓練データとテストデータに分け訓練データでモデルを作り
      テストデータでその検知能力を調べるという一般的な研究
      ・訓練データ:1991年から2002年までのデータ
      ・テストデータ:2003年から2005年までのデータ
    2. アンダーサンプリングを行っている。
      訓練データの1と0(不正と非不正)が同数になるようにサンプリング
  • 実務家の方法を取り入れることで
    先行研究よりも正判別確率の高いモデルを構築
    (東海林・中村・尾崎(2020)
    • 不正会計を不正手段の種類別に認識
    • 貸借対照表に不正会計の歪みが蓄積されることを利用して
      その歪みから得られる違和感により不正会計を経験的に認知
  • 正判別率の上げかた。
    • 歪みと違和感を変数化して特徴量にした。
    • 不正手段を売上過大計上に限定した。
    • 目的変数を不正群・非不正群ではなく
      非不正群から利益調整群を除いた1,0データとした。

ベイズ云々の活用例

  • 迷惑メール
  • 診断・コールセンター
  • レコメンド
  • 社会現象・データ
  • 顧客行動理解

機械学習の分類

分類1分類2用途アルゴリズム
教師あり学習回帰・売上予測
・人口予測
・需要予測
線形回帰
非線形回帰
・ニューラルネットワーク回帰
分類・画像分類
・故障診断
・顧客維持
ロジスティック回帰
サポートベクターマシン
ランダムフォレスト
教師なし学習クラスタリング・レコメンド
・顧客セグメンテーション
・ターゲットマーケッティング
k-means
次元削減・特徴量エンジニアリング主成分分析
強化学習・ゲーム
・広告
・自動運転
・リアルタイム判断
・Q学習
・モンテカルロ法

学習データでの分類

  • コンピュータとその周辺の技術・情報が発達してきたため出てきた概念
  • 互いに独立なものではなく、高度に組合せて使用することも可能。

教師あり学習

(supervised learning)

  • 小脳の働きを模倣しているらしい。
  • 教科書を使った勉強のように、
    「結果と予測すべき答え」(訓練データ)が与えられ、
    それ(≒教師)に至るためのモデルを構築する学習手法
  • 「予測すべき答」は
    • ラベル(タグ)とも呼ばれる
    • 人間の専門家が訓練例にラベル付け(タグ付け)して提供
    • このラベル付け(タグ付け)の作業をアノテーションとも呼ぶ。
  • 未知のデータ「x」にそれを適用して、予言 y = f(x) を与えることができる。
  • 予言 y と、出力 ȳ の誤差が小さくなるように学習が進められる。

教師なし学習

(unsupervised learning)

  • 大脳皮質の働きを模倣の働きを模倣しているらしい。
  • データ自体に構造・特徴があり、そのデータを分類・識別する。
  • 与えられたデータセット(訓練データ)の中に予測すべき正解が与えられないまま、
    データの背後に存在する本質的な構造かをデータ同士の関係から導き出すという学習
  • 評価規範Cが与えられている。評価規範Cを最適化するように学習が進められる。
  • 自分自身を教師データにする自己教師型を教師なし学習に分類することもある。
  • 教師あり学習と比べると、
    • 結果の解釈が難しく、分析者の主観的な解釈が必要となる。
    • 異常・不正の検出など、正例が少ないケースにも適合する。

半教師あり学習

(semi-supervised learning)

  • 一部のデータにのみ出力の正解が付与されたデータを用いる手法。
    • ラベルありの例とラベルなしの例を両方扱える。
    • すべてのデータにラベルを付けなくても良いので、効果的な学習が可能。
  • 分類問題(識別モデルと生成モデル)で使われる。
    (回帰分析の半教師あり学習で同じようなメリットを得るのは難しい)
    • 説明変数の事前分布が明確になる
    • クラス間の境界が明確になる (クラス分類のみ)
    • モデルの安定性が向上する
    • モデルの適用範囲が広がる

自己教師あり学習

(self-supervised Learning)

  • ラベル無しデータを使う教師なし学習の一種
  • 「常識」を獲得するための重要な手法
  • データ自身に隠されている構造を読み取り、ターゲットを予測する学習を行う。
    • 次単語(予測)
    • マスク単語(予測)

self-xxxxxxx Learningと言うアルゴリズムはコレの場合が多い。

利用方法での分類

  • ≒モデルの種類。
  • 利用:recall、想起、適用
  • 教師データに対するテストデータに適用
  • 「知りたい情報」の設定に依存して多様。
  • 深層学習では、ほとんどのことができる。

推定

  • ある事実を手掛かりにして、推し量って決めること。
  • プリミティブ?
    • 分類
      離散値の予測(特徴を推定する)問題。
  • 回帰
    連続する変数の予測(間の相関関係を推定する)問題。

分類

  • 分類
  • 種類
  • 判別分析
    特徴量のデータの特性から、特定の対象とそうでない対象をグループ分けする。
  • k近傍法(k-NN)
    ・教師あり学習の中でもシンプルなアルゴリズムの一つ。
    ・似た名称のk平均法と同様に、ユークリッド距離を使う。
    ・「近くにあるデータは似ているはずだ」という発想に基づいて、
     ある未知のデータをデータセットの指定の数のクラスに多数決で分類。
     ・K近傍法のKは近くにあるデータをK個集めるという意味
     ・この多数決により分類を決定するので、教師ありだが学習はしない。
  • クラスタリング
    • 最も一般的な教師なし学習手法
    • 探索的データ分析により、データ内の隠れたパターンやグループ構造を発見する。
  • 種類
  • k平均法(k-means clustering)
    ・非階層クラスタリングの代表的な手法の1つ。
    ・分析担当者はクラスタ数を設定する。
    ・似た名称のk近傍法と同様に、ユークリッド距離を使う。
    ・データセット中から類似データを指定の数のクラスタを作る
  • ウォード法
    ・階層クラスタリングの代表的な手法の1つ。
    ・トーナメント表を作るような手順で、
     ① データ数=クラスタ数で開始し、距離の近い2つを統合して行き、
     ② 全てのデータが1つのクラスタに統合された時点で終了する。
    ・クラスタ間の階層関係をツリー構造で表す。
    ・出来上がった樹形図をデンドログラムと呼ぶ。
    ・クラスタ数が事前には分からない場合において有効
  • トピックモデル
    ・名前の由来は、モデルが、文書データを対象とした際、各文書は
     「複数の潜在的なトピックから確率的に生成される」と仮定したいるため。
    ・複数のクラスタにデータを分類するのが大きな特徴。
    ・代表的な手法に潜在的ディリクレ配分法がある。
    ・単語から分類の確率、類似度が求められる。
    ・レコメンドシステムに用いることもできる。
  • 混合ガウスモデル (GMM)
    ・多くの場合に使用される。
    ・k平均法を活用したクラスタリングなどよりも、より適切な場合がある。
    ・以下のケースにおいて有効。
     ・データポイントが2つ以上のクラスタに属している可能性がある場合や、
     ・クラスタのサイズがさまざまで、クラスターの相関構造が異なっている場合
    ガウス分布(正規分布)を線形重ね合わせによって、
     どうデータポイントが分布しているかパラメタを推定する。
    ・クラスタリングだけでなく、データセットの確率密度分布を得ることができる。
  • 隠れマルコフモデル (HMM)
    ・確率モデルの1つであり、
    ・観測されない(隠れた)状態をもつマルコフ過程を指す。
    ・観測された記号系列の背後に存在する状態の遷移系列を推測する
  • 自己組織化マップ
    ニューラルネットワークに基づくクラスタリングの手法
    ・入力データの類似度をマップ上での距離で表現し、自動的に分類
    ・人が識別することが難しいような、高次元データをクラスタリング可能。
  • ファジィ c 平均クラスタリング
    ・データセットをN個のクラスタにグループ化するデータクラスタリング手法
    ・クラスタ数が既知であり、クラスタに重なりがある場合に有効。
    ・データセット内のすべてのデータポイントが、すべてのクラスタに属している。
     ・クラスタの中心に近いデータは、そのクラスタに属する度合いが高く、
     ・クラスタの中心から離れた別のデータ点は、そのクラスタに属する度合いが低い。
    ・クラスタの中心をランダムに推測、各データポイントのメンバーシップ等級の割り当てを反復。
    ・データポイントからクラスタ中心までの距離をメンバーシップで重み付けした目的関数を最小化。

回帰

  • 連続的な応答を予測
  • 教師あり学習を用いる
  • 深層学習を使った回帰もある。
  • 種類
    • 線形回帰
      直線で予測。
      • 連続する目的変数を複数の説明変数を用いて予測、説明する
      • 1つ以上の独立した説明変数を使用し、線形方程式の係数を推定
  • 非線形回帰
    曲線で予測。
    • 線形パラメタとの関係を適切にモデル化できない場合
    • 連続する目的変数と1つ以上の説明変数との間の
      非線形な関係を表す方程式を用いて予測、説明する。
    • パラメトリック非線形回帰
      目的変数(単変量または多変量)を
      非線形パラメタと1つ以上の説明変数の
      組み合わせとして関数化して予測、説明する。
    • ノンパラメトリック非線形回帰
      機械学習の手法が使用される。
  • ステップワイズ回帰
    • 精度の高いモデルを選択する回帰分析の手法
    • 自動的に説明変数を1つずつ追加、削除
  • 時系列データを対象とする回帰モデル
    • 自己回帰(AR)モデル:単変量の時系列データを対象とする回帰モデル
    • ベクトル自己回帰(VAR)モデル:ARモデルを多変量に拡張したモデル

認識

  • パターン認識など。
  • 物事をはっきりと見分け、判断すること。
  • 主体あるいは主観が対象を明確に把握すること。

創出

  • GANとかの生成モデル?
  • 物事を新しく造り出すこと。

自己組織化

  • 物質や個体が、系全体を俯瞰する能力を持たないのに関わらず、
    個々の自律的な振る舞いの結果として、秩序を持つ大きな構造を作り出す現象
  • 行動規範型ロボット的な自己修復機能をもった自己組織化ロボットなどへの応用

その他

深層学習

強化学習

深層強化学習

その他

  • トランスダクション(トランスダクティブ推論)
    観測された具体的な(訓練)例から
    具体的かつ固定の(テスト)例の
    新たな出力を予測しようとする。
  • マルチタスク学習
    関連する複数の問題について同時に学習させ、
    主要な問題の予測精度を向上させる。

統計と機械学習

基礎的な違い

  • どちらも
    • データを使って問題を解決する
    • 数学的な手法を使って質問に答えることに関心がある
  • ゴールと貢献の仕方が違う。
    • 分析において説明力を重視するのか?
    • 予測において精度を重視するのか?
  • SVMやDNNなどの精度が高いが説明しにくいモデルの使用を避け
    代わりに表現力が乏しいが説明がし易いモデルを使用することがある。

統計学

  • 統計学か数学の一環
  • データを“説明”すること(推定と推論)を強調
    • 限られた標本から調査したい母集団全体の特徴を推測する。
    • データを(学習データと検証データに)分割しない。
    • 過学習の可能性を気にしない。が、疑似相関は気にする。
  • 説明変数の数が大きくなると多変量解析を使った変数選択手法では多重検定のリスクが大きくなる。

機械学習

  • コンピュータ・サイエンスの一環
  • データから“予測”することを強調
    • 変数間の関係性やルールなどを機械学習による予測モデルに学習させ予測する。
    • データを(学習データと検証データに)分割する。
    • 過学習の可能性を気にする。が、疑似相関は気にしない。
  • 説明変数の数が多くなる場合は、機械学習を含む解析が使える。

使い分け

予測モデルの使い分け。

統計

  • モデルとデータ
  • モデル
    • モデルとデータ全体を解釈したい。
  • データ

  • ・データのサンプルサイズが大きくない。
    ・トレーニングデータを持っていない。

  • ・不確実性やランダム性がある。
    ・信号対ノイズ比(ノイズに対するシグナルの割合)が大きくない。
  • 目的
    • 不確実性や予測変数の影響度を調べる必要がある。
    • 少ない数の変数の影響度を切り離して評価したい。

機械学習

  • モデルとデータ
  • モデル
    推論の精度に興味があり、モデルへの興味は薄い。
    • 複雑な構造の内部パラメタに大量のデータの情報を反映できる。
    • 十分なデータを使用できれば、精度な予測・分析ができる可能性が高い。
    • トレードオフとしてモデル構造が複雑で解釈性が犠牲になりがち。
  • データ

  • 大量のデータを使用して学習することが期待されている。
    ・データのサンプルサイズが大きい。
    ・膨大なトレーニングデータで学習できる。

  • ・強い不確実性やランダム性を持たない。
    ・信号対ノイズ比(ノイズに対するシグナルの割合)が大きい。
  • 目的
    • 不確実性の推測や選択した予測変数の影響度には興味が無い。
    • 予測がゴールで少ない数の変数の影響は問題ではない。

特徴量の選択とエンジニアリング

今あるデータの特徴量からドメイン知識などを生かして

  • 特徴量選択:特徴量を絞ったり
  • 特徴量エンジニアリング:新しくデータの特徴量を作成したり

することで、予測性能、すなわち汎化性能を向上させる作業。

CRISP-DM上の

データの理解

データの準備

テクニック

欠損値の処理

  • 記録されなかった値を含むデータの削除や補完

相関係数を確認

  • ピアソンの積率相関係数
    相関係数(2つの量的変数間の直線的関連の程度を表す係数)
  • スピアマンの順位相関係数
    各変量を順位に変換してピアソンの積率相関係数を求めたもの

特徴量選択

  • 反復特徴量選択法
    説明変数を増やしたり減らしたりを繰り返して予測精度を推し量りながら特徴量を選択する手法
  • 変数増加法(前方選択法)
    求められた特徴量重要度の高いものから一つずつ特徴量をデータセットから追加し、予測精度を測る手法
  • 変数減少法(後方削除法)
    求められた特徴量重要度の低いものから一つずつ特徴量をデータセットから取り除き、予測精度を測る手法
  • 手法ベース特徴量選択法
    正解ラベルと各特徴量の関係から、特徴量重要度を求める方法

エンコーディング

  • One-Hotエンコーディング
  • 多クラスのカテゴリを0・1ラベルで表す特徴量として展開する。
  • One-Hotエンコーディング結果のデータをOne-Hotベクトルと言う。
  • Dummyコーディング、Effectコーディングがある。
  • Effectコーディングでは最初の列を削除
  • 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人密度」を作る。
  • クラスタ分析、主成分分析
    • 主成分分析
      あまりにも特徴量の多い高次元データは、
      主成分分析で複数の説明変数を圧縮して少なくする。
    • クラスタ分析
      クラスタリングで新たなカテゴリの説明変数を追加し、
      コレを利用することで精度が上がるコトがある。
  • 特異値分解
    ...

スタッキング

  • あるモデル(1段目のモデル)を使った予測値を特徴量として、
    さらに別のモデル(2段目のモデル)を作るようなアンサンブル学習の手法

不均衡データに対するサンプリング

  • アンダーサンプリング
    少数派のデータに合わせて多数派のデータを削除する。
  • オーバーサンプリング
    少数派のデータを多数派のデータに合わせて追加する(SMOTE)。

Pythonでの処理例

Pandas

Matplotlib

モデル評価のエンジニアリング

モデルの評価

精度の評価

精度と説明力

モデル・チューニングのエンジニアリング

チューニング

グリッド・サーチ

ランダム・サーチ

多目的ベイズ最適化

特徴選択とエンジニアリング

モデル評価のエンジニアリング

MLOps(エンジニアリング部分の自動化

(Machine Learning Operations)

  • 機械学習(machine learning)のMLと、DevOpsとを組み合わせた造語。
  • 機械学習、深層学習の開発・運用サイクルを円滑化する管理体制を築くための、
    開発者(データ・サイエンティスト、エンジニア)と、保守・運用担当者の
    コラボレーションおよびコミュニケーションに関する実践手法。

CX

CI/CD

CT/CM

  • CT : 継続的にトレーニング
  • CM : 継続的モニタリング

ポイント

動作環境

管理セキュリティ性能通信環境
クラウド
オンプレ
エッジ

精度・速度

反比例のトレードオフ

サーバ構成

ノウハウが必要(データ・パイプライン

安定運用

  • データの収集・整形
    • パイプライン構築
    • 適切な管理
  • 学習・評価
    • 状況確認
    • デプロイ
  • 本番・運用

※ 本番・運用のチェックの労力で学習データを作成し精度を上げていくサイクルを造るなど。

Auto ML

  • AutoML(Automated Machine Learning: 自動化された機械学習)
  • 機械学習を実際の問題に適用するプロセスを自動化する手法や概念
  • 主に、実行手順に記載した工数の掛かる工程を自動化する。
  • 以下のような欠点がある。
    • 専門家の方が良いモデルを開発できる可能性がある。
    • ブラックボックスのため説明性の問題が発生する可能性がある。
    • 構造化データデータが中心で非構造化データは発展途上。

課題(を解決するクラスド・サービス

⽣産性向上が阻害されている主な要因はデータ・ツール・デプロイ

データレイク

課題

以下のような課題を持っている。

  • 低品質でサイロ化︓データ活⽤が進まない
    データが”Ready” となっていない
  • 整合性の維持
    • ざっくり、スキーマが無い事が問題
    • スキーマレスの状態からデータの加工に時間がかかる
  • 更新の重複への対応
    • 読み取りのスケーラビリティが高い
    • 一方で、更新処理が苦手(トランザクション制御)

プロダクト

ツール

課題

以下のような課題を持っている。

  • ⼤量のツール群︓活⽤が不⼗分
    ツールやフレームワークの共有、ナレッジの管理
    コラボレーション、再現性が厳しい。

プロダクト

デプロイ

課題

以下のような課題を持っている。

  • 本番適⽤︓MLのデプロイが困難
    エラーが発⽣しやすい⼿作業によりイノベーションのスピードが減速

プロダクト

参考

特徴量の選択とエンジニアリング

農学情報科学

https://axa.biopapyrus.jp/

機械学習

https://axa.biopapyrus.jp/machine-learning/

深層学習

Qiita

データ分析

https://qiita.com/tk-tatsuro/items/561e9fc657422e05f0f7

特徴量の選択とエンジニアリング

  • データの理解
  • テクニック

モデル構築・適用

https://qiita.com/tk-tatsuro/items/ec8c1a36582d4bec7924

Wikipedia

アルゴリズム、モデル

学習データでの分類

活用例


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2024-04-03 (水) 21:06:12 (17d)