[실험] Activation Function 변경 실험
I. Activation Function 변경 실험
1. 개요
- Activation 함수에 따라 최적의 기준값을 찾기 위한 실험이 필요함.
- Activation 함수의 특성에 따라 기준값이 달라질 것으로 예상
- 실험은 activation 함수를 ReLU, Leaky_ReLU로 변경하여 실험 진행
2. ReLU
2-1 활성화 함수 ReLU로 바꾸고 마스크 안 씌운 원본 PPL
- Activation 함수는 ReLU로 고정
- Activation 기준값은 0, 0.2, 0.8로 변경하며 실험 진행
- 활성화 함수 ReLU로 바꾸고 마스크 안 씌운 PPL 값은 아래와 같다.
en | zh | fr | es | vi | id | ja |
---|---|---|---|---|---|---|
1.6559926189583372 | 1.4350586649823682 | 1.6037662982402419 | 1.5749264995950418 | 0.8922599279806089 | 1.3296973100090144 | 1.1987707914690708 |
2-2 activation: 0
en | zh | fr | es | vi | id | ja | |
---|---|---|---|---|---|---|---|
en | 8.357254 | 8.257414 | 8.566660 | 8.591500 | 8.686800 | 8.815977 | 8.052752 |
zh | 8.348621 | 8.125364 | 8.565072 | 8.586580 | 8.697079 | 8.814649 | 7.817582 |
fr | 8.338794 | 8.255168 | ==8.630081== | ==8.611170== | 8.689045 | 8.824647 | 8.075893 |
es | 8.333653 | ==8.259196== | 8.559010 | 8.581338 | 8.686871 | 8.812092 | 8.057066 |
vi | ==8.372846== | 8.217999 | 8.554459 | 8.577243 | ==8.726312== | 8.703884 | ==8.080677== |
id | 8.336981 | 8.188861 | 8.547189 | 8.600646 | 8.455047 | 8.739403 | 8.072101 |
ja | 8.353275 | 8.174240 | 8.562021 | 8.588363 | 8.724016 | ==8.834107== | 7.751126 |
Top1-Top2 | 0.015593 | 0.001782 | 0.063421 | 0.010525 | 0.002296 | 0.009461 | 0.004784 |
2-3 activation: 0.2
en | zh | fr | es | vi | id | ja | |
---|---|---|---|---|---|---|---|
en | ==8.371642== | 8.253672 | 8.566486 | 8.595325 | 8.686823 | 8.818622 | 8.042230 |
zh | 8.345046 | 8.091299 | 8.559071 | 8.578138 | 8.620283 | 8.820940 | 7.825825 |
fr | 8.321079 | ==8.279862== | ==8.724480== | ==8.639166== | 8.765956 | 8.833689 | 8.054669 |
es | 8.341667 | 8.257394 | 8.578411 | 8.620524 | 8.717099 | 8.811896 | ==8.057914== |
vi | 8.350756 | 8.259632 | 8.552663 | 8.580312 | ==8.785112== | 8.828061 | 8.056093 |
id | 8.355052 | 8.234831 | 8.569144 | 8.615914 | 8.711198 | 8.754474 | 8.055268 |
ja | 8.349000 | 8.185049 | 8.558954 | 8.583944 | 8.732740 | ==8.851138== | 7.720386 |
Top1-Top2 | 0.016590 | 0.020230 | 0.146068 | 0.018641 | 0.019156 | 0.017449 | 0.001821 |
2-4 activation: 0.8
en | zh | fr | es | vi | id | ja | |
---|---|---|---|---|---|---|---|
en | 8.374427 | 8.265597 | 8.586283 | 8.602981 | 8.700918 | 8.829538 | 8.053552 |
zh | 8.337144 | ==8.311241== | 8.557743 | 8.582128 | 8.677861 | 8.823130 | 7.975646 |
fr | 8.346922 | 8.254410 | ==8.669330== | 8.628724 | 8.727769 | 8.836971 | 8.033346 |
es | 8.362827 | 8.269430 | 8.563429 | ==8.636271== | 8.691141 | 8.811491 | 8.066188 |
vi | 8.347503 | 8.303553 | 8.565223 | 8.623304 | ==9.177853== | 8.792824 | 8.048205 |
id | ==8.399783== | 8.263017 | 8.558895 | 8.625415 | 8.704255 | ==8.845498== | 8.039065 |
ja | 8.363848 | 8.266405 | 8.562790 | 8.589916 | 8.683746 | 8.817320 | ==8.197731== |
Top1-Top2 | 0.025356 | 0.007688 | 0.083047 | 0.007547 | 0.450084 | 0.008527 | 0.131543 |
3 activation 함수: Leaky_ReLU
-
Activation 함수는 Leaky_ReLU로 고정
-
Activation 기준값은 0, 0.2, 0.8로 변경하며 실험 진행
-
활성화 함수 Leaky_ReLU로 바꾸고 마스크 안 씌운 PPL 값은 아래와 같다.
en | zh | fr | es | vi | id | ja |
---|---|---|---|---|---|---|
1.6559926189583372 | 1.4350586649823682 | 1.6037662982402419 | 1.5749264995950418 | 0.8922599279806089 | 1.3296973100090144 | 1.1987707914690708 |
3-1 activation: 0
en | zh | fr | es | vi | id | ja | |
---|---|---|---|---|---|---|---|
en | ==8.294554== | ==7.748488== | 8.473761 | ==8.503105== | 7.977347 | 8.901530 | 7.439970 |
zh | 8.272188 | 7.586136 | 8.467262 | 8.492191 | 7.951980 | 8.905836 | 7.171393 |
fr | 8.269184 | 7.735469 | ==8.545139== | 8.500246 | 7.990508 | 8.894294 | 7.474138 |
es | 8.269875 | 7.732766 | 8.464030 | 8.482678 | 7.975952 | 8.890165 | 7.431672 |
vi | 8.244601 | 7.745340 | 8.432677 | 8.474195 | ==8.136992== | 8.758988 | ==7.546245== |
id | 8.253427 | 7.724309 | 8.454509 | 8.496476 | 7.887800 | 8.529814 | 7.472472 |
ja | 8.265898 | 7.655602 | 8.462954 | 8.499063 | 7.993908 | ==8.907767== | 7.123936 |
Top1-Top2 | 0.022366 | 0.003148 | 0.071379 | 0.002859 | 0.143084 | 0.001931 | 0.072107 |
3-2 activation: 0.2
en | zh | fr | es | vi | id | ja | |
---|---|---|---|---|---|---|---|
en | 8.284662 | 7.729647 | 8.468645 | 8.504524 | 7.980445 | 8.891819 | 7.421123 |
zh | 8.265262 | 7.612902 | 8.453099 | 8.485843 | 7.964909 | 8.888446 | 7.233593 |
fr | 8.246234 | 7.745350 | ==8.600997== | 8.509551 | 8.015075 | 8.901105 | 7.479665 |
es | 8.261915 | 7.729713 | 8.470362 | 8.503294 | 7.996648 | 8.875376 | 7.442729 |
vi | 8.259569 | ==7.765986== | 8.435579 | 8.467576 | ==8.372714== | 8.919489 | 7.455225 |
id | ==8.285628== | 7.758998 | 8.476169 | ==8.521636== | 8.113198 | 8.734288 | ==7.498848== |
ja | 8.259858 | 7.695450 | 8.466221 | 8.496862 | 8.009003 | ==8.926769== | 7.309366 |
Top1-Top2 | 0.000967 | 0.006989 | 0.124828 | 0.012085 | 0.259516 | 0.007280 | 0.019183 |
3-3 activation: 0.8
en | zh | fr | es | vi | id | ja | |
---|---|---|---|---|---|---|---|
en | ==8.295885== | 7.723570 | 8.480654 | 8.512862 | 7.974187 | ==8.916600== | 7.421620 |
zh | 8.274496 | ==7.818634== | 8.451535 | 8.489549 | 7.984244 | 8.910359 | 7.421642 |
fr | 8.241008 | 7.749780 | ==8.549860== | 8.528387 | 7.993308 | 8.885095 | 7.461240 |
es | 8.267332 | 7.752016 | 8.448378 | ==8.540645== | 8.000197 | 8.871218 | 7.466754 |
vi | 8.270486 | 7.741011 | 8.460619 | 8.497438 | ==8.482788== | 8.867784 | 7.447692 |
id | 8.278929 | 7.687565 | 8.439062 | 8.503178 | 7.967343 | 8.654910 | 7.375441 |
ja | 8.262660 | 7.779741 | 8.449811 | 8.485206 | 7.990470 | 8.874827 | ==7.820613== |
Top1-Top2 | 0.016956 | 0.038893 | 0.069206 | 0.012258 | 0.482591 | 0.006241 | 0.353859 |
4 실험 결과 분석
-
활성화 함수 변경 (SiLU → ReLU)의 영향
-
마스크를 적용하지 않은 상태에서의 PPL 값은 활성화 함수 변경에 따른 큰 차이를 보이지 않음.
-
마스크 적용 후에는 타겟 언어뿐만 아니라 전체적인 PPL 값이 전반적으로 상승함.
-
Activation 기준값을 0.8로 높인 경우, 기존 실험과 유사한 경향을 보였지만 여전히 전반적인 PPL 값은 높게 나타남.
-
-
활성화 함수 변경에 따른 뉴런 특성 변화 가능성
-
ReLU를 사용할 경우, 언어 특화 뉴런이 아닌 의미 특화 뉴런이 주요하게 선택되는 경향이 있는 것으로 추정됨.
-
이로 인해 마스킹된 뉴런이 타겟 언어에 기여하는 정보가 줄어들어 PPL 값이 상승했을 가능성이 있음.
-
-
추가 분석 방향
-
위 가설을 검증하기 위해, 마스킹된 뉴런들의 언어별 분포 또는 의미 기반 분포를 분석할 필요가 있음.
-
특히 SiLU와 ReLU 사용 시 마스킹된 뉴런의 종류와 위치에 차이가 있는지를 비교 분석하면 유의미한 인사이트를 도출할 수 있음.
-
5. Distribution of masked neurons
- 활성화 함수를 바꾼후 mask 처리되는 뉴런들이 어느 위치에 분포하는 지 알아보기 위함.
- 활성화 함수를 ReLU 또는 Leaky_ReLU로 바꾸었을 때 언어 특화 뉴런이 아닌 의미 특화 뉴런들이 mask 처리되는 것 같음.
5-1 activation 함수: SiLU
Activation: 0 | Activation: 0.2 | Activation: 0.8 |
---|---|---|
![]() |
![]() |
![]() |
5-2 activation 함수: ReLU
Activation: 0 | Activation: 0.2 | Activation: 0.8 |
---|---|---|
![]() |
![]() |
![]() |
5-3 activation 함수: Leaky_ReLU
Activation: 0 | Activation: 0.2 | Activation: 0.8 |
---|---|---|
![]() |
![]() |
![]() |
6 분석
-
뉴런 선택 분포
- ReLU와 Leaky ReLU 모두에서 activation 기준값이 0 또는 0.2일 때, 중간 레이어에서 많은 뉴런들이 선택되는 경향을 보임.
- 이는 언어 특화 뉴런들이 주로 레이어의 끝단에서 나타나는 기존 분포와는 다른 양상임.
-
의미 특화 뉴런 선택 가능성
- 위와 같은 분포는 해당 조건에서 언어 특화 뉴런보다는 의미 특화 뉴런이 주로 선택된다는 점을 시사함.