붓꽃 분류를 위한 다층 퍼셉트론 이해
1. 개요
- 붓꽃의 종류가 무엇인지 분류하는 다층 퍼셉트론(Multi-Layer Perceptron, MLP) 모델에 대하여 설명
- MLP 모델의 오류 역전파에 대하여 상세히 설명
- 구현 코드를 작성하지는 않지만 구현이 가능한 수준으로 설명
2. 문제 정의
-
붓꽃의 종류가 무엇인지 표시되어 있는 데이터 세트를 사용하여 붓꽃 분류 기능을 학습합니다.
- 붓꽃 세 종류에 대하여 종류별로 50개의 측정 데이터를 가짐
- 꽃 종류
- setosa
- versicolor
- virginica
- 측정 항목
- sepal length (cm): 꽃받침 길이
- sepal width (cm): 꽃받침 넓이
- petal length (cm): 꽃잎 길이
- petal width (cm): 꽃잎 넓이
-
새로운 붓꽃 데이터에 대하여 종류가 무엇인지 예측합니다.
3. 문제 해결 과정
데이터 기반 예측 문제의 해결 과정을 아래의 세 단계로 나누어 볼 수 있습니다.
- 주어진 데이터 세트의 특성을 잘 나타내는 모델 함수를 정의합니다. 모델 함수가 가지고 있는 파라미터들은 데이터 세트에 맞도록 값이 조정되는 요소들입니다.
- 데이터 세트의 참값과 모델 함수가 예측하는 값의 차이의 정도를 나타내는 비용 함수를 정의합니다.
- 데이터 세트에 대하여 비용을 줄여나가는 방향으로 모델 파라미터를 조정합니다. 비용이 최솟값에 가까워질 때까지 파라미터 조정 과정을 반복합니다.
이렇게 얻은 모델 함수를 사용하여 새로운 데이터가 주어질 때 예측하고자 하는 값이 얼마일지 추정합니다.
4. 모델 함수 정의
- 입력층의 크기: 4
- 은닉층의 크기: 8 (다른 값으로 지정할 수도 있음)
- 출력층의 크기: 3
hypi=tanh(Wxh⋅x+bh)=Why⋅h+by=softmax(yi)=∑i=02eyieyi
- i는 붓꽃 종류에 부여한 인덱스 (0: setosa, 1: versicolor, 2: virginica)
- x는 한 개의 붓꽃에 대한 측정값 입력 벡터
- h는 은닉층의 노드
- y는 MLP 네트워크의 출력 벡터
- p는 붓꽃 종류별 예측 확률 벡터
- Wxh, Why는 모델 학습 파라미터 행렬
- bh, by는 모델 바이어스 파라미터 벡터
5. 비용 함수 정의
비용 함수로 크로스-엔트로피 손실(cross-entropy loss)을 사용합니다.
L=−ln(pc)
- c는 참인 종류
- pc는 참인 종류일 확률
6. 모델 파라미터 찾기
경사하강법(Gradient Descent)을 사용하여 모델의 파라미터를 찾습니다.
6.1. 경사도(derivative) 수식 도출
찾고자 하는 파라미터를 변경하였을 때 영향을 받는 변수들을 화살표로 표시해 봅니다. 이를 토대로 파라미터 변경에 대한 비용 함수의 경사도 수식을 도출할 수 있습니다.
∂Why∂L∂by∂L∂Wxh∂L∂bh∂L=∂Why∂y⋅∂y∂L=∂by∂y⋅∂y∂L=∂Wxh∂h⋅∂h∂y⋅∂y∂L=∂bh∂h⋅∂h∂y⋅∂y∂L
위의 경사도 수식에서 각각의 항목을 구하면 아래와 같습니다.
∂Why∂y∂by∂y∂Wxh∂h∂bh∂h∂h∂y=h=1=(1−h2)⋅x=(1−h2)⋅1=Why
남은 항목 ∂y∂L의 계산 과정은 생략하고 결과만 적으면 아래와 같습니다.
∂yi∂L∂yi∂L=pi=pi−1,fori=c,fori=c
이제 경사도 계산에 필요한 모든 항목을 구할 수 있게 되었습니다.
6.2. 반복 수행
비용 함수의 값이 최솟값에 가까워지도록 아래의 과정을 수행합니다.
- 지정한 epoch 수만큼 반복
- 훈련 데이터의 수만큼 반복
- 예측 및 오류 계산
- 오류 역전파 과정에서 사용하기 위하여 x 보관
- h를 얻기 위하여 수식 (1)을 적용
- 오류 역전파 과정에서 사용하기 위하여 h 보관
- 위의 결과로 얻은 h에 대하여 수식 (2), (3)을 적용
- 수식 (4)를 통해서 오류 계산
- 오류 역전파
- 수식 (9) ~ (15) 계산
- 수식 (5), (6)으로 비용 함수의 Why, by에 대한 경사도 계산
- 수식 (7), (8)로 비용 함수의 Wxh, bh에 대한 경사도 계산
- 파라미터 조정
WhybyWxhbh−=lr×∂Why∂L−=lr×∂by∂L−=lr×∂Wxh∂L−=lr×∂bh∂L
7. 새로운 붓꽃의 종류
새로운 붓꽃 데이터가 아래와 같은 경우를 예로 들어 종류를 예측해 봅니다.
x=[6.1,3.3,5.1,2.4]
- x에 대하여 수식 (1)을 적용
- 위의 결과로 얻은 h에 대하여 수식 (2), (3)을 적용
- p0, p1, p2 중에서 큰 값의 종류를 채택
Written with StackEdit.