애플리케이션과 함께 신경망에서 사용되는 비용 함수 목록


133

신경망의 성능을 평가하는 데 사용되는 일반적인 비용 함수는 무엇입니까?

세부

(이 질문의 나머지 부분을 건너 뛰십시오. 여기서 나의 의도는 단순히 대답이 일반 독자가 더 이해하기 쉽게하는 데 사용할 수있는 표기법에 대한 설명을 제공하는 것입니다)

실제로 사용 된 몇 가지 방법과 함께 공통 비용 함수 목록을 갖는 것이 유용 할 것입니다. 따라서 다른 사람들이 이것에 관심이 있다면 커뮤니티 위키가 아마도 가장 좋은 방법이라고 생각하거나 주제가 아닌 경우 게시를 중단 할 수 있습니다.

표기법

시작하기 위해, 우리는 이것을 설명 할 때 우리 모두가 사용하는 표기법을 정의하고 싶습니다. 그래서 답은 서로 잘 맞습니다.

이 표기법은 Neilsen의 저서에서 나온 것 입니다.

피드 포워드 신경망은 서로 연결된 많은 수의 뉴런 층입니다. 그런 다음 입력을 받아 들여 그 입력이 네트워크를 통해 "간섭"하고 신경망이 출력 벡터를 반환합니다.

보다 공식적으로, 는 레이어 에서 뉴런 의 활성화 (일명 출력)를 호출 . 여기서 는 입력 벡터 의 요소입니다. j t h i t h a 1 j j t hajijthithaj1jth

그런 다음 다음 레이어의 입력을 다음 관계를 통해 이전 레이어와 관련시킬 수 있습니다.

aji=σ(k(wjkiaki1)+bji)

어디

σ 는 활성화 기능입니다.

k t h ( i - 1 ) t h j t h i t hwjki 로부터의 무게 뉴런 받는 층 뉴런 층kth(i1)thjthith

j t h i t hbji 는 레이어 에서 뉴런 의 바이어스입니다.jthith

j t h i t haji 는 레이어 에서 뉴런 의 활성화 값을 나타냅니다 .jthith

때때로 우리 는 를 나타내는 를 작성합니다. 즉, 활성화 함수를 적용하기 전에 뉴런의 활성화 값 .k ( w i j ka i 1 k ) + b i jzjik(wjkiaki1)+bji

여기에 이미지 설명을 입력하십시오

더 간결한 표기법을 위해 다음과 같이 쓸 수 있습니다.

ai=σ(wi×ai1+bi)

이 공식을 사용하여 일부 입력 에 대한 피드 포워드 네트워크의 출력을 계산하려면 설정 다음 , , ..., 여기서 m은 레이어 수입니다.a 1 = I a 2 a 3 a mIRna1=Ia2a3am

소개

비용 함수는 주어진 훈련 샘플과 예상 출력에 대해 신경망이 얼마나 "좋은"지를 측정 한 것입니다. 또한 가중치 및 바이어스와 같은 변수에 따라 달라질 수 있습니다.

비용 함수는 신경망 전체의 성능을 평가하기 때문에 벡터가 아닌 단일 값입니다.

구체적으로 비용 함수는

C(W,B,Sr,Er)

여기서 는 신경망의 가중치이고, 는 신경망의 바이어스이며, 은 단일 트레이닝 샘플의 입력이며, 은 해당 트레이닝 샘플의 원하는 출력입니다. 이 함수는 계층 뉴런 에 대해 및 에 종속 될 수 있습니다.이 값은 , 및 에 의존하기 때문 입니다.B S r E r y i j z i j j i W B S rWBSrEryjizjijiWBSr

역 전파에서 비용 함수는 다음을 통해 출력 레이어 의 오류를 계산하는 데 사용 됩니다.δL

δjL=CajLσ(zji)
.

를 통해 벡터로 쓸 수도 있습니다

δL=aCσ(zi)
.

우리는 두 번째 방정식의 관점에서 비용 함수의 구배를 제공 할 것입니다. 그러나 이러한 결과를 직접 입증하려면 작업하기가 더 쉬우므로 첫 번째 방정식을 사용하는 것이 좋습니다.

비용 함수 요구 사항

