티스토리 뷰

반응형

🧠 블로그 1회차

왜 퍼셉트론은 생각을 못할까?

— 오차역전파가 등장하기 전, 신경망은 어디서 멈췄는가


1. 컴퓨터도 생각할 수 있을까?

아이들은 단어 하나를 배우면 규칙을 응용할 수 있습니다.

  • walk → walked
  • jump → jumped
  • go → went (예외도 암기!)

이건 단순한 암기가 아니라,
👉 규칙과 예외를 스스로 구별하고 표현하는 능력입니다.

컴퓨터에게도 이런 능력을 줄 수 있을까요?


2. 퍼셉트론: 컴퓨터의 기본 뉴런

퍼셉트론은 뇌의 뉴런을 흉내 낸 계산 장치입니다.
입력에 숫자를 곱하고, 일정 값을 넘으면 1, 아니면 0을 출력합니다.

수식으로 쓰면 이렇게 됩니다:

y = f(w₁x₁ + w₂x₂ + b)
  • ( x₁, x₂ ): 입력값 (예: 0 또는 1)
  • ( w₁, w₂ ): 가중치
  • ( b ): 바이어스
  • ( f ): 계단 함수 또는 시그모이드 함수

3. 퍼셉트론이 잘하는 일: AND 문제

예를 들어 ‘AND’ 문제는 퍼셉트론이 잘 해결합니다.

x₁ x₂ 출력 (y)
0 0 0
0 1 0
1 0 0
1 1 1

이걸 좌표평면에 표시해볼게요:

x₂
↑
1 |     ○       ●
  |             
0 |     ○       ○
  +-------------→ x₁
    0       1
  • ●: 출력 1
  • ○: 출력 0

직선 하나로 0과 1을 구분할 수 있습니다.
→ 선형 분리(Linear separable)


4. 퍼셉트론이 못 푸는 문제: XOR

이제 ‘XOR’ 문제를 보겠습니다.

x₁ x₂ 출력 (y)
0 0 0
0 1 1
1 0 1
1 1 0

좌표평면으로 보면 이렇게 됩니다:

x₂
↑
1 |     ●       ○
  |             
0 |     ○       ●
  +-------------→ x₁
    0       1
  • ●: 출력 1
  • ○: 출력 0

→ 어떤 직선을 그어도 ●과 ○를 완벽히 나눌 수 없습니다.
→ 이걸 비선형 문제라고 부릅니다.
→ 퍼셉트론은 이걸 절대로 못 풉니다.


5. 왜 못 푸는가?

퍼셉트론은 입력과 출력 사이를 직선으로 나누는 구조이기 때문입니다.

XOR은 입력과 출력 사이에
👉 중간 개념(“두 입력이 다르면 1”)
이 있어야 해결이 가능합니다.

이런 중간 개념을 만들기 위해 필요한 것이
바로 은닉층(Hidden Layer) 입니다.


6. 은닉층이 있으면 해결될까?

아이디어는 이렇습니다:

  1. 입력 → 은닉층 → 출력
  2. 은닉층은 “입력의 특징”을 감지
  3. 출력층은 그걸 이용해 정답을 결정

즉, XOR 문제를 아래처럼 “두 단계로 나누면” 해결할 수 있습니다:

입력 → 중간 표현 → 출력

하지만 여기서 큰 문제가 하나 생깁니다.


7. 은닉층은 어떻게 학습시킬까?

출력층은 정답이 있으니까 학습할 수 있습니다.
오차 = (정답 - 출력)² 로 계산 가능하니까요.

하지만 은닉층은 정답이 없습니다.
→ “이 뉴런이 잘 작동했는지”를 알 수 없습니다.
→ 그래서 오차를 어떻게 계산할지 모릅니다.

이것이 당시 신경망 연구의 큰 벽이었습니다.


8. 문제 정리

  • 퍼셉트론은 직선으로만 문제를 나눕니다 → XOR 같은 문제는 못 풉니다.
  • 은닉층을 넣으면 해결할 수 있을 것 같지만…
  • 은닉층에는 정답이 없어서 학습이 안 됩니다.

9. 다음 회차 예고

❓ 은닉층을 학습시키는 방법은 없을까?

