Super Kawaii Cute Cat Kaoani
본문 바로가기
{Lecture}/Machine Learning

[기계학습] Multilayer Perceptron : MLP

by wonee1 2025. 10. 17.
728x90

 

 

 

Multilayer Perceptron 

 

 

퍼셉트론은 선형 분류기라는 점에서 한계가 있었다. XOR 문제에서 선형 분리 불가능한 상황에서는 일정한 양의 오류가 발생

했다. 이러한 퍼셉트론의 단점을 보완하기 위해 MLP가 나오게 되었다.  

 

 

⭐ MLP의 핵심 아이디어 

1. 은닉층 추가 (Hidden Layer)

  • 입력층(Input Layer)과 출력층(Output Layer) 사이에 하나 이상의 은닉층을 둠.
  • 단층 퍼셉트론은 선형 분리 문제만 해결할 수 있지만,
    은닉층이 생기면 비선형 관계를 학습할 수 있음.
  • 즉, 입력 특징 공간을 더 분류하기 쉬운 고차원 공간으로 변환하는 역할을 함

 

2. 시그모이드 활성함수 도입 (Sigmoid Activation)

  • 출력이 0~1 사이의 연속적인 실수값을 갖게 됨.
  • 이를 확률적 해석(신뢰도) 로 볼 수 있게 됨. 따라서 의사 결정의 유연성이 늘어남 

 

3. 오류 역전파 알고리즘 (Backpropagation Algorithm)

  • 손실함수 J(W)에 대해 가중치의 기울기(gradient) 를 계산하고,
    이를 이용해 경사하강법으로 가중치를 갱신하는 알고리즘.
  • 출력층의 오차를 시작으로, 은닉층까지 역방향으로 오차를 전파하며 업데이트함. 

 

특징 공간 변환

 

단계 1: 입력 공간 확장 (은닉층이 하는 일)

  • MLP의 첫 번째 은닉층은 단순히 입력을 통과시키는 게 아니라, 입력 공간을 새로운 특징 공간으로 매핑(변환) 한다.
  • 즉, 원래는 선형으로 분리되지 않던 데이터를, 은닉층의 뉴런과 비선형 활성함수를 통해 분리하는 것. 

단계 2: 새로운 특징 공간에서 분류 수행

  • 출력층에서는 은닉층이 만들어낸 특징을 입력으로 받아, 그것을 단순한 선형 분류기(linear classifier) 로 처리한다
  • 즉, 변환된 공간에서는 데이터가 선형적으로 구분 가능하기 때문에 마지막 출력층은 단순한 선형 모델이어도 충분하다.

 

 

1. MLP

 

퍼셉트론 2개를 병렬 결합 후, 나머지 하나를 순차 결합

  • 2차원 입력 공간 → 은닉층의 비선형 조합을 통해
    새로운 특징 공간으로 확장 (비선형 경계 생성)
  • 그 결과, 단층 퍼셉트론으로는 불가능했던 비선형 분리가 가능해진다. 

 

2. Feature Extension

 

 

퍼셉트론 3개를 병렬 결합

  • 입력: 2차원 공간 (x₁, x₂)
  • 3개의 퍼셉트론을 병렬로 구성 → 각각 다른 결정 경계를 학습
  • 결과적으로 2차원 입력 공간이 7개의 구분된 영역으로 확장됨
  • 이 공간을 다시 하나의 3차원 점 (h₁, h₂, h₃) 으로 표현

 

 

 

 

활성함수 

 

활성함수는 신경망이 입력 공간을 어떻게 분리하고 변환할 수 있는지를 결정하는 중요한 요소이다.
활성함수의 종류에 따라 공간 분할 방식이 크게 달라지며, 이는 신경망이 복잡한 문제를 얼마나 잘 학습할 수 있는지를 좌우한다.

 

1. 계단 함수(Step Function)

계단 함수는 이분적인 의사결정을 수행한다.
입력 영역이 점으로 변환되어 출력되므로, 데이터의 분류가 단순히 직선이나 평면으로만 이루어진다.
즉, 한쪽 영역은 +1로, 다른 한쪽 영역은 -1로 구분되어 불연속적인 결정만 가능하다.
이로 인해 복잡한 비선형 경계를 표현하기에는 한계가 있다.

 

⭐ 2. 부드러운 활성함수 (예: Sigmoid, Tanh, ReLU 등)

 

이들 함수는 부드러운 의사결정을 가능하게 한다.
입력 영역이 다른 영역으로 연속적으로 변환되며, 직선/평면뿐 아니라 곡선이나 곡면 형태의 경계도 형성할 수 있다.
출력값은 -1.0에서 +1.0 사이의 연속적인 실수 값으로 주어지므로, 한 영역이 한 점으로 축소되지 않고

 

다른 영역과의 연속적인 경계를 형성할 수 있다.

 

 

 

 

 

 

활성함수는 입력값에 따른 출력의 변화 정도를 결정하기 때문에, 그 도함수(기울기)는 학습 과정에서 매우 중요한 역할을 한다.

모든 활성함수는 1차 도함수 계산이 빠르며, 이 도함수의 값은 출력이 입력 변화에 얼마나 민감한가를 의미한다.

 

즉, 입력값이 조금만 바뀌었을 때 출력이 얼마나 크게 바뀌는지를 수치로 보여주는 것이다. 따라서 도함수의 값이 클수록 모델의 출력이 입력 변화에 매우 민감하다는 뜻이다. 이 경우 오차가 크게 발생하고 있으며, 그만큼 가중치(weight)들이 활발하게 조정되고 있는 중이라는 것을 의미한다.

 

 

