継続的学習
「専門家のレビュー結果は、モデル改善のための貴重なデータだ。」
田中VPoEが改善サイクルを示す。
「レビューで却下・修正されたケースをフィードバックとして蓄積し、モデルを継続的に改善する。このサイクルが回るほど、AIは賢くなる。」
継続的学習サイクル
AI予測 → 専門家レビュー → フィードバック収集
↑ ↓
└──── モデル再学習 ← ラベル確定
フィードバックから再学習へ
class ContinuousLearningPipeline:
"""継続的学習パイプライン"""
def __init__(self, model, min_samples=50):
self.model = model
self.feedback_buffer = []
self.min_samples = min_samples
def add_feedback(self, image_path, ai_prediction, expert_correction):
"""フィードバックを蓄積"""
self.feedback_buffer.append({
'image_path': image_path,
'ai_prediction': ai_prediction,
'expert_label': expert_correction,
'timestamp': datetime.now(),
})
def should_retrain(self):
"""再学習が必要か判定"""
return len(self.feedback_buffer) >= self.min_samples
def retrain(self):
"""フィードバックデータで再学習"""
if not self.should_retrain():
return None
# 新しいラベル付きデータを準備
new_data = [
(fb['image_path'], fb['expert_label'])
for fb in self.feedback_buffer
]
# 既存データ + 新規データで再学習
new_model = self._train_with_new_data(new_data)
# 検証
if self._validate(new_model):
self.model = new_model
self.feedback_buffer = []
return 'updated'
return 'rejected'
def _train_with_new_data(self, new_data):
"""新規データを含めて再学習"""
# Fine-tuning with new labeled data
pass
def _validate(self, new_model):
"""新モデルの品質検証"""
# Sensitivity >= 0.95 を保証
pass
データ品質管理
| 項目 | 基準 |
|---|---|
| ラベル信頼度 | 専門家1名=0.8、2名一致=0.95 |
| 最低サンプル数 | カテゴリごとに20件以上 |
| クラスバランス | 最も少ないクラスが全体の10%以上 |
| 再学習頻度 | 月次 or フィードバック50件到達時 |
まとめ
| 項目 | ポイント |
|---|---|
| フィードバック | 却下・修正されたケースを再学習に活用 |
| 品質管理 | ラベル信頼度とクラスバランスを管理 |
| 再学習基準 | 50件以上のフィードバック蓄積で実行 |
| 検証 | Sensitivity >= 0.95 を保証してデプロイ |
チェックリスト
- 継続的学習サイクルの全体像を説明できる
- フィードバック収集の仕組みを理解した
- 再学習のトリガー条件を設計できる
- データ品質管理の基準を定義できる
次のステップへ
継続的学習を理解した。次は演習で評価改善計画を策定しよう。
推定読了時間: 15分