- 왜 신경망에서 바이어스 노드가 사용됩니까?
- 몇 개를 사용해야합니까?
- 어떤 레이어에서 사용해야합니까 : 모든 숨겨진 레이어와 출력 레이어?
답변
신경망의 바이어스 노드는 항상 ‘켜져있는’노드입니다. 즉, 주어진 패턴의 데이터에 관계없이 값이 로 설정됩니다 . 회귀 모형의 절편과 유사하며 동일한 기능을 수행합니다. 신경망에 주어진 레이어에 바이어스 노드가없는 경우 다음 레이어에서 과 다른 출력 (선형 스케일 또는 통과시 의 변환에 해당하는 값) 을 생성 할 수 없습니다 기능 값이 때 활성화 기능) .
간단한 예를 생각해 봅시다 : 2 개의 입력 노드 및 와 1 개의 출력 노드 가있는 피드 포워드 퍼셉트론 이 있습니다. 및 x 2 는 이진 피쳐이며 참조 레벨 x 1 = x 2 = 0으로 설정 됩니다. 이 2 0 에 원하는 가중치 w 1 과 w 2를 곱하고 곱을 곱한 후 원하는 활성화 기능을 통과 시키십시오. 바이어스 노드가 없으면 하나만x 2 y x 1
출력값이 가능하여 적합하지 않은 결과를 얻을 수 있습니다. 예를 들어, 로지스틱 활성화 함수를 사용하면 는 0.5 여야합니다 . 이는 드문 이벤트를 분류하기에 끔찍합니다.
바이어스 노드는 신경망 모델에 상당한 유연성을 제공합니다. 위에서 주어진 예에서, 바이어스 노드없이 가능한 유일한 예측 비율은 였지만, 바이어스 노드에서는 ( 0 , 1 )의 모든 비율 이 x 1 = x 2 = 0 인 패턴에 적합 할 수 있습니다 . 각 층에 대해서는 J 바이어스 노드가 추가 된, 바이어스 노드를 추가 할 것이다 N의 J는 + 1 추가 파라미터 / 가중치를 추정한다 (여기서 N의 J + 1 계층의 노드의 개수 j를
). 더 많은 매개 변수를 장착하면 신경망을 훈련하는 데 비례 적으로 시간이 더 걸립니다. 또한 배워야 할 가중치보다 훨씬 많은 데이터가 없으면 과적 합의 가능성이 높아집니다.
이러한 이해를 염두에두고 다음과 같은 명시적인 질문에 답변 할 수 있습니다.
- 데이터에 적합하도록 모델의 유연성을 높이기 위해 바이어스 노드가 추가되었습니다. 특히, 모든 입력 기능이 과 같을 때 네트워크가 데이터에 맞도록 하고 데이터 공간의 다른 곳에서 적합치의 바이어스를 줄일 가능성이 높습니다.
- 일반적으로 피드 포워드 네트워크의 입력 레이어 및 모든 숨겨진 레이어에 단일 바이어스 노드가 추가됩니다. 주어진 레이어에 둘 이상을 추가하지는 않지만 0을 추가 할 수 있습니다. 따라서 다른 고려 사항이 적용될 수 있지만 전체 수는 네트워크 구조에 따라 크게 결정됩니다. (피드 포워드 이외의 신경망 구조에 바이어스 노드가 추가되는 방법에 대해서는 명확하지 않습니다.)
- 대부분 이것에 대해 다루었지만 명시 적입니다. 출력 레이어에 바이어스 노드를 추가하지 않습니다. 그것은 말이되지 않습니다.
답변
간단하고 짧은 답변 :
- 입력 기능을 전환하거나 학습 된 기능에 대해 더 유연합니다.
- 레이어 당 단일 바이어스 노드.
- 모든 숨겨진 레이어 및 입력 레이어에 추가-각주
석사 논문 (예 : 59 페이지) 에서 두 번의 실험에서 , 나는 첫 번째 레이어에 바이어스가 중요 할 수 있다는 것을 알았습니다. 그러나 특히 완전히 연결된 레이어에서 큰 역할을하지 않는 것 같습니다. 그러므로 마지막 층이 아닌 처음 몇 층에 그것들을 가질 수 있습니다. 간단히 네트워크를 훈련시키고 바이어스 노드의 가중치 분포를 플로팅하고 가중치가 0에 너무 가까워 보인다면 정리하십시오.
이것은 네트워크 아키텍처 / 데이터 세트에 크게 의존 할 수 있습니다.
답변
신경망의 맥락에서, 배치 정규화 는 현재 현명한 “바이어스 노드”를 만들기위한 최고의 표준입니다. 뉴런의 바이어스 값을 고정하는 대신 뉴런 입력의 공분산을 조정합니다. 따라서 CNN에서는 컨볼 루션 레이어와 완전히 연결된 다음 레이어 (예 : ReLus) 사이에 배치 정규화를 적용합니다. 이론적으로 완전히 연결된 모든 레이어는 일괄 정규화의 이점을 얻을 수 있지만 실제로는 각 일괄 정규화에 고유 한 매개 변수가 있으므로 구현에 비용이 많이 듭니다.
왜, 대부분의 답변은 이미 입력이 활성화를 극도로 추진할 때 특히 뉴런이 포화 기울기에 영향을받는다고 설명했습니다. ReLu의 경우 왼쪽으로 밀려 0의 기울기가 나타납니다. 일반적으로 모델을 학습 할 때는 먼저 신경망에 대한 입력을 정규화합니다. 배치 정규화는 신경망 내부 의 레이어 간 입력을 정규화하는 방법입니다 .