본문 바로가기
Deep Learning

신경망 출력층 설계하기 (분류, 회귀에 맞는 활성화 함수 선정)

by 햇농nongnong 2022. 5. 31.

출력층 설계하기


  • 신경망은 분류와 회귀 모두에 이용가능
  • 기계학습 문제는 분류(classification)와 회귀(regression)로 나뉨
  • 분류 : 데이터가 어떤 클래스에 속하느냐의 문제
    ex) 사진 속 인물의 성별 분류 문제
  • 회귀 : 입력 데이터에서 (연속적인) 수치를 예측하는 문제
    ex) 사진 속 인물의 몸무게(57.4kg?) 를 예측하는 문제
    * '회귀' 의 기원 : 19세기 후반ㅡ 영국의 프랜시스 골턴 경이 사람과 완두콩을 대상으로 크기를 측정했는데, 관찰 결과 키가 큰 부모의 자식은 부모보다 작고, 작은 부모의 자식은 부모보다 큰, 즉 평균으로 회귀하는 경향이 있음을 알았음. - 그 사이에는 선형 관계가 있어 부모의 키로부터 자식의 키를 예측할 수 있고, 그 예측 결괏값이 연속적인 수치였음
  • 어떤 task 냐에 따라 출력층에서 사용하는 활성화 함수 달라짐
  • 회귀 : 항등 함수
  • 분류 : 소프트맥스 함수 

 

회귀에서 일반적으로 사용하는 항등함수 

  • 항등 함수는 입력과 출력이 항상 같다는 뜻에서 항등
  • 출력층에서 항등 함수를 사용하면 입력 신호가 그대로 출력 신호가 됨

 

분류에서 일반적으로 사용하는 소프트맥스(softmax) 함수

  • n 은 출력층의 뉴런 수, yk는 그 중 k 번째 출력
  • 소프트맥스 함수의 분자는 입력 신호 ak 의 지수 함수, 분모는 모든 입력 신호의 지수 함수의 합으로 구성됨
  • 위 그림과 같이 소프트맥스의 출력은 모든 입력 신호로부터 화살표를 받음
    - 위 식의 분모에서 알 수 있듯이, 출력층의 각 뉴런이 모든 입력 신호에서 영향을 받기 때문

 

소프트맥스 함수 구현

 

 

위의 논리 흐름을 softmax 함수로 정의
def softmax(a) :
	exp_a = np.exp(a)
    sum_exp_a = np.sum(exp_a)
    y = exp_a / sum_exp_a
    
    return y

 

 

 Reference

  • 밑바닥부터 시작하는 딥러닝

댓글