인공지능/XAI

Sparse Autoencoder 학습 - l1 regularization coefficient에 따른 학습 변화

이게될까 2024. 10. 13. 22:15
728x90
728x90

지금 Llama 3.2 1B 버전으로 SAE 6개를 만들고 있습니다.

각각의 Context_length와 epoch, Latent space size는 다 같은데 l1 regularization coefficient만 다릅니다.

그래서 l1 regularization coefficient에 따른 각각 SAE들의 Mse Loss, Sparsity 등을 비교해보려고 합니다.

l1 coefficient 0.01 1 5 10 50 100
l1 Loss  1298.54412 108.15576 47.29196 31.12675 17.77652 12.89535
mse loss 2.52211 156.46039 287.31024 372.92572 791.67743 808.39392
over_all loss 15.50755 264.61615 523.77002 734.19324 1680.50366 2097.92871
below_1e-5 0 0 0 158 3989 4026
below_1e-6 0 0 0 158 3979 4026
dead_features 0 0 0 154 3968 4021
ce_loss_score       0.817 0.31093 0.31097
l0 3664.71826 196.19702 23.88623 8.925.5 0.79297 0.54688
ce_loss_with_sae       4.86256 9.13615 9.1358
ce_loss_without_sae       3.31723 3.31723 3.31723
학습률 30% 30% 30% 60% 58% 56%

기본적으로 coefficient가 늘어날 수록 loss가 늘어나는 것은 당연한데 생각보다 커지는게 너무 크네요

게다가 sparsity는 완전히 망한 것 같고요...

일단 작은 coefficient가 학습이 좀 되어봐야 알겠지만 지금 상황으로선 많이 애매하네요

coefficient가 100인 경우 sparsity

내일부턴 coefficient가 작을 때를 좀 더 나눠서 진행해야 겠네요 

 

일단 coefficient가 작아야 mse가 낮아서 출력이 그대로 나올 것 같은데

문제는 sparsity가 전혀 나오지 않는 다는 것이....

 

GPT의 학습 해석

이 표는 L1 coefficient(L1 규제 계수)에 따른 다양한 손실 값과 학습 지표들을 보여주고 있어. 각 항목을 하나씩 해석하며, L1 계수가 커질 때 학습이 어떻게 변하는지 설명해 볼게.

1. L1 coefficient:

  • L1 규제 계수는 모델에 가중치 희소성을 얼마나 강하게 적용할지를 결정해. 계수가 커질수록 더 많은 뉴런이 0으로 수렴하게 되어 희소성이 증가해.
  • 이 표에서는 0.01에서 100까지 다양한 L1 계수를 설정해 학습 성능을 확인하고 있어.

2. L1 Loss:

  • L1 Loss는 가중치의 절대값의 합으로 계산되며, 모델이 희소성을 얼마나 잘 유지하고 있는지를 나타내.
  • L1 계수가 커질수록 L1 Loss가 점점 줄어드는 것을 볼 수 있어. 이는 더 많은 가중치가 0에 가까워지고 있음을 의미해, 즉 희소성이 증가하고 있다는 뜻이야.

3. MSE Loss (Mean Squared Error Loss):

  • MSE Loss는 모델의 재구성 오차를 측정해, 모델이 입력 데이터를 얼마나 잘 복원하고 있는지를 나타내는 지표야.
  • L1 계수가 작을 때(0.01) MSE가 매우 낮지만, L1 계수가 커질수록 MSE가 급격하게 증가하고 있어. 이는 L1 계수가 커지면서 너무 많은 뉴런이 비활성화되고, 그로 인해 모델이 입력 데이터를 제대로 복원하지 못하게 된다는 걸 의미해.
  • L1 계수가 너무 커지면 MSE가 급격히 높아져 모델 성능이 악화된다는 것을 알 수 있어.

4. Overall Loss:

  • Overall Loss는 L1 Loss와 MSE Loss를 합친 값이야. 전체 손실은 L1 계수가 커질수록 크게 증가하고 있어, 특히 50 이상에서 급격히 증가해. 이는 MSE Loss가 크게 증가하면서 모델 성능이 저하된다는 것을 의미해.
  • 즉, L1 계수가 너무 크면 전체적인 모델 성능이 나빠질 수 있어.

5. below_1e-5, below_1e-6, dead_features:

  • 이 값들은 비활성화된 뉴런의 수를 나타내는 지표야.
  • L1 계수가 작을 때(0.01, 1, 5)에는 비활성화된 뉴런이 거의 없지만, L1 계수가 커지면(50, 100) 수천 개의 뉴런이 비활성화되고 있어.
  • 특히 L1 계수가 50 이상일 때는 거의 모든 뉴런이 비활성화(dead features)가 되어, 너무 많은 뉴런을 비활성화시켜 모델이 과도하게 희소화되는 문제가 발생해.

6. ce_loss_score:

  • ce_loss_score는 모델의 기본 교차 엔트로피 손실을 나타내. L1 계수에 따라 값이 크게 변하지 않으므로, L1 규제가 모델의 예측 성능에는 크게 영향을 미치지 않고 있다는 것을 의미해.

7. L0:

  • L0 값은 0이 아닌 가중치의 개수를 나타내. L1 계수가 커질수록 L0 값이 급격하게 감소하고, 이는 활성화된 가중치의 수가 줄어든다는 걸 의미해. L1 계수가 50 이상일 때 거의 모든 가중치가 0으로 수렴하고 있음을 알 수 있어.

8. ce_loss_with_saece_loss_without_sae:

  • ce_loss_with_sae는 Sparse Autoencoder(SAE)가 적용된 후의 교차 엔트로피 손실이고, ce_loss_without_sae는 SAE 없이 계산된 손실이야.
  • 두 값의 차이가 크지 않으므로, SAE가 적용되었어도 모델의 분류 성능에는 큰 차이가 없다는 것을 알 수 있어. 하지만 L1 계수가 커질수록 ce_loss_with_sae는 약간 증가하고 있어, 이는 과도한 희소성 적용이 성능 저하를 일으킬 수 있다는 신호야.

9. 학습률:

  • 학습률이 30%에서 60%까지 변화하는데, 이는 L1 계수가 커질수록 학습이 점차 느려지는 경향을 보여줘. 이는 활성화된 뉴런이 적어지면서 학습에 필요한 정보가 줄어들기 때문일 수 있어.

해석 및 결론:

  • L1 계수가 작을 때(0.01, 1), 모델은 희소성을 적당히 유지하면서도 낮은 MSE Loss낮은 Overall Loss를 기록하며 좋은 성능을 보이고 있어.
  • L1 계수가 커질수록(특히 50 이상), 모델의 MSE LossOverall Loss가 급격히 증가하고, 비활성화된 뉴런(dead features)이 너무 많아져 모델 성능이 크게 저하되고 있어.
  • 적절한 L1 계수는 1에서 10 사이로 보이며, 이 구간에서 희소성(가중치 0에 가까운 뉴런)이 적당히 적용되면서도 성능 저하가 크지 않다는 것을 알 수 있어.

따라서, L1 계수를 너무 크게 설정하면 모델의 희소성은 극대화되지만, 모델 성능이 떨어지고 과도한 뉴런 비활성화로 인해 중요한 정보가 손실될 수 있음을 주의해야 해.

728x90