| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- 이미지
- Python
- cli
- json schema
- io
- uv init
- Webpack
- Typescript
- PowerShell
- Ollama
- SharedArrayBuffer
- Docker Compose
- podman
- curl
- cross-origin isolated
- FileChannel
- UV
- Vite
- uv pin
- RandomAccessFile
- ndjson
- Java
- docker
- vscode
- json
- secure context
- vim
- Python Install Manager
- tauri
- yaml
- Today
- Total
워로디스
신경망의 층별 특징 학습과 해석 방법 정리 본문
1. 신경망은 층마다 다른 수준의 특징을 학습하는가?
1.1 기본 답변: 대체로 그렇다
깊은 신경망에서는 입력 데이터가 여러 층을 거치면서 점점 더 추상적인 표현으로 변환되는 경향이 있다. 특히 이미지 모델, 그중에서도 CNN에서는 이 현상이 비교적 직관적으로 관찰된다.
1.2 이미지 모델에서의 예시
| 층의 위치 | 주로 학습되는 특징의 예 |
|---|---|
| 초반 레이어 | 선, 모서리, 색 대비, 질감, 방향성 |
| 중간 레이어 | 눈, 바퀴, 창문, 털, 물체의 부분 구조 |
| 후반 레이어 | 얼굴, 자동차, 동물, 장면, 클래스 수준의 의미 |
초반층은 수직선, 대각선, 색 경계 같은 단순한 시각 패턴에 민감할 수 있고, 후반층은 “개 얼굴”, “자동차 형태”, “사람의 얼굴”처럼 더 의미적인 구조에 반응할 수 있다.
1.3 주의할 점
이것은 절대적인 규칙은 아니다. 모든 모델에서 초반층과 후반층의 역할이 항상 명확하게 나뉘는 것은 아니며, 특히 Transformer 계열 모델에서는 여러 종류의 정보가 한 층 안에 섞여 표현될 수 있다.
2. 사람이 특정 층이 학습할 특징을 직접 지정할 수 있는가?
2.1 일반적으로는 직접 지정하지 않는다
보통 사람이 다음과 같이 레이어별 역할을 직접 명령하지는 않는다.
“3층은 수직선을 학습해라.”
“7층은 눈 모양을 학습해라.”
“12층은 자동차 전체를 학습해라.”
대부분의 경우 모델은 데이터, 손실 함수, 모델 구조, 최적화 과정에 따라 내부 표현을 스스로 형성한다.
2.2 사람이 실제로 지정하는 것들
사람이 직접 설계하거나 조정하는 것은 보통 다음 요소들이다.
| 사람이 설계하는 요소 | 설명 |
|---|---|
| 모델 구조 | CNN, Transformer, RNN 등 어떤 구조를 사용할지 결정 |
| 학습 목표 | 이미지 분류, 다음 단어 예측, 객체 검출 등 손실 함수 설정 |
| 학습 데이터 | 어떤 데이터를 통해 표현을 학습할지 결정 |
| 제약 조건 | regularization, bottleneck, attention 제한 등 |
| 보조 학습 목표 | 중간층에 별도 loss를 추가하거나 특정 표현을 유도 |
2.3 어느 정도 유도할 수는 있다
특정 층이 어떤 특징을 학습하도록 완전히 지정하기는 어렵지만, 구조 설계, 보조 손실 함수, 중간층 supervision, bottleneck 설계 등을 통해 어느 정도 유도할 수는 있다.
따라서 결론은 다음과 같다.
층마다 다른 수준의 특징을 학습하는 경향은 있지만, 사람이 각 층의 역할을 직접 배정하는 것은 일반적이지 않다.
3. 어떤 층이 어떤 특징을 학습했는지는 어떻게 확인하는가?
3.1 기본 관점
신경망 내부 표현은 직접적으로 읽을 수 있는 형태가 아니기 때문에, 여러 분석 기법을 통해 간접적으로 추정한다.
핵심 질문은 두 가지다.
- 이 층 또는 뉴런은 어떤 입력에 강하게 반응하는가?
- 이 층의 표현에는 어떤 정보가 담겨 있는가?
3.2 활성화 시각화
활성화 시각화는 특정 레이어, 채널, 뉴런이 어떤 입력에서 강하게 켜지는지 관찰하는 방법이다.
| 관찰 결과 | 가능한 해석 |
|---|---|
| 수직선 이미지에서 강하게 반응 | 수직 edge detector일 가능성 |
| 대각선 이미지에서 강하게 반응 | 특정 방향성에 민감한 필터일 가능성 |
| 색 경계 이미지에서 강하게 반응 | color boundary 또는 contrast에 민감할 가능성 |
| 눈, 바퀴, 창문 패치에서 반응 | 물체 부분 특징에 민감할 가능성 |
3.3 Activation Maximization
Activation maximization은 특정 뉴런이나 채널을 가장 강하게 활성화하는 입력 이미지를 직접 생성하는 방법이다.
대략적인 과정은 다음과 같다.
- 랜덤 노이즈 이미지를 만든다.
- 모델에 넣는다.
- 특정 레이어의 특정 뉴런 활성값이 커지도록 입력 이미지를 수정한다.
- 최종적으로 만들어진 이미지를 관찰한다.
이 방법을 사용하면 특정 뉴런이 선, 질감, 패턴, 눈 모양, 얼굴 형태 등에 민감한지 추정할 수 있다.
3.4 Probing Classifier
Probing은 특정 레이어의 표현에 어떤 정보가 들어 있는지 검사하는 방법이다.
- 이미 학습된 모델을 고정한다.
- 특정 레이어의 출력 표현을 꺼낸다.
- 그 표현만 사용해서 간단한 분류기나 회귀 모델을 학습한다.
- 어떤 정보를 잘 예측할 수 있는지 확인한다.
| Probe 대상 | 해석 |
|---|---|
| 품사 예측 가능 | 해당 층에 문법 정보가 포함되어 있을 가능성 |
| edge 방향 예측 가능 | 낮은 수준 시각 정보가 포함되어 있을 가능성 |
| 물체 클래스 예측 가능 | 고수준 의미 정보가 포함되어 있을 가능성 |
3.5 Ablation
Ablation은 특정 층, 채널, 뉴런, attention head 등을 제거하거나 비활성화한 뒤 모델 성능이 어떻게 변하는지 보는 방법이다.
이 방법은 “무엇에 반응하는가?”보다 “무엇에 필요한가?”를 확인하는 데 가깝다.
| 조작 | 가능한 해석 |
|---|---|
| 특정 CNN 채널 제거 후 얼굴 인식 성능 저하 | 얼굴 관련 특징에 중요할 가능성 |
| 특정 attention head 제거 후 번역 품질 저하 | 구문 정렬 또는 문맥 처리에 관여할 가능성 |
| 초반층 손상 후 전체 이미지 인식 성능 저하 | 기본 시각 특징 추출에 중요할 가능성 |
3.6 Attribution과 Grad-CAM
Attribution, saliency map, Integrated Gradients, Grad-CAM 같은 방법은 모델이 특정 예측을 할 때 입력의 어느 부분이 중요했는지 보여준다.
예를 들어 이미지 분류 모델이 개 사진을 보고 “개”라고 예측했을 때 Grad-CAM이 개의 얼굴 부분을 강조한다면, 모델이 그 영역을 예측에 중요하게 사용했을 가능성이 있다.
다만 이런 방법은 모델의 실제 추론 과정을 완벽하게 보여주는 것은 아니다. 특정 수학적 기준에서 영향도가 높은 입력 부분을 보여준다고 보는 편이 더 정확하다.
3.7 Representation Similarity
Representation similarity 분석은 여러 층의 표현이 서로 얼마나 비슷하거나 다른지 비교하는 방법이다.
같은 이미지들을 모델에 넣고 각 레이어의 activation pattern을 비교하면, 어느 층들이 비슷한 표현 공간을 쓰는지, 어느 지점부터 표현이 크게 달라지는지 확인할 수 있다.
대표적인 방법으로는 CKA, SVCCA 등이 있다.
3.8 Transformer에서의 Attention 분석
Transformer 모델에서는 attention head가 어떤 토큰을 주로 보는지 시각화하기도 한다.
예를 들어 특정 attention head가 이전 단어, 문장부호, 주어-동사 관계, 같은 이름의 토큰 등을 자주 참조한다면 그 head가 특정 문법적 또는 문맥적 기능에 관여할 가능성이 있다.
그러나 attention weight를 곧바로 설명으로 해석하면 안 된다. Attention이 높다고 해서 반드시 그 부분이 최종 예측에 가장 결정적이었다는 뜻은 아니다.
3.9 낮은 수준 시각 특징을 확인하기 위한 샘플 이미지 설계
초기층이 수직선, 대각선, 색 경계 같은 낮은 수준의 시각 특징에 반응하는지 보려면 자연 이미지보다 단순한 합성 이미지를 사용하는 것이 좋다.
자연 이미지는 여러 특징이 동시에 섞여 있기 때문에 원인을 분리하기 어렵다. 따라서 하나의 이미지에는 가능한 한 하나의 특징만 포함시키는 것이 좋다.
3.9.1 수직선 반응 확인용 샘플
| 샘플 이미지 유형 | 목적 |
|---|---|
| 검은 배경 + 가운데 흰색 수직선 | 기본 수직선 반응 확인 |
| 검은 배경 + 왼쪽 흰색 수직선 | 위치 의존성 확인 |
| 검은 배경 + 오른쪽 흰색 수직선 | 위치 의존성 확인 |
| 흰 배경 + 검은색 수직선 | contrast polarity 확인 |
| 회색 배경 + 밝은 수직선 | 명암 대비 반응 확인 |
선의 두께도 1px, 2px, 4px, 8px 등으로 바꾸어 보는 것이 좋다. 그래야 특정 채널이 얇은 edge에 반응하는지, 두꺼운 bar 형태에 반응하는지 구분할 수 있다.
3.9.2 대각선 반응 확인용 샘플
대각선 반응을 확인하려면 선의 방향만 바꾼 이미지들을 만든다.
| 각도 | 의미 |
|---|---|
| 0도 | 수평선 |
| 45도 | 오른쪽 위 방향 대각선 |
| 90도 | 수직선 |
| 135도 | 오른쪽 아래 방향 대각선 |
더 체계적으로 분석하려면 0°, 15°, 30°, 45°, 60°, 75°, 90°, 105°, 120°, 135°, 150°, 165°처럼 여러 각도의 선 이미지를 만든다.
각 이미지에 대해 특정 채널의 평균 activation이나 최대 activation을 측정하면 orientation tuning curve를 만들 수 있다.
3.9.3 색 경계 반응 확인용 샘플
색 경계 반응을 보려면 이미지의 한쪽과 다른 쪽의 색이 다르게 구성된 이미지를 만든다.
| 샘플 이미지 | 목적 |
|---|---|
| 왼쪽 빨강 / 오른쪽 파랑 | 색 경계 반응 확인 |
| 왼쪽 파랑 / 오른쪽 빨강 | 색 순서 변화에 대한 반응 확인 |
| 왼쪽 초록 / 오른쪽 보라 | 다른 색 조합에서도 반응하는지 확인 |
| 위쪽 빨강 / 아래쪽 파랑 | 경계 방향 변화 확인 |
| 대각선 기준 빨강 / 파랑 | 대각선 색 경계 반응 확인 |
중요한 점은 색 차이와 밝기 차이를 분리해야 한다는 것이다.
| 비교군 | 목적 |
|---|---|
| 밝기만 다른 회색-회색 경계 | luminance edge 반응 확인 |
| 색상은 다르지만 밝기는 비슷한 색-색 경계 | 색상 차이 자체에 대한 반응 확인 |
| 색상도 밝기도 다른 경계 | 일반적인 색 경계 반응 확인 |
| 색은 같고 밝기만 바뀌는 경계 | 명암 대비만으로 반응하는지 확인 |
3.9.4 Gabor 패턴
초기 시각 특징을 확인할 때는 단순한 선 이미지뿐 아니라 Gabor patch도 자주 사용한다.
Gabor patch는 특정 방향의 줄무늬가 흐릿한 영역 안에 들어 있는 패턴이다. 생물학적 시각 피질의 edge detector나 CNN 초기 필터와 유사한 자극으로 자주 사용된다.
| Gabor 패턴 유형 | 확인 목적 |
|---|---|
| 수직 줄무늬 Gabor | 수직 방향성 반응 |
| 수평 줄무늬 Gabor | 수평 방향성 반응 |
| 45도 줄무늬 Gabor | 대각선 방향성 반응 |
| 135도 줄무늬 Gabor | 반대 대각선 방향성 반응 |
| 고주파 줄무늬 | 세밀한 패턴 반응 |
| 저주파 줄무늬 | 넓은 패턴 반응 |
3.9.5 좋은 샘플 이미지의 조건
| 조건 | 이유 |
|---|---|
| 배경이 단순해야 한다 | 다른 특징이 섞이지 않게 하기 위해 |
| 한 번에 한 속성만 바꿔야 한다 | 반응 원인을 분리하기 위해 |
| 위치를 여러 개 바꿔야 한다 | 위치 의존성을 확인하기 위해 |
| 각도를 여러 개 바꿔야 한다 | 방향 선택성을 확인하기 위해 |
| 색상과 밝기를 따로 조절해야 한다 | 색 반응과 명암 반응을 구분하기 위해 |
| 균일 이미지가 있어야 한다 | baseline 반응을 확인하기 위해 |
| 랜덤 노이즈가 있어야 한다 | 비특이적 반응을 확인하기 위해 |
| 자연 이미지 패치도 함께 봐야 한다 | 합성 자극에서만 나타나는 착시를 피하기 위해 |
3.10 분석 절차와 해석 예시
특정 레이어와 채널이 수직선에 반응하는지 확인하는 절차는 다음과 같다.
- 수직선, 수평선, 대각선, 색 경계, 균일 이미지, 랜덤 노이즈 이미지를 준비한다.
- 각 이미지를 모델에 입력한다.
- 분석하고 싶은 레이어의 activation을 추출한다.
- 특정 채널의 평균값 또는 최대값을 계산한다.
- 어떤 이미지에서 activation이 가장 큰지 비교한다.
- 필요하면 각도별, 위치별, 두께별 반응 곡선을 그린다.
예를 들어 결과가 다음과 같다고 하자.
| 입력 이미지 | 채널 17 activation |
|---|---|
| 수평선 | 0.12 |
| 수직선 | 2.83 |
| 45도 대각선 | 0.44 |
| 135도 대각선 | 0.51 |
| 균일 회색 | 0.03 |
이 경우 채널 17은 수직선 계열에 강하게 반응한다고 해석할 수 있다.
색 경계 실험 결과가 다음과 같다면 다른 해석을 할 수 있다.
| 입력 이미지 | 채널 31 activation |
|---|---|
| 빨강-파랑 경계 | 2.10 |
| 초록-보라 경계 | 1.97 |
| 회색-회색 경계 | 0.18 |
| 균일 빨강 | 0.05 |
| 균일 파랑 | 0.06 |
이 경우 채널 31은 색 경계에 민감할 가능성이 있다.
3.11 합성 이미지와 자연 이미지 분석을 함께 해야 하는 이유
합성 이미지는 특정 속성에 대한 반응을 분리해서 보기 좋다. 예를 들어 수직선 하나만 있는 이미지를 넣으면 수직 방향 edge에 대한 반응을 직접 확인할 수 있다.
하지만 합성 이미지에서 반응한다고 해서 실제 자연 이미지에서도 그 특징을 같은 방식으로 사용한다고 단정할 수는 없다.
따라서 보통은 두 가지 분석을 함께 한다.
첫째, 합성 이미지 테스트를 한다.
이 채널은 90도 선 이미지에서 가장 강하게 반응한다.
둘째, 자연 이미지에서 top activation patch를 모아본다.
실제 사진들 중 이 채널을 가장 강하게 켠 부분을 모아보니 건물 모서리, 창문 세로줄, 나무 줄기 같은 수직 구조가 많다.
두 결과가 일치하면 해석의 신뢰도가 높아진다.
4. 전체 요약
신경망은 학습 과정에서 층별로 서로 다른 수준의 표현을 형성하는 경향이 있다. 이미지 모델에서는 초반층이 선, 모서리, 색 경계 같은 낮은 수준 특징을, 중간층이 물체의 부분 구조를, 후반층이 클래스나 의미 수준의 고수준 특징을 학습하는 경우가 많다.
하지만 사람이 각 층의 역할을 직접 지정하는 것은 일반적이지 않다. 모델은 데이터, 구조, 손실 함수, 최적화 과정에 따라 내부 표현을 스스로 형성한다. 사람은 모델 구조나 보조 학습 목표를 통해 어느 정도 유도할 수 있을 뿐이다.
어떤 층이 어떤 특징을 학습했는지는 활성화 시각화, activation maximization, probing, ablation, attribution, representation similarity 같은 방법으로 분석한다. 이 중 하나만으로 결론을 내리기보다는 여러 방법을 함께 사용해야 한다.
초기층이 수직선, 대각선, 색 경계 같은 낮은 수준 특징에 반응하는지 보려면 자연 이미지보다 단순한 합성 이미지를 사용하는 것이 좋다. 가장 중요한 원칙은 하나의 이미지에서 한 가지 속성만 바꾸는 것이다.
'Data Science' 카테고리의 다른 글
| 선형 회귀와 로지스틱 회귀의 본질적 구분 (0) | 2026.05.27 |
|---|
