태그 보관물: neural-networks

neural-networks

왜 신경망에서 바이어스 노드가 사용됩니까? 사용해야합니까? 어떤 레이어에서 사용해야합니까 :

  1. 왜 신경망에서 바이어스 노드가 사용됩니까?
  2. 몇 개를 사용해야합니까?
  3. 어떤 레이어에서 사용해야합니까 : 모든 숨겨진 레이어와 출력 레이어?


답변

신경망의 바이어스 노드는 항상 ‘켜져있는’노드입니다. 즉, 주어진 패턴의 데이터에 관계없이 값이 로 설정됩니다 . 회귀 모형의 절편과 유사하며 동일한 기능을 수행합니다. 신경망에 주어진 레이어에 바이어스 노드가없는 경우 다음 레이어에서 과 다른 출력 (선형 스케일 또는 통과시 의 변환에 해당하는 값) 을 생성 할 수 없습니다 기능 값이 때 활성화 기능) .

1

0

0

0

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

간단한 예를 생각해 봅시다 : 2 개의 입력 노드 및 와 1 개의 출력 노드 가있는 피드 포워드 퍼셉트론 이 있습니다. 및 x 2 는 이진 피쳐이며 참조 레벨 x 1 = x 2 = 0으로 설정 됩니다. 이 2 0 에 원하는 가중치 w 1w 2를 곱하고 곱을 곱한 후 원하는 활성화 기능을 통과 시키십시오. 바이어스 노드가 없으면 하나만x 2 y x 1

x1

x2

와이

x1

엑스2

엑스1=엑스2=0

0

1

2

출력값이 가능하여 적합하지 않은 결과를 얻을 수 있습니다. 예를 들어, 로지스틱 활성화 함수를 사용하면 0.5 여야합니다 . 이는 드문 이벤트를 분류하기에 끔찍합니다.

와이

.5

바이어스 노드는 신경망 모델에 상당한 유연성을 제공합니다. 위에서 주어진 예에서, 바이어스 노드없이 가능한 유일한 예측 비율은 였지만, 바이어스 노드에서는 ( 0 , 1 )의 모든 비율 이 x 1 = x 2 = 0 인 패턴에 적합 할 수 있습니다 . 각 층에 대해서는 J 바이어스 노드가 추가 된, 바이어스 노드를 추가 할 것이다 N의 J는 + 1 추가 파라미터 / 가중치를 추정한다 (여기서 N의 J + 1 계층의 노드의 개수 j를

50%

(0,1)

엑스1=엑스2=0

j

j+1

j+1

). 더 많은 매개 변수를 장착하면 신경망을 훈련하는 데 비례 적으로 시간이 더 걸립니다. 또한 배워야 할 가중치보다 훨씬 많은 데이터가 없으면 과적 합의 가능성이 높아집니다.

j+1

이러한 이해를 염두에두고 다음과 같은 명시적인 질문에 답변 할 수 있습니다.

  1. 데이터에 적합하도록 모델의 유연성을 높이기 위해 바이어스 노드가 추가되었습니다. 특히, 모든 입력 기능이 과 같을 때 네트워크가 데이터에 맞도록 하고 데이터 공간의 다른 곳에서 적합치의 바이어스를 줄일 가능성이 높습니다.
    0

  2. 일반적으로 피드 포워드 네트워크의 입력 레이어 및 모든 숨겨진 레이어에 단일 바이어스 노드가 추가됩니다. 주어진 레이어에 둘 이상을 추가하지는 않지만 0을 추가 할 수 있습니다. 따라서 다른 고려 사항이 적용될 수 있지만 전체 수는 네트워크 구조에 따라 크게 결정됩니다. (피드 포워드 이외의 신경망 구조에 바이어스 노드가 추가되는 방법에 대해서는 명확하지 않습니다.)
  3. 대부분 이것에 대해 다루었지만 명시 적입니다. 출력 레이어에 바이어스 노드를 추가하지 않습니다. 그것은 말이되지 않습니다.

답변

간단하고 짧은 답변 :

  1. 입력 기능을 전환하거나 학습 된 기능에 대해 더 유연합니다.
  2. 레이어 당 단일 바이어스 노드.
  3. 모든 숨겨진 레이어 및 입력 레이어에 추가-각주

석사 논문 (예 : 59 페이지) 에서 두 번의 실험에서 , 나는 첫 번째 레이어에 바이어스가 중요 할 수 있다는 것을 알았습니다. 그러나 특히 완전히 연결된 레이어에서 큰 역할을하지 않는 것 같습니다. 그러므로 마지막 층이 아닌 처음 몇 층에 그것들을 가질 수 있습니다. 간단히 네트워크를 훈련시키고 바이어스 노드의 가중치 분포를 플로팅하고 가중치가 0에 너무 가까워 보인다면 정리하십시오.

이것은 네트워크 아키텍처 / 데이터 세트에 크게 의존 할 수 있습니다.


답변

신경망의 맥락에서, 배치 정규화 는 현재 현명한 “바이어스 노드”를 만들기위한 최고의 표준입니다. 뉴런의 바이어스 값을 고정하는 대신 뉴런 입력의 공분산을 조정합니다. 따라서 CNN에서는 컨볼 루션 레이어와 완전히 연결된 다음 레이어 (예 : ReLus) 사이에 배치 정규화를 적용합니다. 이론적으로 완전히 연결된 모든 레이어는 일괄 정규화의 이점을 얻을 수 있지만 실제로는 각 일괄 정규화에 고유 한 매개 변수가 있으므로 구현에 비용이 많이 듭니다.

왜, 대부분의 답변은 이미 입력이 활성화를 극도로 추진할 때 특히 뉴런이 포화 기울기에 영향을받는다고 설명했습니다. ReLu의 경우 왼쪽으로 밀려 0의 기울기가 나타납니다. 일반적으로 모델을 학습 할 때는 먼저 신경망에 대한 입력을 정규화합니다. 배치 정규화는 신경망 내부 의 레이어 간 입력을 정규화하는 방법입니다 .


답변