역 전파에 사용하려면 비용 함수가 다음 두 가지 특성을 충족해야합니다.

1 : 비용 함수 를 평균으로 쓸 수 있어야합니다C

C=1nxCx

개별 훈련 예에 대한 비용 함수 , . xCxx

따라서 단일 트레이닝 예제의 그라디언트 (가중치 및 바이어스)를 계산하고 그라디언트 디센트를 실행할 수 있습니다.

2 : 비용 함수 는 출력 값 외에 신경망의 활성화 값에 의존해서는 안됩니다 .CaL

기술적으로 비용 함수는 또는 에 따라 달라질 수 있습니다 . 우리는 마지막 레이어의 그라디언트를 찾는 방정식이 비용 함수에 의존하는 유일한 것이므로 (나머지는 다음 레이어에 의존하기 때문에)이 전파를 역 전파 할 수 있습니다. 비용 함수가 출력 계층 이외의 다른 활성화 계층에 종속되는 경우 "뒤로 속임수"라는 개념이 더 이상 작동하지 않기 때문에 역 전파가 유효하지 않습니다. z i jajizji

또한 활성화 함수는 모든 대해 출력 을 합니다. 따라서 이러한 비용 함수는 해당 범위 내에서만 정의해야합니다 (예 : 보장되므로 가 유효 함 ).j 0ajL1j a L j0ajLajL0


3
이것은 Q & A 사이트이며이 게시물의 형식이 실제로 맞지 않습니다. 아마도 대부분의 내용을 답에 넣고 질문 만 남겨 두어야합니다 (예 : NN에서 사용되는 비용 함수 목록은 무엇입니까?).
Roger Fan

좋아, 더 나아? 나는 정의가 중요하다고 생각한다. 그렇지 않으면 작가가 사용하는 용어에 익숙하지 않은 사람들에게는 답이 모호해진다.
Phylliida

그러나 다른 대답이 다른 표기법이나 용어를 사용한다면 어떨까요?
Roger Fan

3
아이디어는 모든 사람들이 여기에서 동일한 용어를 사용한다는 것이며, 다른 용어를 사용하면이 용어로 변환하므로 답변이 서로 "적합"합니다. 그러나 도움이되지 않으면 조각을 제거 할 수 있다고 생각합니다.
Phylliida

1
나는 그 질문에 대한 세부 사항이 실제로 필요하거나 관련이 없다고 생각합니다. 그것은 약간 과도하고 제한적인 것처럼 보이지만 그것은 단지 나입니다.
Roger Fan

답변:


85

여기까지 내가 이해하는 사람들이 있습니다. 이들 중 대부분은 0과 1 사이의 값이 주어질 때 가장 잘 작동합니다.

이차 비용

평균 제곱 오차 , 최대 가능성합 제곱 오차 라고도하며 다음과 같이 정의됩니다.

CMST(W,B,Sr,Er)=0.5j(ajLEjr)2

신경망과 일부 샘플 의 출력에 대한이 비용 함수의 기울기는 다음과 같습니다.r

에이에스=(에이이자형아르 자형)

교차 엔트로피 비용

Bernoulli 음의 로그 우도이진 교차 엔트로피 라고도 함

이자형(,,에스아르 자형,이자형아르 자형)=제이[이자형제이아르 자형 ln 에이제이+(1이자형제이아르 자형) ln (1에이제이)]

신경망과 일부 샘플 의 출력에 대한이 비용 함수의 기울기는 다음과 같습니다.아르 자형

에이이자형=(에이이자형아르 자형)(1에이)(에이)

지수 비용

이것은 몇 가지 매개 변수의 선택이 필요합니다 당신은 당신이 원하는 행동을 줄 것이라 생각합니다. 일반적으로 문제가 해결 될 때까지이 작업을 수행하면됩니다.τ

이자형엑스(,,에스아르 자형,이자형아르 자형)=τ 특급(1τ제이(에이제이이자형제이아르 자형)2)

여기서 는 약칭입니다 .e x특급(엑스)이자형엑스

신경망과 일부 샘플 의 출력에 대한이 비용 함수의 기울기는 다음과 같습니다.아르 자형

에이=2τ(에이이자형아르 자형)이자형엑스(,,에스아르 자형,이자형아르 자형)