바로 그 해답이
👉 오차역전파 알고리즘 (Backpropagation) 입니다.


📌 요약

항목 설명
퍼셉트론 입력에 가중치를 곱해 출력을 내는 구조
선형 분리 직선 하나로 클래스 나누기 가능
XOR 문제 직선으로 나눌 수 없는 문제 (비선형 문제)
은닉층 중간 개념을 만들기 위한 층
한계 은닉층은 정답이 없어 학습이 불가능했음

정답 없는 은닉층, 어떻게 오차를 줄일까?

— 오차역전파 알고리즘이 등장한 수학적 이유


1. 은닉층에는 정답이 없다

지난 글에서 우리는 퍼셉트론이 XOR 같은 문제를 못 푼다는 사실을 확인했습니다.
그래서 은닉층(hidden layer) 을 넣었죠.

입력층 → 은닉층 → 출력층

입력은 그대로인데, 은닉층에서 중간 개념을 만들어
출력층이 문제를 잘 풀 수 있도록 도와주는 구조입니다.

그런데… 문제는 은닉층에는 정답이 없다는 것입니다.
정답이 없으면 → 오차도 없고 → 학습도 못 합니다.


2. 출력층은 왜 학습이 가능한가?

출력층은 정답과 비교해서 오차(error) 를 계산할 수 있습니다.

✏️ 평균제곱오차 (MSE)

E = \frac{1}{2}(T - O)^2
  • ( T ): 정답 (Target)
  • ( O ): 출력값 (Output)
  • ( E ): 오차

이렇게 오차를 수식으로 표현하면,
그 오차를 줄이기 위한 방향을 계산할 수 있습니다.


3. 오차를 줄이는 방법: 경사 하강법

오차를 줄이려면, 가중치를 어떻게 바꿔야 할지 알아야 합니다.
그 방향을 알려주는 것이 기울기(gradient) 입니다.

✏️ 경사 하강법

w \leftarrow w - \eta \cdot \frac{\partial E}{\partial w}
  • ( \eta ): 학습률
  • ( \frac{\partial E}{\partial w} ): 가중치에 대한 오차의 기울기

기울기는 오차가 가장 빨리 줄어드는 방향을 뜻합니다.
마치 산을 내려갈 때 가장 가파른 쪽으로 내려가는 것처럼요.


4. 퍼셉트론은 왜 배울 수 없었나?

퍼셉트론은 아래와 같은 계단 함수를 사용합니다:

f(x) = \begin{cases}
1 & x > 0 \\
0 & x \leq 0
\end{cases}

문제는 이 함수가 ‘끊겨 있는’ 함수라는 것입니다.


📌 잠깐! 왜 끊긴 함수는 미분할 수 없을까?

비유로 설명하자면:

  • 미분은 그래프에서 기울기를 구하는 작업입니다
  • 그런데 계단처럼 갑자기 점프하는 함수
    그 점에서의 기울기를 계산할 수 없습니다

미분을 하려면, 함수가 연속(끊김 없이 연결) 되어 있어야 합니다.
즉, 그래프가 뚝 끊기면 → 기울기(접선)를 그릴 수 없기 때문입니다.


5. 그래서 시그모이드 함수가 도입되었다

이 논문은 이런 문제를 해결하기 위해
연속적이고, 부드럽고, 미분 가능한 함수를 씁니다.
그게 바로 시그모이드(sigmoid) 함수입니다.

f(x) = \frac{1}{1 + e^{-x}}
  • 입력이 작으면 0에 가까워지고
  • 크면 1에 가까워지며
  • 중간에서 부드럽게 바뀌는 S자 곡선

→ 이 함수는 연속적이고,
→ 어디서든 미분이 가능합니다!

✏️ 시그모이드의 도함수

f'(x) = f(x)(1 - f(x))

이 간단한 도함수 덕분에
오차를 줄일 방향을 계산할 수 있게 됩니다.


6. 출력층은 이렇게 학습합니다

정답과 예측의 차이가 생기면,
그 차이(오차)를 줄이기 위해
출력 뉴런의 가중치를 조정해야 합니다.

그때 필요한 것이 델타(δ) 라는 값입니다.

