개요
- 붓꽃 데이터를 대상으로 꽃의 종류를 분류
- 다층 퍼셉트론(Multi-Layer Perceptron, MLP) 모델의 오류 역전파 및 기울기 계산 과정 설명
데이터셋
붓꽃 데이터
- 꽃 종류
- setosa (50개)
- versicolor (50개)
- virginica (50개)
- 측정 항목
- sepal length (cm): 꽃받침 길이
- sepal width (cm): 꽃받침 넓이
- petal length (cm): 꽃잎 길이
- petal width (cm): 꽃잎 넓이
문제 정의
- 붓꽃의 종류가 무엇인지 표시되어 있는 데이터 세트를 사용하여 붓꽃 분류 기능을 학습합니다.
- 새로운 붓꽃 데이터에 대하여 종류가 무엇인지 예측합니다.
모델 함수 정의
- 입력층의 크기: 4
- 은닉층의 크기: 8 (다른 값으로 지정할 수도 있음)
- 출력층의 크기: 3


비용 함수 정의
비용 함수로 크로스-엔트로피 손실(cross-entropy loss)을 사용합니다.

예를 들어, 데이터 샘플의 참 값이 setosa(0)이고 해당 샘플에 대하여 모델로 계산한 확률 분포에서 setosa일 확률이 0.5일 때 손실 값은 다음과 같습니다.

모델 파라미터 찾기
경사하강법(Gradient Descent)을 사용하여 손실 값을 줄일 수 있는 모델의 파라미터를 찾습니다.
기울기 수식 도출
찾고자 하는 파라미터를 변경하였을 때 영향을 받는 변수들을 화살표 방향으로 표시해 봄으로써 오류 역전파 경로를 파악하고 파라미터 변경에 대한 비용 함수의 기울기 수식을 도출할 수 있습니다.


위의 기울기 수식에서 각각의 항목을 구하면 아래와 같습니다.

손실 함수 $L$의 $y$에 대한 변화율 계산 과정은 생략하고 결과만 적으면 아래와 같습니다.

이제 기울기 계산에 필요한 모든 항목을 구할 수 있게 되었습니다.

위 기울기 수식에서, $L$의 $y$에 대한 기울기는 주어진 샘플 데이터의 참 값이 무엇인지를 고려하여 식 (14)와 (15)로 계산합니다. 수식 (16) ~ (19)로부터 다음 두 가지 사항을 알 수 있습니다.
- 기울기 결정 요소
- 입력 값: $x$
- 현재의 파라미터 값들: $W_{hy}$
- 신경망을 통해 계산하는 과정에서 나오는 값들: $h$, $p_i$
- 기울기 계산 대상
- 훈련 가능한 개별 파라미터별
반복 수행 (학습 단계)
비용 함수의 값이 최솟값에 가까워지도록 아래의 과정을 수행합니다.
- 지정한 epoch 수만큼 반복
- 훈련 데이터의 수만큼 반복
- 예측 및 오류 계산
- 오류 역전파 과정에서 사용하기 위하여 $x$ 보관
- $h$를 얻기 위하여 수식 (1)을 적용
- 오류 역전파 과정에서 사용하기 위하여 $h$ 보관
- 위의 결과로 얻은 $h$에 대하여 수식 (2), (3)을 적용
- 수식 (4)를 통해서 오류 계산
- 오류 역전파 및 기울기 계산
- 수식 (9) ~ (15) 계산
- 수식 (16), (17)으로 비용 함수의 $W_{hy}$, $b_y$에 대한 기울기 계산
- 수식 (18), (19)로 비용 함수의 $W_{xh}$, $b_h$에 대한 기울기 계산
- 파라미터 조정
- 예측 및 오류 계산
- 훈련 데이터의 수만큼 반복

새로운 붓꽃의 종류 예측
새로운 붓꽃 데이터가 아래와 같이 주어졌을 때 학습을 마친 모델을 사용하여 꽃의 종류를 예측해 봅니다.
$$x = [6.1, 3.3, 5.1, 2.4]$$

- $x$에 대하여 수식 (1)을 적용
- 위의 결과로 얻은 $h$에 대하여 수식 (2), (3)을 적용
- 수식 (3)의 결과 $p_0$, $p_1$, $p_2$ 중에서 제일 큰 값에 해당하는 종류를 채택
위에서, 출력층과 분류 확률의 구체적인 값은 예시를 위해 임의로 지정한 값입니다. 실제 모델에서는 다른 값일 수도 있습니다.
'인공지능 > 신경망 이해' 카테고리의 다른 글
| 1차원 데이터로 흠집 탐지: 일반 오토인코더와 LSTM-오토인코더 (0) | 2025.12.05 |
|---|---|
| 옵티마이저 종류 요약 (0) | 2025.12.05 |
| 경사하강법에서 손실값의 변화 (0) | 2025.12.05 |
| 모델 학습 세 단계: 함수 정의, 비용 정의, 파라미터 찾기 (0) | 2025.12.05 |
| PyTorch 딥러닝 훈련 메커니즘과 Autograd 이해 (0) | 2025.12.04 |