Captum IMDB 튜토리얼 — 토큰별 속성 시각화
Captum IMDB 튜토리얼 — 토큰별 속성 시각화
IMDB 감성 분류 CNN을 훈련한 뒤 LayerIntegratedGradients로 각 토큰이 예측에 얼마나 기여했는지 해석하는 실전 예제예요.
흐름
- 모델 훈련: 작은 IMDB 부분집합으로 CNN 감성 분류기를 훈련해요(테스트 정확도 약 0.75).
- LayerIntegratedGradients 설정: 토큰은 이산적이라 임베딩 레이어 출력 기준으로 그래디언트를 계산하고, 패딩 토큰을 기준(reference)으로 삼아요.
lig = LayerIntegratedGradients(forward_with_softmax, model.embedding)
token_reference = TokenReferenceBase(reference_token_idx=PAD_IDX)
attributions_ig, delta = lig.attribute(input_indices, baselines=reference_indices,
target=pred_idx, n_steps=50, return_convergence_delta=True)
- 시각화:
visualization.visualize_text로 단어마다 긍정(초록)·중립·부정(빨강) 색을 입혀 "fantastic", "horrible" 같은 단어의 기여도를 한눈에 보여줘요.