저는 Cousera의 DeepAI 과정 (3 주 비디오 1 "Neural Networks 개요")을 통해 진행하고 Andrew Ng는 신경망의 각 계층이 또 다른 로지스틱 회귀 분석 방법을 설명하고 있지만 어떻게 이것이 더 정확한지 설명하지는 않습니다.
2 계층 네트워크에서 물류를 여러 번 계산하는 것이 어떻게 더 정확 해 집니까?
저는 Cousera의 DeepAI 과정 (3 주 비디오 1 "Neural Networks 개요")을 통해 진행하고 Andrew Ng는 신경망의 각 계층이 또 다른 로지스틱 회귀 분석 방법을 설명하고 있지만 어떻게 이것이 더 정확한지 설명하지는 않습니다.
2 계층 네트워크에서 물류를 여러 번 계산하는 것이 어떻게 더 정확 해 집니까?
답변:
로지스틱 활성화 함수를 사용하는 경우 각 유닛의 입력과 출력을 관련시키는 기능이 로지스틱 회귀와 동일하다는 것은 사실입니다. 그러나 이것은 로지스틱 회귀를 수행하는 각 단위와 실제로 동일하지 않습니다. 차이점은 로지스틱 회귀 분석에서 가중치와 바이어스가 출력이 주어진 목표 값과 가장 일치하도록 선택된다는 것입니다 (로그 / 엔트로피 손실 사용). 반대로 신경망의 숨겨진 유닛은 출력을 다운 스트림 유닛으로 보냅니다. 숨겨진 개별 단위에 일치하는 대상 출력이 없습니다. 오히려 가중치와 바이어스는 네트워크의 최종 출력에 의존하는 일부 객관적인 기능을 최소화하기 위해 선택됩니다.
로지스틱 회귀 분석을 수행하는 대신 각 숨겨진 단위를 일부 피처 공간에서 좌표를 계산하는 것으로 생각하는 것이 더 합리적입니다. 이 관점에서 숨겨진 레이어의 목적은 입력을 변환하는 것입니다. 입력 벡터는 숨겨진 레이어 활성화의 벡터에 매핑됩니다. 이를 입력을 각 숨겨진 단위에 해당하는 치수를 가진 형상 공간으로 매핑하는 것으로 생각할 수 있습니다.
출력 레이어는 종종이 기능 공간에서 작동하는 표준 학습 알고리즘으로 생각할 수 있습니다. 예를 들어, 분류 작업에서 교차 엔트로피 손실이있는 로지스틱 출력 단위를 사용하는 것은 형상 공간에서 로지스틱 회귀를 수행하는 것과 같습니다 (또는 softmax 출력을 사용하는 경우 다항 로지스틱 회귀). 회귀 작업에서 제곱 오차가있는 선형 출력을 사용하는 것은 피처 공간에서 최소 제곱 선형 회귀를 수행하는 것과 같습니다.
네트워크를 훈련시키는 것은 최상의 성능을 제공하는 피처 공간 매핑 및 분류 / 회귀 함수 (피처 공간 내)를 배우는 것입니다. 비선형 숨겨진 단위를 가정하고 숨겨진 레이어의 너비를 늘리거나 여러 숨겨진 레이어를 쌓으면 더 복잡한 피처 공간 매핑을 허용하여 더 복잡한 기능을 맞출 수 있습니다.
비선형 성의 힘을 보는 한 가지 방법은 보편적 근사 정리 를 주목하는 것 입니다.
실제로는 중요하지는 않지만 (단일 계층 네트워크의 기능에 관한 것), (임의의 긴) 시그 모이 드의 합계를 사용하면 원칙적으로 원하는 연속 수준의 기능을 원하는 수준으로 근사화 할 수 있습니다. 푸리에 이론을 알고 있거나 Weierstrass 근사 정리를 기억한다면 놀라운 일이 아닙니다.
신경망에 숨겨진 레이어가 있으면 비선형 기능이 추가됩니다. 이해를 돕기 위해 여기에 내 대답을 확인하십시오.
특히 중첩 된 시그 모이 드 함수는 원래 피처와 하나의 시그 모이 드 함수 (로지스틱 회귀)의 선형 변환보다 "강력한"기능을 제공합니다.
다음은 OP의 의견을 제시하는 수치 예입니다.
데이터 프레임 가 있다고 가정 하면 행렬 (10 데이터 포인트, 3 기능)입니다. 숨겨진 단위를 원한다면 가중치 행렬 는 행렬입니다. 숨겨진 계층에 대한 출력 (매트릭스 곱셈 출력 )은 행렬이며, 각 데이터 포인트마다 기능이 있습니다.10 × 3 7 W 3 × 7 X × W 10 × 7 7
표준 로지스틱 회귀 분석에서는 최종 레이어에 1 개의 출력이 있습니다. 그러나 단일 히든 레이어 신경망을 사용하면 각각 다른 로지스틱 회귀 모델의 출력으로 생각할 수있는 여러 개의 중간 값을 가질 수 있습니다. 즉, 동일한 로지스틱 회귀를 반복해서 수행하는 것이 아닙니다. 이러한 조합이 표준 로지스틱 회귀 모델보다 표현력이 더 우수 할 수 있다고 생각하는 것은 큰 도약이 아닙니다 (실제와 이론 에도 나와 있습니다 ).
또한 동일한 입력을 가진 노드가 동일한 계층에서 다른 값을 갖는 방법에 대한 의견에서 언급 했습니까? 무게가 달라야하기 때문입니다. 뉴럴 네트워크의 각 노드는 얻어 입력하고 값 생성 여기서 일부에서 기능을 선택 우리의 경우 S 자형, 는 가중치이고, 는 입력이며, 는 바이어스입니다. 가중치가 선택됩니다y j = f ( N ∑ i = 1 w j i ⋅ x i + b j ) f w j i x i b j우리의 목표를 최적화하기위한 최적화 알고리즘에 의해 분류 오류 최소화. 초기화는 일반적으로 가중치를 최적화하는 데 사용되는 경사 하강 알고리즘에 매우 중요합니다. https://intoli.com/blog/neural-network-initialization/을 참조 하십시오. 여기서 모든 가중치가 0에서 시작하면 네트워크를 학습 할 수 없습니다.