機械学習は入力 x から予測 \hat y=f_\theta(x) を作る関数を、データから調整する技術である。重要なのは精度の高いモデル名ではなく、何を予測し、誤りのコストをどう測り、運用時に同じ条件が保てるかを定義することである。
基本式と分割
訓練集合で経験損失を最小化する:
分類では交差エントロピー、回帰では二乗誤差が代表例である。訓練・検証・最終テストを、同一人物・同一動画・未来情報が混ざらない単位で分ける。テストを見て設定を変えた時点で、テストは検証集合になり汎化性能を測れない。
図: Duskcoil作成の概念図。性能値の実測結果ではない。
評価と安全
正解率だけでは不十分である。希少な異常を扱うなら適合率、再現率、PR曲線、閾値ごとの偽陽性・偽陰性の費用を見る。確率出力は校正も確認する。欠損、分布変化、ラベル誤り、属性ごとの性能差、推論遅延を配備前に試験し、危険な判断は人の確認、拒否、代替規則へ渡す。
| 問題 | 典型原因 | 対処 |
|---|---|---|
| 訓練だけ高精度 | 過学習・リーク | 分割監査、正則化、データ追加 |
| 配備後に劣化 | 分布シフト | 入力・性能監視、再評価 |
| 不公平な誤り | データ偏り | 層別評価、収集・仕様見直し |
参考資料
問題定義から特徴まで
「需要を予測する」「異常を検知する」は仕様ではない。誰に対し、いつの情報だけを使い、どの時点までに、どの誤りを許容するかを定める。予測対象の時刻 t より後に記録された情報を特徴へ入れるとリークになる。前処理の平均・標準偏差、欠損補完器、語彙も訓練集合だけでfitし、検証・テストへ適用する。標準化は x'=(x-\mu)/\sigma だが、\mu,\sigma を全データで計算すればテストの情報が訓練へ漏れる。
基準線は重要である。前日値、ルール、線形回帰、小さな木モデルに勝てない複雑なモデルは、運用コストに見合わない。特徴量の可用性、推論遅延、モデルサイズ、保守者、障害時の代替規則も精度と同じ表で比較する。
汎化、バイアス、変化
経験損失が低くても、未知分布の期待損失 \mathbb E_{(x,y)\sim p_{deploy}}[\ell] は低いとは限らない。訓練分布と配備分布の差をcovariate shift、ラベルの意味が変わることをconcept driftと呼ぶ。季節、機器更新、運用ルール、ユーザー行動、計測器の故障が原因になる。単一の固定テストだけでなく、時期・地域・属性・機器ごとの層別評価を残す。
| 評価 | 答える問い | 見落としやすい点 |
|---|---|---|
| 正解率 | 全体で何割当たるか | 希少クラスの見逃し |
| 適合率/再現率 | 警報の信頼性と捕捉 | しきい値の費用 |
| 校正 | 確率が頻度に合うか | 高信頼の誤り |
| 時系列hold-out | 未来で働くか | 季節・制度変化 |
| 属性別評価 | 誰に誤るか | 小標本の不確かさ |
配備と失敗処理
配備前に、入力スキーマ、単位、範囲、欠損率、特徴分布を検査する。モデル出力が使えない時は、古い予測を黙って再利用するのか、ルールへ戻すのか、人へ照会するのかを決める。予測が意思決定へ影響し、新しい行動が次の学習データを変えるfeedback loopも監視する。推薦が露出を変え、検知器が点検頻度を変えれば、収集データは自然発生データではなくなる。
実装ではデータ契約、バージョン、再現可能な学習、シャドー運用、段階的ロールアウト、性能・公平性・遅延の監視、即時ロールバックを用意する。高リスク判断ではモデルを最終決定者にせず、根拠、確信度、入力不足を人へ表示する。
- 予測時点と利用可能特徴を監査する。
- ベースラインと独立テストを固定する。
- 指標を誤りコストと安全要件へ対応付ける。
- 欠損・シフト・攻撃的入力を試験する。
-
監視閾値、停止、再学習承認を運用手順にする。
- Model Cards for Model Reporting
不確かさと意思決定を分ける
モデルが返す確率は、行動そのものではない。例えば保守警報なら、故障確率に停止損失、見逃し損失、点検費用を対応付けてしきい値を決める。母集団の故障率が変われば、同じスコアでも最適なしきい値は変わる。検証集合でreliability diagramやBrier scoreを確認し、必要ならPlatt scalingやisotonic regressionを検証集合だけでfitする。校正器を含めて一つのモデル版として管理する。
予測区間やensembleのばらつきは有用だが、「この範囲に必ず真値がある」という保証ではない。学習範囲外、センサ故障、敵対的入力では不確かさ推定自体が壊れることがある。入力妥当性検査、分布外フラグ、モデルの確信度、業務ルールを別々の信号として下流へ渡し、どれかが危険域なら人手確認や安全側の既定動作を選ぶ。
学習方式の選択
| 学習方式 | 必要な教師情報 | 適する場面 | 評価上の注意 |
|---|---|---|---|
| 教師あり | 入力ごとの正解 | 分類・回帰の仕様が明確 | ラベル品質とリーク |
| 教師なし | 原則として正解不要 | 構造把握、異常候補 | クラスタに意味を後付けしない |
| 自己教師あり | データから作る疑似課題 | 大量の未注釈データ | 下流評価、事前学習重複 |
| 半教師あり | 少量正解+未注釈 | 注釈が高価 | 擬似ラベル誤りの増幅 |
| 強化学習 | 報酬と相互作用 | 逐次意思決定 | simulator gap、安全探索 |
複雑な方式を選ぶ前に、ラベルを追加する費用とモデルを複雑化する費用を比較する。教師なしクラスタを人物属性の真実とみなしたり、弱い擬似ラベルを大量に追加して偏りを増幅したりする失敗は多い。データ量だけでなく、どの過程で誰が何を測ったラベルかをサンプル単位で追跡する。
失敗例:ランダム分割が未来を知る
予知保全で一台の機械から得た連続窓をランダム分割すると、ほぼ同じ振動波形が訓練とテストへ入る。故障後に付与された整備コードや、全期間から計算した平均との差も未来情報になる。機械IDと時刻で分割し、予測時点に利用できた原記録だけから特徴を再計算する。性能が下がっても、その値が配備条件に近い。低下をモデルで埋める前に、観測期間と意思決定期限を見直す。
最小構成からの実装手順
- 利用者、予測対象、観測締切、行動、誤り費用を一枚の仕様表にする。
- 生データの由来、同意・権利、欠損理由、単位、更新頻度、ラベル作成手順を監査する。
- group/time splitをコードで固定し、重複ハッシュやID交差を自動検査する。
- 業務ルールと単純モデルを基準線にし、平均値だけでなく条件別の信頼区間を出す。
- 前処理、モデル、校正、しきい値を同じpipelineとして保存し、未見データで一度だけ最終評価する。
- shadow、限定公開、段階展開の順で実測し、入力品質、遅延、拒否率、下流結果を監視する。
- 再学習条件、承認者、rollback版、インシデント通知、廃止条件を運用手順へ含める。
再学習は自動的な改善ではない。新しいデータのラベル確定が遅れる場合、入力分布だけが変わったのか性能も落ちたのかを区別できない。変更前後を同一の固定評価集合で比較し、新しい期間・機器のchallenge setも追加する。採用判断は性能差、統計的不確かさ、計算費用、安全要件、運用負荷をまとめてレビューする。
機械学習の基礎はアルゴリズム一覧ではなく、問い、証拠、意思決定、監視を切れ目なく結ぶ方法である。説明できる単純な基準線と、失敗時に止められる仕組みがあってこそ、複雑なモデルの改善を意味のある差として測定できる。
コメント
コメントの投稿にはログインが必要です
まだコメントはありません。