반대로 도함수가 0에 가까우면, 입력 변화에 거의 반응하지 않기 때문에 학습이 정체되거나(기울기 소실 문제),
모델이 이미 최적점에 도달했음을 알 수 있다.  

 

결국 활성함수의 도함수는 학습 속도와 오차 민감도, 즉 신경망이 얼마나 효과적으로 가중치를 갱신할 수 있는지를 결정하는 핵심적인 지표이다.

 

Multilayer Perceptron  구조 

 

입력층–은닉층–출력층의 2층 구조

  • 구성:
    • 입력 노드: d + 1개 (d는 특징의 개수)
    • 출력 노드: c개 (c는 Class의 개수)
  • 특징:
    • p개의 출력 노드를 사용하면 p는 하이퍼 매개변수로 사용자가 직접 설정해야 함.
    • p가 너무 크면 과잉적합(overfitting)이 발생하고,
      너무 작으면 과소적합(underfitting) 문제가 생김.
    • 따라서 학습 과정에서 하이퍼파라미터 최적화가 필수임.

 

입력층–은닉층–은닉층–출력층의 3층 구조 (MLP 구조)

  • 핵심 개념:
    • 은닉층(hidden layer)은 외부에서 직접 관찰할 수 없는 특징 표현을 학습하는 층이다.
    • 즉, 단순한 입력값이 아니라 입력 패턴의 내재적 구조(표현) 를 스스로 학습한다.
    • 이것이 곧 표현 학습(Representation Learning) 의 핵심이다.
  • 구조:
    • 첫 번째 은닉층: 입력값으로부터 중간 특징을 추출
    • 두 번째 은닉층: 앞선 은닉층이 만든 특징을 조합해 더 복잡한 표현 생성
    • 출력층: 은닉층이 만든 최종 표현을 기반으로 클래스 결정 수행

 

\\\\

 

 

⭐ 층이 깊어지면?

연결 가중치가 늘어난다. 따라서 특징 공간을 더 유리한 공간으로 변환가능해진다. 층이 깊어질수록 신경망은 입력 데이터를 더 유리한 특징 공간으로 매핑할 수 있고, 이로 인해 복잡한 비선형 문제도 선형적으로 분리 가능한 형태로 변환할 수 있다.

 

 

2층 퍼셉트론의 매개변수 (가중치)

 

 

 

 

Multilayer Perceptron  동작 

 

 

 

 

j번째 은닉 노드의 입력합(zsum)은 입력층의 모든 노드 xi 에 대해서 그 노드와 은닉층 j번째 노드 사이의 가중치  uji(1)을 모두곱해서 나온 값이다. 이건 은닉층 뉴런 j로 들어오는 총 입력합이기도 하다. 

 

 

 

 

입력합 (은닉층)
j번째 은닉 노드로 들어오는 총 입력
은닉층 출력
은닉 노드의 활성화 출력
입력합 (출력층)
k번째 출력 노드로 들어오는 총 입력
출력층 결과
최종 출력 (예측값)

 

 

 

은닉층은 특징 추출기이다.  은닉층은 특징 벡터 x를 분류에 더유리한 새로운 특징 공간으로 변환한다. 따라서 현대 기계 학습은 위 과정을 특징 학습이라고도한다. 

 

 

 

 

Error Backpropagation Algorithm 

 

 

목적함수 정의 ( 비용함수이자 손실함수라고도 부른다) 

 

기계학습의 목표는 모든 샘플을 옳게 분류하는 함수를 찾는 것이 목표이다. 

 

 

목적함수 설계  : 평균 제곱 오차로MSE(Mean Squared Error) 정의

 

 

1. 온라인 모드 목적함수 = 스토케스틱 방식

 

하나의 샘플에 대해 오차를 계산하고 바로 가중치를 갱식하는 학습 방식에 적용 . 

 

 

2. 배치 모드 목적함수 

 

모든 샘플에 대한 오차를 계산하고 한꺼번에 가중치를 갱신하는 학습 방식에 적용

 

 

 

 

 

오류 역전파 알고리즘 설계

 

기계 학습 알고리즘: 목표 값이 줄어드는 방향으로 Θ 를 업데이트

 

목적함수를 가중치 행렬 대해 편미분하면 각 가중치의 기울기가 산출된다. 

 

 

알고리즘 3-3 다층 퍼셉트론을 위한 스토케스틱 경사 하강법 

 

 

 

 

 

입력: 훈련집합 X, 정답 Y, 학습률 ρ
출력: 가중치 행렬 U¹, U²

1. U¹, U² 초기화
2. repeat
     3. X의 순서를 섞는다
     4. for 각 샘플 (x, y) ∈ (X, Y):
           ① o = τ(U² · τ(U¹ · x))         # 순전파 (Forward)
           ② ∂J/∂U¹, ∂J/∂U² 계산           # 역전파 (Backward)
           ③ U¹ = U¹ - ρ·∂J/∂U¹           # 가중치 갱신
              U² = U² - ρ·∂J/∂U²
   until (수렴 or epoch 종료)

 

 

 

 

 

 

 

 

728x90

'{Lecture} > Machine Learning' 카테고리의 다른 글

[기계학습] Perceptron  (0) 2025.10.17
[기계학습] 선형대수학 - 행렬  (0) 2025.10.16
[기계학습] 선형대수학 정리 - 벡터  (0) 2025.10.16