신경망

rokky·2023년 11월 2일
0

딥러닝

목록 보기
17/18

신경망

  • 앞서 퍼셉트론만을 이용했을 때 선형적인 표현만 할 수 있다는 문제점이 존재했다. 이를 해결하는 방법으로 신경망을 이용한다.

  • 신경망은 입력층/ 은닉층 / 출력층이 존재한다.

  • 참고로 입력층/ 출력층은 알겠는데 은닉층은 뭔가?

  • 은닉층은 간단히 말해서 사용자가 볼 수 없는 층이라고 볼 수 있다.

뉴런 표기법

활성화 함수

  • h(x)를 활성화 함수라고 하겠다. 활성화 함수가 없을 경우를 한번 생각해 보자

  • h(x) = ax 일차 함수가 활성화 함수라고 하면

  • h(h(h(x))) = a^3x => a'x 함수로 은닉층이 없는거랑 똑같다고 볼 수 있다.

  • 그럼 은닉층을 비선형 함수로 만드는 대표적인 함수들을 소개해 주겠다.

계단함수(step function)

  • h(x) = 0 (x <= 0) , 1 (x > 0)

sigmoid 함수

  • h(x) = 1/(1 + exp(-x))

Relu 함수

  • h(x) = 0(x <= 0), x(x > 0)

출력층의 활성화 함수

  • 앞에서 설명했던 활성화 함수들은 은닉층의 활성화 함수로 h로 표현한다. 이제 출력층의 활성화 함수는 σ로 표현하겠다.

  • 출력층의 활성화 함수는 분류와 회귀 문제에 따라 다르게 사용된다.

  • 분류 문제 : 어느 class에 속하니?(주로 softmax 함수 이용)

  • 회귀 문제 : 연속적인 값 예측(주로 항등함수 이용)

항등함수

  • 입력 = 출력

Softmax 함수

  • yk = exp(ak) / (i = 1~n 까지 합 exp(ai))

  • softmax 함수 yk의 1~n까지의 합은 1이 나온다. 즉 확률로써 어느 class를 출력할지 선택할 수 있다.

Softmax 함수 사용시 주의할점

  • softmax 함수 구현시 exp(ak) 즉 지수승으로 증가해서 ak 값이 커짐에 따라 기하급수적으로 커진다. ex) ak가 100이 되면 exp(100)으로 오버플로우 발생가능

  • 이를 해결하기 위해서 softmax 함수 구현시 ak 값을 일정 상수로 빼주는 작업이 필요하다.

  • yk = exp(ak - C) / (i = 1~n 까지 합 exp(ai) - C)

0개의 댓글