Day 1 - Section 2 활성화 함수 요약

4434 단어 심층 학습
이 기사는 개인 공부용 메모입니다.

이 공부의 위치



심층 학습 Day 1

Section 0 신경망의 전체 이미지
Section 1 입력층~중간층
Section 2 활성화 함수 ← 이
Section 3 출력 레이어
Section 4 기울기 강하법
Section 5 오차 역전파법

강의



활성화 함수



활성화 함수 공식


f^{(l)}(u^{(l)})=\Big[f^{(l)}(u_1^{(l)}) .. f^{(l)}(u_j^{(l)})\Bigr]

$f$: 활성화 함수
$u$: 총 입력
$l$: 몇 층째

활성화 함수 $f$ 는 총 입력 $u$ 를 인수로 취한다.
활성화 함수는 비선형 함수.
※ 활성화 함수가 선형인 함수라면 2개의 층의 수식을 정리할 수 있어,
더 이상 중간층의 의미가 없어진다는 것.

활성화 함수의 종류



  • 중간층용
  • ReLU 함수 (할 수 있다고 읽는다)
  • 시그모이드 (로지스틱) 함수
  • 스텝 함수


  • 출력층용
  • 소프트 맥스 함수
  • 항등 매핑
  • 시그모이드 (로지스틱) 함수


  • 스텝 함수



    샘플 코드
    def step_function(x):
      if x > 0:
        return 1
      else:
        return 0
    

    수식
    f(x) = \left\{
    \begin{array}{ll}
    1 & (x \geq 0) \\
    0 & (x \lt 0)
    \end{array}
    \right.
    

    이전에는 사용되었지만 현재는 사용되지 않았습니다.

    여담이지만 위의 샘플 코드와 수식은 일치하지 않는다고 생각한다.
    $x$가 $0$이면 샘플 코드는 $0$를 반환하지만,
    수식은 $1$를 반환합니다.

    수중에 있는 「제로로부터 만드는 Deep Learning」의 3.1.2항에서는,
    $x$가 $0$이면 단계 함수는 $0$를 반환하는 함수입니다.
    수식이 작성되었습니다. 3.2.2 절에 쓰여진 소스 코드도 마찬가지이다.
    즉, 수식과 소스 코드가 일치합니다.

    시그모이드 함수



    샘플 코드
    def sigmoid(x):
      return 1 / (1 + np.exp(-x))
    

    수식
    f(u) = \frac{1}{1+e^{-u}}
    

    0과 1 사이의 값을 반환합니다.
    오른쪽 어깨 올라.
    미분 가능
    자주 사용된다.

    과제 : 그라디언트 소실 문제를 일으킨다.

    ReLU 함수



    샘플 코드
    def relu(x):
      return np.maximum(0, x)
    

    수식
    f(x) = \left\{
    \begin{array}{ll}
    x & (x \gt 0) \\
    0 & (x \leq 0)
    \end{array}
    \right.
    

    지금 가장 많이 사용되고 있다.
    구배 소실 문제가 발생하지 않는다.
    좋은 의미로 희소합니다 (0보다 작은 값을 0으로 만들기 때문에).

    활성화 함수의 효과


  • 가중치 $W$ 에서의 계산은 선형이고, 활성화 함수 $f$ 는 비선형이므로, 버라이어티가 풍부한 모델을 만들 수 있다.
  • 일부 출력은 약하고 일부는 강하게 전파됩니다.
  • 학습이 진행되고, 특징을 잡아 간다.

  • 구현 연습



    구현 연습에서의 활성화 함수는 functions.py 파일에 정리되어 있다.



    어느 함수도 심플한 구현이 되어 있어,
    Python이 AI 구현에 가장 적합하다고 말하는 것에
    납득할 수 있다.

    확인 테스트



    선형과 비선형의 차이





    선형은 비례이다.
    비선형은 비례하지 않습니다.

    선형 함수
    - 가법성: $f(x+y)=f(x)+f(y)$
    - 순차성: $f(kx)=kf(x)$

    비선형 함수는 위의 두 가지를 충족시키지 못합니다.

    해당 소스 코드



    $z = f(u)$ 에 해당하는 소스 코드



    위의 2개의 function.relu(...) 부분.

    수료 테스트~연습 문제~



    문제 81(ReLU 함수)



    수식
    h(x) = \left\{
    \begin{array}{ll}
    x & (x \gt 0) \\
    0 & (x \leq 0)
    \end{array}
    \right.
    

    좋은 웹페이지 즐겨찾기