Loading [MathJax]/jax/output/HTML-CSS/jax.js

페이지

2022년 11월 28일 월요일

붓꽃 분류를 위한 다층 퍼셉트론 이해

붓꽃 분류를 위한 다층 퍼셉트론 이해

1. 개요

  • 붓꽃의 종류가 무엇인지 분류하는 다층 퍼셉트론(Multi-Layer Perceptron, MLP) 모델에 대하여 설명
  • MLP 모델의 오류 역전파에 대하여 상세히 설명
  • 구현 코드를 작성하지는 않지만 구현이 가능한 수준으로 설명

2. 문제 정의

  1. 붓꽃의 종류가 무엇인지 표시되어 있는 데이터 세트를 사용하여 붓꽃 분류 기능을 학습합니다.

    • 붓꽃 세 종류에 대하여 종류별로 50개의 측정 데이터를 가짐
      • 꽃 종류
        • setosa
        • versicolor
        • virginica
      • 측정 항목
        • sepal length (cm): 꽃받침 길이
        • sepal width (cm): 꽃받침 넓이
        • petal length (cm): 꽃잎 길이
        • petal width (cm): 꽃잎 넓이
  2. 새로운 붓꽃 데이터에 대하여 종류가 무엇인지 예측합니다.

3. 문제 해결 과정

데이터 기반 예측 문제의 해결 과정을 아래의 세 단계로 나누어 볼 수 있습니다.

  1. 주어진 데이터 세트의 특성을 잘 나타내는 모델 함수를 정의합니다. 모델 함수가 가지고 있는 파라미터들은 데이터 세트에 맞도록 값이 조정되는 요소들입니다.
  2. 데이터 세트의 참값과 모델 함수가 예측하는 값의 차이의 정도를 나타내는 비용 함수를 정의합니다.
  3. 데이터 세트에 대하여 비용을 줄여나가는 방향으로 모델 파라미터를 조정합니다. 비용이 최솟값에 가까워질 때까지 파라미터 조정 과정을 반복합니다.

이렇게 얻은 모델 함수를 사용하여 새로운 데이터가 주어질 때 예측하고자 하는 값이 얼마일지 추정합니다.

4. 모델 함수 정의

  • 입력층의 크기: 4
  • 은닉층의 크기: 8 (다른 값으로 지정할 수도 있음)
  • 출력층의 크기: 3

h=tanh(Wxhx+bh)y=Whyh+bypi=softmax(yi)=eyi2i=0eyi

  • 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) 수식 도출

찾고자 하는 파라미터를 변경하였을 때 영향을 받는 변수들을 화살표로 표시해 봅니다. 이를 토대로 파라미터 변경에 대한 비용 함수의 경사도 수식을 도출할 수 있습니다.

LWhy=yWhyLyLby=ybyLyLWxh=hWxhyhLyLbh=hbhyhLy

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

yWhy=hyby=1hWxh=(1h2)xhbh=(1h2)1yh=Why

남은 항목 Ly의 계산 과정은 생략하고 결과만 적으면 아래와 같습니다.

Lyi=pi,foricLyi=pi1,fori=c

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

6.2. 반복 수행

비용 함수의 값이 최솟값에 가까워지도록 아래의 과정을 수행합니다.

  1. 지정한 epoch 수만큼 반복
    1. 훈련 데이터의 수만큼 반복
      1. 예측 및 오류 계산
        1. 오류 역전파 과정에서 사용하기 위하여 x 보관
        2. h를 얻기 위하여 수식 (1)을 적용
        3. 오류 역전파 과정에서 사용하기 위하여 h 보관
        4. 위의 결과로 얻은 h에 대하여 수식 (2), (3)을 적용
        5. 수식 (4)를 통해서 오류 계산
      2. 오류 역전파
        1. 수식 (9) ~ (15) 계산
        2. 수식 (5), (6)으로 비용 함수의 Why, by에 대한 경사도 계산
        3. 수식 (7), (8)로 비용 함수의 Wxh, bh에 대한 경사도 계산
      3. 파라미터 조정
        Why=lr×LWhyby=lr×LbyWxh=lr×LWxhbh=lr×Lbh
  • lr은 학습 속도

7. 새로운 붓꽃의 종류

새로운 붓꽃 데이터가 아래와 같은 경우를 예로 들어 종류를 예측해 봅니다.

x=[6.1,3.3,5.1,2.4]

  1. x에 대하여 수식 (1)을 적용
  2. 위의 결과로 얻은 h에 대하여 수식 (2), (3)을 적용
  3. p0, p1, p2 중에서 큰 값의 종류를 채택

Written with StackEdit.

유전자 정보에 따라 단백질이 생성되는 과정

  유전 정보는 DNA에 저장되어 있으며, 이 정보는 전사(transcription) 과정을 통해 RNA로 옮겨지고, 번역(translation) 과정을 통해 단백질로 만들어집니다. 진핵생물(사람을 포함한 대부분의 고등 생물)의 유전자는 단백질 정보를...