로지스틱 회귀 분석에서 비용 함수는 어떻게 도출됩니까?


29

Coursera에서 기계 학습 스탠포드 코스를하고 있습니다.

로지스틱 회귀에 관한 장에서 비용 함수는 다음과 같습니다. 여기에 이미지 설명을 입력하십시오

그런 다음 여기에서 파생됩니다. 여기에 이미지 설명을 입력하십시오

비용 함수의 미분을 얻으려고했지만 완전히 다른 것을 얻었습니다.

파생 상품은 어떻게 얻습니까?

중개 단계는 무엇입니까?


+1, 내 질문에서 @AdamO의 답변을 확인하십시오. stats.stackexchange.com/questions/229014/…
Haitao Du

"완전히 다른 것"은 이미 알고있는 것 (올바른 그라디언트)을 알려주는 것 외에 질문에 대답하기에 충분하지 않습니다. 계산 결과를 우리에게 알려 주면 훨씬 더 유용 할 것입니다. 그런 다음 실수를 한 지점을 헤쳐 나갈 수 있습니다.
Matthew Drury

@MatthewDrury 죄송합니다. Matt, 귀하의 의견이 들어 오기 직전에 답변을 준비했습니다. Octavian, 모든 단계를 수행하셨습니까? 나는 ... 나중에 몇 가지 부가 가치를 제공하기 위해 편집합니다
안토니 Parellada에게

2
"파생"이라고 할 때 "차등화"또는 "파생"을 의미합니까?
Glen_b-복지 모니카

답변:


41

Andrew Ng의 Coursera Machine Learning 과정 페이지에서 학생들이 제공 한 메모 외부에서 사용할 수없는 (이 파생 내용 포함) 과정 노트에서 적응했습니다 .


다음에서 위첨자 개별 측정 또는 훈련 "예"를 나타냅니다.(i)

J(θ)θj=θj1mi=1m[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]=linearity1mi=1m[y(i)θjlog(hθ(x(i)))+(1y(i))θjlog(1hθ(x(i)))]=chain rule1mi=1m[y(i)θjhθ(x(i))hθ(x(i))+(1y(i))θj(1hθ(x(i)))1hθ(x(i))]=hθ(x)=σ(θx)1mi=1m[y(i)θjσ(θx(i))hθ(x(i))+(1y(i))θj(1σ(θx(i)))1hθ(x(i))]=σ1mi=1m[y(i)σ(θx(i))(1σ(θx(i)))θj(θx(i))hθ(x(i))(1y(i))σ(θx(i))(1σ(θx(i)))θj(θx(i))1hθ(x(i))]=σ(θx)=hθ(x)1mi=1m[y(i)hθ(x(i))(1hθ(x(i)))θj(θx(i))hθ(x(i))(1y(i))hθ(x(i))(1hθ(x(i)))θj(θx(i))1hθ(x(i))]=θj(θx(i))=xj(i)1mi=1m[y(i)(1hθ(x(i)))xj(i)(1yi)hθ(x(i))xj(i)]=distribute1mi=1m[yiyihθ(x(i))hθ(x(i))+y(i)hθ(x(i))]xj(i)=cancel1mi=1m[y(i)hθ(x(i))]xj(i)=1mi=1m[hθ(x(i))y(i)]xj(i)


S 자형 함수의 미분은

ddxσ(x)=ddx(11+ex)=(1+ex)(1+ex)2=ex(1+ex)2=(11+ex)(ex1+ex)=(11+ex)(1+ex1+ex11+ex)=σ(x)(1+ex1+exσ(x))=σ(x)(1σ(x))


1
모든 노력에 +1 !, 매트릭스 표기법을 사용하는 것이 더 쉬울 수 있습니까?
Haitao Du

선형 회귀 분석에서 목적은 이고 미분은 . 여기서 , 로지스틱 회귀 분석에서 미분은 여기서 및 ? 2 T E E = X - B T E E = P - B P = S 자형 ( 경우 → X )Axb22ATee=AxbATee=pbp=sigmoid (Ax)
Haitao Du

2
당신의 노력에 감사드립니다. 당신은 우리에게 OP의 언어에 시간을 보내고 !!
Haitao Du

1
제 이해는 비선형 활성화 함수에 제곱 오차를 바람직하지 않게 만드는 볼록성 문제가 있다는 것입니다. 행렬 표기법에서는 . J(θ)θ=1mX(σ(Xθ)y)
Antoni Parellada

1
@MohammedNoureldin 방금 이전 줄의 분자에서 부분 미분을 취하여 연쇄 규칙을 적용했습니다.
Antoni Parellada

8

문제의 과도한 복잡성의 영향을 피하기 위해 솔루션의 구조 만 살펴 보겠습니다.

단순화와 표기법의 남용으로 를 합으로 정의 하고 는 의 함수입니다 : G(θ)J(θ)h=1/(1+ez)z(θ)=xθ

G=ylog(h)+(1y)log(1h)

우리는 사슬 규칙을 사용할 수있다 : 에 의해 하나를 해결 하나 ( 와 는 상수)dGdθ=dGdhdhdzdzdθxy

dGh=yh1y1h=yhh(1h)
를 들어 sigmoid 보유. 이는 이전 명령문의 분모 일뿐입니다.dhdz=h(1h)

마지막으로 입니다.dzdθ=x

결과를 모두 결합하면 원하는 표현을 얻을 수 있습니다. 희망이 있습니다.

dGdθ=(yh)x

0

이 답변에 대한 크레딧은 Antoni Parellada의 의견에서 나옵니다.이 페이지에서 더 눈에 띄는 곳이 될 것이라고 생각합니다 (다른 답변이 많지 않을 때 도움이되었으므로). 또한 이것은 완전한 파생이 아니라 에 대한 명확한 진술입니다 . (전체 파생에 대해서는 다른 답변을 참조하십시오).J(θ)θ

J(θ)θ=1mXT(σ(Xθ)y)

어디에

XRm×n=Training example matrixσ(z)=11+ez=sigmoid function=logistic functionθRn=weight row vectory=class/category/label corresponding to rows in X

또한 대한 의 기울기를 계산하려는 사람들을위한 Python 구현입니다 .Jθ

import numpy
def sig(z):
return 1/(1+np.e**-(z))


def compute_grad(X, y, w):
    """
    Compute gradient of cross entropy function with sigmoidal probabilities

    Args: 
        X (numpy.ndarray): examples. Individuals in rows, features in columns
        y (numpy.ndarray): labels. Vector corresponding to rows in X
        w (numpy.ndarray): weight vector

    Returns: 
        numpy.ndarray 

    """
    m = X.shape[0]
    Z = w.dot(X.T)
    A = sig(Z)
    return  (-1/ m) * (X.T * (A - y)).sum(axis=1) 

0

미적분학에 능숙하지는 않지만 비용 함수를 조정하고 파생 상품을 계산하는 방법을 찾아야하는 사람들에게는 미적분 재 학습 단축 법이 자동으로 제공되는이 온라인 도구입니다 규칙의 단계별 설명과 함께 파생.

https://www.derivative-calculator.net

로지스틱 회귀 분석에서 S 자형 활성화의 비용 함수를 도출하는 예

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.