✏️ 출력 뉴런의 델타

\delta_k = (O_k - T_k) \cdot f'(net_k)
  • ( O_k ): 출력값
  • ( T_k ): 정답
  • ( f'(net_k) ): 도함수
    → 오차의 방향 × 민감도

7. 그럼 은닉층은 어떻게?

여기서 다시 문제로 돌아옵니다.

❓ 은닉층에는 정답이 없는데, 어떻게 오차를 줄이죠?

이게 이 논문이 풀려고 한 진짜 문제입니다.


8. 오차를 거꾸로 전달하자: 오차역전파

출력 뉴런에서 계산한 오차를
되돌려서 은닉 뉴런에 나눠주는 방식입니다.

이 과정에 사용되는 수학적 도구가
바로 연쇄 법칙 (Chain Rule) 입니다.


9. 오차 전달 구조 (Fig. 2 개념 요약)

Forward:
입력층 → 은닉층 → 출력층

Backward:
         δ출력
            ↑
       δ은닉 = 출력오차 × 연결가중치 × 도함수

출력 오차가 크고, 연결 가중치가 크고, 도함수가 크면
→ 그만큼 은닉 뉴런이 오차에 책임이 있다는 뜻


10. 은닉 뉴런 오차 계산 공식

\delta_j = f'(net_j) \cdot \sum_k w_{jk} \cdot \delta_k
  • ( w_{jk} ): 은닉 → 출력 연결 가중치
  • ( \delta_k ): 출력 오차
  • ( f'(net_j) ): 은닉 뉴런의 도함수

→ 출력 오차를 거꾸로 분배해 은닉층도 학습이 가능해졌습니다.


11. 표현(Representation)의 의미

이제 단순히 “은닉층도 학습할 수 있다”는 걸 넘어서,
이 논문이 보여준 진짜 의미에 대해 이야기해봅시다.

❗ 은닉층은 단순 계산기가 아니라,
입력 정보를 새로운 방식으로 ‘이해’하는 공간입니다.

예를 들어

  • 입력: 단어의 스펠링
  • 은닉층: ‘규칙 동사’와 ‘불규칙 동사’를 구별하는 공간
  • 출력: 과거형 예측

→ 이때 은닉층은
입력을 의미 공간으로 다시 배치하는 작업을 한 셈입니다.


📌 이번 회차 요약

항목 설명
퍼셉트론 한계 미분 불가능한 함수 사용 → 학습 불가
시그모이드 도입 연속 + 미분 가능 → 경사하강법 사용 가능
출력 오차 정답과 출력 차이 → 델타 계산
은닉 오차 출력 오차를 거꾸로 전달해서 계산
연쇄 법칙 역전파 수학의 핵심
표현 은닉층이 입력을 이해하는 방식 자체

표현이란 무엇인가:

은닉층은 데이터를 어떻게 이해하는가?

— Representation은 단순한 값이 아니라, 학습된 구조이다


1. 진짜 질문부터 시작합니다

컴퓨터가 단어를 보고 과거형을 맞힐 수 있다면,
단순히 정답을 외운 걸까요?
아니면 단어의 규칙과 예외를 이해한 걸까요?

이 논문은 여기에 대답합니다.

  • 단순한 정답 예측이 아니라
  • 입력 데이터를 해석해서, 의미 있는 구조로 재배열하는 과정,
  • 즉, 표현(Representation) 이 학습되었음을 은닉층의 출력값으로 증명합니다.

2. 표현이란 무엇인가?

은닉층의 출력값을 흔히 “표현”이라고 부릅니다.
그런데 여기서 말하는 표현이란 단순한 숫자값이 아닙니다.

표현이란:
컴퓨터가 학습을 통해 입력 데이터를 예측에 유리한 방식으로 변환한 구조입니다.
즉, 입력 데이터가 가진 의미적 차이와 유사성숫자 공간에 배열한 것입니다.


3. 표현은 어떻게 만들어질까?

— 데이터와 오차, 그리고 은닉층의 역할

학습 초기에 컴퓨터는 모든 단어를 동일하게 처리합니다.
예를 들어 단어 “walk”, “go”, “jump”에 대해 은닉층의 출력은 아래처럼 비슷합니다:

walk → [0.51, 0.49]  
go   → [0.52, 0.48]  
jump → [0.50, 0.50]

그 이유는:

  • 가중치가 랜덤 초기화돼 있기 때문
  • 데이터에 대한 구조적인 이해가 전혀 없는 상태이기 때문

4. 그럼 학습은 어떤 역할을 하나?

학습은 아래의 과정으로 이루어집니다:

  1. 입력을 받아 → 출력값을 계산하고
  2. 출력값과 정답의 차이를 측정한 뒤
  3. 그 오차를 은닉층까지 역전파하여
  4. 은닉층 가중치를 조금씩 바꿉니다

이걸 수백 번 반복하면 은닉층은 아래처럼 바뀝니다:

walk → [0.92, 0.13]  
go   → [0.14, 0.89]  
jump → [0.90, 0.16]

→ 규칙 동사 walk와 jump는 비슷한 위치에,
→ 불규칙 동사 go는 완전히 다른 방향으로 이동하게 됩니다.


5. Fig. 3: 실제 실험에서 본 은닉층 표현

실험에서는 약 460개의 동사를 학습시켰습니다.
학습이 완료된 뒤, 은닉층 뉴런의 출력값을 2D 평면에 시각화했더니:

  • 규칙 동사들끼리는 가깝게 뭉쳐 있고
  • 불규칙 동사들은 다양한 방향으로 분리되어 있음

이 말은:

컴퓨터는 단순히 정답을 예측하는 게 아니라,
입력 데이터 간의 유사성과 차이를 반영한 구조를 은닉층 안에 만들었다는 뜻입니다.


6. 이게 바로 표현(Representation)

표현은 ‘단어 → 과거형’ 이라는 문제를 풀기 위해
컴퓨터가 스스로 만든 데이터의 새로운 좌표계입니다.

  • 원래 입력은 철자였지만
  • 은닉층은 그것을 “규칙 동사 vs 예외 동사”처럼
    분류하기 좋은 방식으로 바꾸었습니다.

이 과정을 통해 컴퓨터는
의미적으로 비슷한 입력을 가까운 값으로,
다른 입력은 멀리 떨어진 값으로 표현하게 된 것입니다.


7. XOR 문제: 표현의 또 다른 예시 (Fig. 4)

XOR 문제는 단층 퍼셉트론이 절대 못 풀던 문제입니다.

입력-출력 예시:

입력 출력
0,0 0
0,1 1
1,0 1
1,1 0

여기서도 신경망은 학습을 통해
은닉 뉴런이 “두 입력이 다를 때만 활성화되는 구조”를 만듭니다.

예시:

(0,1) → 은닉 = 0.9  
(1,0) → 은닉 = 0.9  
(0,0) → 은닉 = 0.1  
(1,1) → 은닉 = 0.1

→ 은닉 뉴런이 "다르다"라는 개념을 표현하는 중간 개념으로 작동한 것입니다.


8. 표현은 “개념의 공간”이다

정리하자면,

  • 표현은 단지 은닉층 값이 아니라
  • 입력 데이터를 ‘구분하고 분류할 수 있는 공간’으로 바꾼 결과입니다

즉, 표현이란:
컴퓨터가 배운 개념 자체를 숫자 벡터로 구현한 것

이 공간 안에서는:

  • 같은 규칙을 따르는 단어끼리는 가깝고
  • 예외는 따로 떨어져 있고
  • 특정 추상 개념(XOR의 “다름”)이 은닉 뉴런 하나로 구현됩니다.

📌 이번 회차 요약

개념 설명
표현 은닉층이 학습을 통해 만든 입력의 재해석 구조
데이터 관점 철자나 수치를 입력받아 유사성/차이점 기반으로 분류
학습 관점 출력 오차를 역전파하여 은닉층 가중치를 조정
Fig. 3 규칙/예외 동사를 분리한 은닉층 공간
Fig. 4 XOR 문제의 “다름”을 은닉 뉴런이 표현함
핵심 표현은 숫자가 아니라 컴퓨터가 만든 개념의 지도이다

컴퓨터가 단어의 ‘의미’를 구분했다고요?

— 표현(Representation)이 단어의 관계까지 드러내는 실험, Fig. 5


1. 단어에도 거리감이 있다면?

우리는 “엄마”와 “부모”가 비슷하고,
“엄마”와 “자동차”는 다르다는 걸 자연스럽게 느낍니다.

이런 감각은 단어 사이에 내재된 의미 구조
머릿속에 좌표처럼 가지고 있기 때문입니다.

그런데...

❗ 컴퓨터도 그런 ‘의미 공간’을 스스로 만들어낼 수 있다면요?

이번 회차는 바로 이 질문을 다룬 Fig. 5 실험을 중심으로 설명합니다.


2. 실험 개요: Fig. 5

실험 목적

  • 신경망이 단어와 숫자의 의미적 관계를 표현할 수 있는가?
  • 즉, “이건 사람 이름이다”, “이건 수량이다” 같은
    의미 차이를 내부에서 구분할 수 있는가?

실험 구성

항목 내용
입력 단어 (예: MAN, WOMAN, ONE, TWO 등)
출력 해당 단어의 one-hot 벡터
은닉층 2개 뉴런 (그래프 시각화를 위해 제한)
학습 방법 오차역전파를 사용한 반복 학습

3. 은닉층은 어떤 표현을 만들었는가?

학습이 끝난 뒤,
각 단어에 대해 은닉층의 2개 뉴런 출력값
2차원 평면에 그래프로 그려보았습니다.

결과는 매우 놀라웠습니다.

(숫자)
  TWO   THREE
    ●      ●
  ONE
    ●

(사람 이름)
       ●      ●
     MAN    WOMAN
  • 숫자들은 한쪽에
  • 사람 이름은 다른 한쪽에
  • 두 그룹이 은닉층에서 공간적으로 분리됨

컴퓨터는 단어 철자만 보고도
숫자 vs 사람 이름을 구분하는 의미 표현을 학습한 셈입니다.


4. 이건 단순 분류가 아닙니다 — 의미의 공간화

  • 입력은 문자(철자)뿐
  • 정답은 그 단어 자체
  • 사람/숫자 분류라는 목표는 전혀 주어지지 않음

그런데도:

  • 비슷한 의미를 가진 단어는 은닉층 출력이 비슷하고
  • 다른 의미를 가진 단어는 멀리 배치됨

이것이 바로 은닉층이 만들어낸 표현 공간입니다.


5. 왜 2차원 은닉층을 썼는가?

논문은 은닉 뉴런을 2개만 사용했습니다.
이유는 간단합니다.

  • 시각화를 위해서
  • 사람이 표현 공간을 직접 볼 수 있도록

은닉층이 만든 의미 좌표계를 관찰 가능하게 했던 것이죠.


6. 이 실험이 주는 시사점

항목 설명
의미 구분 없음 컴퓨터는 단어를 문자로만 인식함
출력 목표 단어 자체를 맞히는 것뿐
결과 숫자 vs 사람 이름이 은닉층 공간에서 분리됨
결론 컴퓨터는 단어 간 의미 관계를 스스로 구조화할 수 있음

좋습니다. 이제 Rumelhart et al. (1986) 논문 블로그 시리즈의 마지막,
5회차를 작성합니다.

이번 회차는 다음을 목표로 합니다:


🎯 5회차 목표

  • 오차역전파(backpropagation)의 철학적 의미와 기술적 의의 정리
  • 이 알고리즘이 단순한 학습 기술이 아닌,
    표현(Representation)을 만들기 위한 핵심 메커니즘이라는 점 강조
  • 이 논문이 딥러닝 시대를 여는 출발점이 되었음을 증명

오차는 단순한 차이가 아니었다

— 딥러닝의 시작점, 오차역전파의 철학과 의미


1. 컴퓨터는 왜 실수를 해야 했을까?

이 논문은 겉보기엔
“오차를 줄이는 방법”에 관한 기술 논문입니다.

하지만 깊이 들어가보면… 전혀 다릅니다.

❗ 이 논문은 “오차를 어떻게 나누는가”에 관한 이야기입니다.

단순히 출력 뉴런이 틀렸다고 해서
모든 가중치가 똑같이 잘못된 건 아닙니다.

누가 얼만큼 책임이 있는지를 계산하고,
그 책임만큼 가중치를 조정하는 것.
→ 그게 바로 오차역전파입니다.


2. 우리가 배운 건 오차를 나누는 법이었다

출력층은 정답이 있으니 오차를 직접 계산할 수 있습니다.
하지만 은닉층은 정답이 없습니다.

그럼에도 불구하고 우리는 이렇게 했습니다:

  • 출력 오차를
  • 연쇄법칙으로 거슬러 올라가
  • 은닉층까지 오차를 나눠줍니다

이 과정을 통해 모든 뉴런이 오차에 대한 자신의 기여만큼 학습하게 됩니다.


3. 수학으로 생각하면 이렇게 됩니다

은닉 뉴런 하나가 출력 오차에 기여한 정도는
그 뉴런의 출력, 연결 가중치, 출력 오차를 조합하면 알 수 있습니다.

\delta_j = f'(net_j) \cdot \sum_k w_{jk} \cdot \delta_k

그리하여 전체 오차 함수 ( E ) 는
각 가중치에 대해 미분 가능하고,
모든 층이 동시에 학습할 수 있게 됩니다.

신경망은 더 이상 블랙박스가 아닙니다.
내부의 뉴런 하나하나가 오차에 책임을 지고,
자신의 역할을 업데이트할 수 있게 된 것입니다.


4. 표현은 오차로부터 만들어진다

우리가 앞선 회차에서 살펴본 표현들:

  • 규칙/불규칙 동사의 구분 (Fig. 3)
  • XOR의 "다름"이라는 개념 (Fig. 4)
  • 숫자 vs 인명 개념 공간 (Fig. 5)

이 모든 것은 정답과의 차이(오차)
구성 요소들에게 나눠준 결과입니다.

즉, 표현은 다음과 같이 만들어졌습니다:

입력값 → 예측 → 정답과 비교 → 오차 계산 →
역전파로 책임 분배 → 내부 표현 수정 → 표현 형성


5. 이 논문이 만든 진짜 변화

1986년 이전까지는 다음과 같은 생각이 지배적이었습니다:

“컴퓨터는 규칙을 알아야 학습할 수 있다.”

그러나 이 논문은 보여줍니다:

  • 컴퓨터는 정답만 주면
  • 입력 사이의 관계를 표현하는 구조를 스스로 만들 수 있고
  • 그 구조를 반복 학습을 통해 점점 더 정교하게 다듬을 수 있습니다.

이 철학은 곧 딥러닝의 철학입니다.


6. 딥러닝의 출발점: 이 논문이 남긴 것들

핵심 개념 의의
오차역전파 다층 신경망의 학습을 가능케 한 최초의 실용 알고리즘
표현(Representation) 입력 데이터를 의미적으로 재배열하는 은닉층의 출력
은닉층 학습 정답 없이도 역전파로 학습이 가능함을 수학적으로 증명
표현의 진화 오차 분배를 통해 점진적으로 의미 구조가 형성됨
딥러닝의 시작 이 논문 이후 계층적 학습 구조의 발전이 시작됨

📌 마무리 요약

  • 오차는 단순한 차이가 아니라
    표현을 만들어내는 원동력입니다
  • 오차를 나눠주는 방식은
     컴퓨터가 스스로 구조를 만들 수 있는 기반이 됩니다
  • 이 논문은
     “신경망이 어떻게 생각하게 되었는가”에 대한
    수학적 선언이자 기술적 출발점입니다

🧵 핵심 요약:

은닉층은 정답이 없기 때문에 오차를 계산할 수 없어 학습이 불가능하다는 문제가 있었다.
저자들은 출력층 오차를 연쇄법칙을 이용해 은닉층까지 역전파하는 방법을 제안했다.
그 결과, 다층 신경망의 모든 층이 학습 가능해졌고 의미 기반 표현 학습이 가능해졌다.

Rumelhart, D. E., Hinton, G. E., & Williams, R. J. (1986).
Learning representations by back-propagating errors. Nature, 323(6088), 533–536. https://doi.org/10.1038/323533a0

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
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
글 보관함