시그모드 함수와 소프트맥스 함수 개술

3964 단어 기계 학습Python
본고는 특히 기계 학습 분류 문제의 측면에서 시그모드 함수와 소프트맥스 함수의 성질을 개술하였다.

신호 함수


신호 함수 개술


sigmoid function은 기계 학습에서 자주 사용하는 함수입니다.
$S(x)=\dfrac{1}{1+\rm{exp}(\it{-x}\rm{)}}$
에서 설명한 대로 해당 매개변수의 값을 수정합니다.다음 그림에서 보듯이 단조로운 증가 함수입니다.

논리 함수와의 관계


신호 함수를 일반화하는 함수는 논리 함수이다
$f(x)=\dfrac{L}{1+\rm{exp}(\it{-k\\rm{(}\it{x-x_0}}\rm{))}}$
에서 기술한 장면은 다음과 같은 절차를 이용하여 명세표를 작성하여 개념 디자인에서 체량의 부피를 분석하도록 한다.
각 매개 변수의 뜻은 다음과 같다.
  • $L$: 함수 값이 얻을 수 있는 최대 값입니다. $\rm {exp}(\it {-k\rm {(}\it {x-x_0}\rm {)}\geqq0$(극한의 엄격한 정의는 사상) 때문에 $f(x)\leqq\dfrac {L} {1} $가 성립됩니다
  • $x_0$: $S 커브 가운데 코너에 있는 $x$값입니다. $이것은 x$값이 증가/감소함에 따라 증가/감소를 제어하는 기준점입니다.한가운데에 있기 때문에 $f(x_0) =\dfrac {L} {2}$입니다
  • $k$: 최소값에서 최대값까지 증가하는 완급을 제어하는 매개 변수입니다
  • 논리 함수 매개변수에서 $L=1, x_0=0, k=1달러로 설정된 것은 시그모드 함수입니다.

    시그모드 함수의 성질


    수학에는 비슷한 성질을 가진 함수가 많아 흥미롭지만 기계 학습에서의 응용에만 국한되어 중요한 성질을 열거했다.
    시그모드 함수는 $y=0달러와 $y=1달러로 $(-\infty,\infty)\rightarrow(0,1)$로 만드는 단조로운 증가 함수입니다.이것은 $x$가 어떤 값을 취하든지 간에 $S(x)$의 함수 값이 $0$에서 $1$사이로 밀린다는 것을 의미한다.확률론에 나타난 누적 분포 함수(cumulative distribution function)와 성질이 같기 때문에 이 함수는 신경 네트워크에서 입력값 $x$를 확률값에 해당하는 출력값 $S(x)$로 변환하는 활성화 함수(activation function)로 자주 사용된다.

    소프트 맥스 함수


    시그모드 함수가 특정한 값(실수)의 입력을 출력하는 함수와 비교하면 소프트맥스 함수는 여러 개의 값으로 구성된 벡터를 입력하여 정규화된 벡터를 출력한다.
    구체적인 예로 이 뜻을 설명하다.

    소프트 맥스 함수 개술


    입력 값이 $n$인 벡터의 경우
    값 벡터 입력 $(x_1, x_2,\dots, x_n)$
    출력값 벡터 $(y_1, y_2,\dots, y_n)$
    상자에서 [기본값] 을 선택합니다.
    $y_1 =\dfrac{exp(x_1)}{exp(x_1)+exp(x_2)+\dots+exp(x_n)}$
    $y_2 =\dfrac{exp(x_2)}{exp(x_1)+exp(x_2)+\dots+exp(x_n)}$
    $\dots$
    $y_n =\dfrac{exp(x_n)}{exp(x_1)+exp(x_2)+\dots+exp(x_n)}$
    지금, $y_1+y_2+\dots+y_n=1달러입니다.
    예:
    값 벡터 입력 $(1,2,3)$
    에 설명된 해당 매개변수의 값입니다.
    출력 벡터 $(0.09003057,0.24472847,0.66524096)$
    나는 합계치가 1달러인지 알고 싶다.
    또한 Python은 다음과 같이 설치할 수 있습니다.
    import numpy as np
    
    def softmax_func(x):
        exp_x = np.exp(x)
        return exp_x/np.sum(exp_x)
    
    x = np.array([1, 2, 3])
    print(softmax_func(x))
    

    소프트 맥스 함수의 성질


    소프트 맥스 함수는 출력 값 벡터의 모든 요소를 $0$에서 $1$로 밀어넣고 모든 요소의 합계를 $1$로 규범화하는 성질을 가지고 있으며, 여러 값의 입력 값 벡터 $x$에서 어떤 값을 얻든지 간에.이 함수는 신경 네트워크에서 활성화 함수(activation function)로 자주 사용되며 입력 값 벡터의 각 요소를 확률 값과 비슷한 출력 값 벡터로 변환한다.

    기계 학습에서의 구분 사용


    상술한 바와 같이 시그모드 함수와 소프트맥스 함수는 공통된 성질을 읽을 수 있다.
    $n=2$의 소프트 맥스 함수는 다음과 같다.
    $y_1=\dfrac{exp(x_1)}{exp(x_1)+exp(x_2)}=\dfrac{1}{1+\frac{exp(x_2)}{exp(x_1)}}=\dfrac{1}{1+exp(-(x_1-x_2))}$
    이렇게 하면 $n=2$의 소프트 맥스 함수는 시그모드 함수이고, 시그모드 함수를 일반화하는 것은 소프트 맥스 함수이다.
    이 두 함수의 관계성과 확률 값을 동시에 출력하는 함수의 성질 때문에 기계 학습의 분류 문제에서 2치 분류는 시그모드 함수를 사용하고 다수치 분류(3치 이상)는 소프트맥스 함수를 사용하여 출력층의 활성화 함수로 한다.
    (또한 회귀 문제에서 출력층의 활성화 함수로 항등 함수 (identity function) 를 사용합니다.)

    좋은 웹페이지 즐겨찾기