LESSON

継続的学習

「専門家のレビュー結果は、モデル改善のための貴重なデータだ。」

田中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分