다시 쓸 수는 있지만 중복되는 것 같습니다. 점은 그래디언트가 벡터를 계산 한 다음 를 곱한 것 입니다. C E X P이자형엑스이자형엑스

헬 링거 거리

H(,,에스아르 자형,이자형아르 자형)=12제이(에이제이이자형제이아르 자형)2

이에 대한 자세한 내용은 여기를 참조 하십시오 . 여기에는 양수 값이 있어야하며 과 사이의 값이 있어야합니다 . 다음과 같은 분기에서도 마찬가지입니다.101

신경망과 일부 샘플 의 출력에 대한이 비용 함수의 기울기는 다음과 같습니다.아르 자형

에이=에이이자형아르 자형2에이

쿨백 – 라이 블러 발산

Information Divergence , Information Gain , Relative entropy , KLIC 또는 KL Divergence 라고도합니다 ( 여기 참조 ).

Kullback–Leibler 분기는 일반적으로 .

케이()=나는(나는)ln(나는)(나는)

여기서 는 가 를 근사하는 데 사용될 때 손실되는 정보를 측정 한 것입니다 . 따라서 를 사용 를 근사화 할 때 손실되는 정보의 양을 측정하려고하므로 및 을 설정하려고합니다 . 이것은 우리에게Q P P는 = E가 나는 Q는 = L I의 J E의 난의 J를케이()=이자형나는=에이에이제이나는이자형제이나는

케이(,,에스아르 자형,이자형아르 자형)=제이이자형제이아르 자형로그이자형제이아르 자형에이제이

여기서 다른 분기점은 및 설정과 동일한 아이디어를 사용합니다 .=이자형나는=에이

신경망과 일부 샘플 의 출력에 대한이 비용 함수의 기울기는 다음과 같습니다.아르 자형

에이=이자형아르 자형에이

일반화 된 쿨백 – Leibler 발산

에서 여기 .

케이(,,에스아르 자형,이자형아르 자형)=제이이자형제이아르 자형로그이자형제이아르 자형에이제이제이(이자형제이아르 자형)+제이(에이제이)

신경망과 일부 샘플 의 출력에 대한이 비용 함수의 기울기는 다음과 같습니다.아르 자형

에이=에이이자형아르 자형에이

이타 쿠라 – 사이토 거리

또한 여기에서 .

케이(,,에스아르 자형,이자형아르 자형)=제이(이자형제이아르 자형에이제이로그이자형제이아르 자형에이제이1)

신경망과 일부 샘플 의 출력에 대한이 비용 함수의 기울기는 다음과 같습니다.아르 자형

에이=에이이자형아르 자형(에이)2

여기서 입니다. 다시 말해, 는 단순히 의 각 요소를 제곱하는 것과 같습니다 . ( a L ) 2aL((에이)2)제이=에이제이에이제이(에이)2에이


공유해 주셔서 감사합니다. github.com/torch/nn/blob/master/doc/criterion.md
Yannis Assael

2
당신이 교차 엔트로피 유도체의 분모에있는 작은 실수가, 그것은해야 a*(1-a)하지a*(1+a)
암로

1
또한 평균 오차가 아닌 오차 Quantile을 최소화하기 위해 핀볼 손실 기능을 보여주는 것이 좋습니다. 의사 결정 지원 시스템에서 매우 사용됩니다.
Ricardo Cruz

이들에 대한 그래프는 어디에서 볼 수 있습니까?
coiso

1
2 차 비용 함수와 관련하여 "평균 제곱 오류" "최대 가능성" "총 제곱 오류"에 유의해야합니다 . 저자는 이름을 (잘못된) 상호 교환 적으로 사용할 수 있지만 동일 하지는 않습니다 .
Jon

20

언급 할만한 명성은 없지만 마지막 3 개의 그라디언트에는 부호 오류가 있습니다.

KL 발산에서 이 일반화 된 KL 분기에서 동일한 부호 오류가 나타납니다.

=제이이자형제이로그(이자형제이/에이제이)=제이이자형제이로그(이자형제이)이자형제이로그(에이제이)=제이이자형제이로그(에이제이)=제이(이자형제이/에이제이)에이제이에이=이자형에이

Itakura-Saito 거리에서

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