[HUFStudy] 신경망 +

Uomnf97·2022년 7월 11일
0

+) 코드잇 강의 바로가기

본 정리내용은 코드잇 강의를 공부하며 함께 정리한 내용입니다! 더 정확하고 자세한 내용을 공부하기 위해서는 "코드잇 머신러닝 실전 강의를 참고해주세요!"

신경망과 다양한 데이터

  • 신경망은 다양항 데이터를 입력으로 받을 수 있는데, 신경망의 뉴런의 수는 어떤 목적의 무엇을 하는가에 따라서 갯수가 달라지게 됩니다!
    • Ex) 입력값의 차원이 적으면, 입력층의 뉴런수가 적어도 되고, 이진 분류라면 출력 뉴런이 하나가 될 수 있다. 그리고 또한hidden layer는 보통 이 두개의 layer 사이의 숫자를 갖는다고 한다. 이렇게 뉴런의 수를 정해주는것이 hyper parameter의 일종이고, 이에 따라 뉴런의 성능이 결정된다.
    • 주로 입력층의 뉴런의 갯수도 입력 데이터의 차원과 같은 값을 가진다.

신경망과 비선형성

  • 로지스틱 회귀(Logisitic Regression)은 식을 정리하고 난 뒤, 특정 값(결정 경계)에 따라 분류를 학습하게 되는데, 이 때 이 경계는 선형적 경계를 가지게 된다.
  • 이렇게 되면, 이상과 이하와 같은 단순한 분류를 가지는 데이터값에 학습을 원활하게 할 수 있으나, 복잡한 결정 경계 즉 비선형적(non-linear) 결정 경계를 가진 분류 문제에서 약점을 보인다.
  • 하지만, 신경망의 뉴런의 활성화 함수라고 불리는 시그모이드 함수는 비선형 함수를 가지게 되고, 여러가지의 합성함수 꼴로 나타낼 수 있는 신경망의 출력은 최종적으로 전체의 함수는 비선형적 함수를 갖게 된다. 따라서 보다 복잡한 결정경계를 가지게 되며, 여러가지 분류 문제를 효과적으로 해결할 수 있게 된다.
  • 따라서 hidden layer에 있는 활성화 함수는 반드시 비선형 함수여야 신경망에서 효과를 얻을 수 있게 된다.

신경망과 활성화 함수(Activation Function)

은닉층의 활성함수

시그모이드 함수

  • 식 : σ(z)=11+ez\sigma(z)^= \frac 1{1+e^{-z}}
  • 특징 : 입력값을 을 0과 1사이의 숫자로 매핑해줌
  • 단점 : 기울기가 0에 가깝게 되는 구간이 있어 사라지는 기울기 문제가 (vanishing gradient problem) 생길 위험이 크다. 기울기가 0에 가깝게 되면, 경사하강 속도가 매우 느려지기 때문에 활용성이 낮은 활성함수라고 볼 수 있다.

Tanh함수

  • 식 : tanh(z)=ezezez+ez\tanh(z)^= \frac {e^{z}-e^{-z}}{e^{z}+e^{-z}}
  • 특징 :
    • 입력값을 을 -1과 1사이의 숫자로 매핑해줌
    • sigmoid함수의 수학적으로 shift된 형태
  • 단점 : 기울기가 0에 가깝게 되는 구간이 있어 사라지는 기울기 문제가 (vanishing gradient problem) 생길 위험이 크다. 기울기가 0에 가깝게 되면, 경사하강 속도가 매우 느려지기 때문에 활용성이 낮은 활성함수라고 볼 수 있다. 단 평균이 0에 수렴하기 때문에 sigmoid함수보다는 더 좋은 성능을 가지고 있다.

ReLU함수

  • 식 : σ(z)=max(0,z)\sigma(z)=max(0,z)
  • 특징 :
    • 입력값을 0보다 크면 그대로, 0보다 작거나 같으면 0을 리턴하는 함수입니다
    • 어떤 것을 써야할지 모를때, default로 ReLU 함수를 활용
    • 계산 속도가 매우 빠름
    • Vanishing Gradient 문제가 매우 드물게 발생
  • 단점 : 음수일 경우에 기울기의 값이 0으로 수렴해서 Vanishing Gradient 문제가 발생할 수 있으나 극히 드물다.

Leaky ReLU함수

  • 식 : σ(z)=max(az,z)\sigma(z)=max(az,z)
  • 특징 :
    • 입력값을 0보다 크면 그대로, 0보다 작거나 같으면 매우 작은 값을 곱해을 반환하는 함수입니다
    • ReLU의 음수일 때의 문제를 보완한 함수

출력층의 활성함수

출력층의 활성함수는 다중 분류가 필요할 때, 이진 분류가 필요할 때, 회귀문제 세가지에 따라서 다른 활성함수가 필요합니다.

시그모이드 함수 :: 이진분류

  • 식 : σ(z)=11+ez\sigma(z)^= \frac 1{1+e^{-z}}
  • 이진 분류일 때 효과적으로 활용할 수 있습니다.

Softmax 함수 :: 다중 분류

  • 식 : σ(z)=ezjj=1n[l]+ezj\sigma(z)^= \frac {e^{z_j}}{\sum_{j=1}^{n^{[l]}}+e^{z_j}}
  • 다중 분류 문제를 활용할 때, sigmoid함수로 확률적인 의미가 분류가 어렵기 때문에 softmax함수를 많이 활용합니다.

선형함수 :: 회귀

  • 식 : σ(z)=z\sigma(z)^= z
  • 회귀일때는 예외적으로 출력층의 활성화 함수를 선형함수를 활용할 수 있습니다.
    참고 : 코드잇딥러닝
profile
사회적 가치를 실현하는 프로그래머

0개의 댓글