Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/MIUAV/vibe-coding-ros2 --skill cl-catastrophic-forgetting명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
SOC 직업 분류 기준
| name | cl-catastrophic-forgetting |
| description | 灾难性遗忘预防技能 - 正交权重更新、活性正则化、渐进掩码 |
| argument-hint | 灾难性遗忘 OR catastrophic forgetting OR OWM OR 渐进掩码 |
| user-invocable | true |
防止神经网络在学习新任务时遗忘旧任务的知识
当需要以下帮助时使用此技能:
import torch
import torch.nn as nn
import numpy as np
class OWMTrainer:
def __init__(self, model, alpha=0.5):
self.model = model
self.alpha = alpha
self.old_params = {}
self.identity_mat = {}
def save_old_params(self):
"""保存旧任务参数"""
for name, param in self.model.named_parameters():
self.old_params[name] = param.data.clone()
def compute_identity_matrix(self, dataloader):
"""计算每个参数的正交矩阵"""
self.identity_mat = {}
for name, param in self.model.named_parameters():
if param.requires_grad:
self.identity_mat[name] = torch.eye(param.shape[0]).to(param.device)
def owm_update(self, param_name, param_data, grad):
"""OWM 参数更新"""
if param_name in self.identity_mat:
P = self.identity_mat[param_name]
grad = P @ grad.view(-1, 1)
grad = grad.view(param_data.shape)
return param_data - self.alpha * grad
class ProgressiveMasking:
def __init__(self, model, initial_mask_ratio=0.1):
self.model = model
self.mask_ratio = initial_mask_ratio
self.masks = {}
def create_mask(self, layer):
"""创建随机掩码"""
mask = torch.rand(layer.weight.shape) > self.mask_ratio
return mask.float().to(layer.weight.device)
def apply_mask(self):
"""应用掩码到所有层"""
for name, module in self.model.named_modules():
if hasattr(module, 'weight') and name in self.masks:
module.weight.data *= self.masks[name]
def update_mask(self, importance_scores):
"""基于重要性更新掩码"""
for name, score in importance_scores.items():
threshold = torch.quantile(score, self.mask_ratio)
self.masks[name] = (score > threshold).float()