
엔트리별 Clipping (clip_by_value)
68번 Norm Clipping 은 전체 벡터 방향을 보존 하며 크기만 줄임. 반면 clip_by_value 는 각 원소를 독립적으로 잘라냅니다:
clip(xi)=max(min(xi,vmax),vmin)
즉 범위 [vmin,vmax] 바깥 값을 경계로 이동. 방향은 바뀔 수 있음.
어디에 쓰이나
- PPO (Proximal Policy Optimization): probability ratio 를 [1−ϵ,1+ϵ] 로 clip.
- DQN reward clipping: Atari 등에서 reward 를 [−1,+1] 로 clip → 학습 안정화.
- 양자화 (Quantization): activation 범위 고정.
- 수치 안정성: 로그 계산 전 softmax-v1 출력을 [ϵ,1−ϵ] 로 clip.
Norm clip vs Value clip
| 방식 | 방향 | 비용 |
|---|
| Norm | 보존 | 모든 축이 같은 비율로 축소 |
| Value | 변경 가능 | 원소별 독립 |
과제
함수 clip_by_value(x, v_min, v_max) 를 완성하세요.
- 배열
x, 스칼라 v_min <= v_max.
- 반환: 같은 shape, 각 원소를 [vmin,vmax] 로 clip.
np.clip(x, v_min, v_max) 한 줄.
테스트 케이스
| # | 이름 | 검증 |
|---|
| 1 | 범위 안 → 그대로 | [0.3, 0.5] with [0, 1] |
| 2 | 양쪽 경계 초과 | [-2, 0, 3] with [-1, 1] |
| 3 | 단방향 clip | [5, 10], [-∞, 7] |
| 4 | shape 유지 | (3, 4) |
| 5 | 방향 변화 예시 | norm clip 과 다른 결과 |