신경망의 성능을 평가하는 데 사용되는 일반적인 비용 함수는 무엇입니까?
세부
(이 질문의 나머지 부분을 건너 뛰십시오. 여기서 나의 의도는 단순히 대답이 일반 독자가 더 이해하기 쉽게하는 데 사용할 수있는 표기법에 대한 설명을 제공하는 것입니다)
실제로 사용 된 몇 가지 방법과 함께 공통 비용 함수 목록을 갖는 것이 유용 할 것입니다. 따라서 다른 사람들이 이것에 관심이 있다면 커뮤니티 위키가 아마도 가장 좋은 방법이라고 생각하거나 주제가 아닌 경우 게시를 중단 할 수 있습니다.
표기법
시작하기 위해, 우리는 이것을 설명 할 때 우리 모두가 사용하는 표기법을 정의하고 싶습니다. 그래서 답은 서로 잘 맞습니다.
이 표기법은 Neilsen의 저서에서 나온 것 입니다.
피드 포워드 신경망은 서로 연결된 많은 수의 뉴런 층입니다. 그런 다음 입력을 받아 들여 그 입력이 네트워크를 통해 "간섭"하고 신경망이 출력 벡터를 반환합니다.
보다 공식적으로, 는 레이어 에서 뉴런 의 활성화 (일명 출력)를 호출 . 여기서 는 입력 벡터 의 요소입니다. j t h i t h a 1 j j t h
그런 다음 다음 레이어의 입력을 다음 관계를 통해 이전 레이어와 관련시킬 수 있습니다.
어디
는 활성화 기능입니다.
k t h ( i - 1 ) t h j t h i t h 로부터의 무게 뉴런 받는 층 뉴런 층
j t h i t h 는 레이어 에서 뉴런 의 바이어스입니다.
j t h i t h 는 레이어 에서 뉴런 의 활성화 값을 나타냅니다 .
때때로 우리 는 를 나타내는 를 작성합니다. 즉, 활성화 함수를 적용하기 전에 뉴런의 활성화 값 . ∑ k ( w i j k ⋅ a i − 1 k ) + b i j
더 간결한 표기법을 위해 다음과 같이 쓸 수 있습니다.
이 공식을 사용하여 일부 입력 에 대한 피드 포워드 네트워크의 출력을 계산하려면 설정 다음 , , ..., 여기서 m은 레이어 수입니다.a 1 = I a 2 a 3 a m
소개
비용 함수는 주어진 훈련 샘플과 예상 출력에 대해 신경망이 얼마나 "좋은"지를 측정 한 것입니다. 또한 가중치 및 바이어스와 같은 변수에 따라 달라질 수 있습니다.
비용 함수는 신경망 전체의 성능을 평가하기 때문에 벡터가 아닌 단일 값입니다.
구체적으로 비용 함수는
여기서 는 신경망의 가중치이고, 는 신경망의 바이어스이며, 은 단일 트레이닝 샘플의 입력이며, 은 해당 트레이닝 샘플의 원하는 출력입니다. 이 함수는 계층 뉴런 에 대해 및 에 종속 될 수 있습니다.이 값은 , 및 에 의존하기 때문 입니다.B S r E r y i j z i j j i W B S r
역 전파에서 비용 함수는 다음을 통해 출력 레이어 의 오류를 계산하는 데 사용 됩니다.
를 통해 벡터로 쓸 수도 있습니다
우리는 두 번째 방정식의 관점에서 비용 함수의 구배를 제공 할 것입니다. 그러나 이러한 결과를 직접 입증하려면 작업하기가 더 쉬우므로 첫 번째 방정식을 사용하는 것이 좋습니다.
비용 함수 요구 사항
역 전파에 사용하려면 비용 함수가 다음 두 가지 특성을 충족해야합니다.
1 : 비용 함수 를 평균으로 쓸 수 있어야합니다
개별 훈련 예에 대한 비용 함수 , . x
따라서 단일 트레이닝 예제의 그라디언트 (가중치 및 바이어스)를 계산하고 그라디언트 디센트를 실행할 수 있습니다.
2 : 비용 함수 는 출력 값 외에 신경망의 활성화 값에 의존해서는 안됩니다 .는 패
기술적으로 비용 함수는 또는 에 따라 달라질 수 있습니다 . 우리는 마지막 레이어의 그라디언트를 찾는 방정식이 비용 함수에 의존하는 유일한 것이므로 (나머지는 다음 레이어에 의존하기 때문에)이 전파를 역 전파 할 수 있습니다. 비용 함수가 출력 계층 이외의 다른 활성화 계층에 종속되는 경우 "뒤로 속임수"라는 개념이 더 이상 작동하지 않기 때문에 역 전파가 유효하지 않습니다. z i j
또한 활성화 함수는 모든 대해 출력 을 합니다. 따라서 이러한 비용 함수는 해당 범위 내에서만 정의해야합니다 (예 : 보장되므로 가 유효 함 ).j √ a L j ≥0