[machine-learning] 신경망에서 편견의 역할은 무엇입니까?

그래디언트 디센트와 역 전파 알고리즘을 알고 있습니다. 내가 얻지 못하는 것은 언제 바이어스를 사용하는 것이 중요하며 어떻게 사용합니까?

예를 들어 AND함수를 매핑 할 때 2 개의 입력과 1 개의 출력을 사용할 때 올바른 가중치를 제공하지 않지만 3 개의 입력 (1 중 하나는 바이어스 임)을 사용할 때 올바른 가중치를 부여합니다.



답변

편견은 거의 항상 도움이된다고 생각합니다. 실제로 바이어스 값을 사용하면 활성화 기능을 왼쪽 또는 오른쪽으로 옮길 수 있으며 이는 성공적인 학습에 중요 할 수 있습니다.

간단한 예를 보는 것이 도움이 될 수 있습니다. 바이어스가없는이 1 입력 1 출력 네트워크를 고려하십시오.

간단한 네트워크

네트워크의 출력은 입력 (x)에 가중치 (w 0 ) 를 곱하고 결과를 일종의 활성화 함수 (예 : 시그 모이 드 함수)를 통해 전달하여 계산됩니다.

여기서 w는이 네트워크의 다양한 값에 대해, 계산하는 함수 0 :

다른 w0 가중치가 주어지면 네트워크 출력

가중치 w 0을 변경하면 본질적으로 S 자형의 “스티프니스”가 변경됩니다. 유용하지만 x가 2 일 때 네트워크가 0을 출력하도록하려면 어떻게해야합니까? S 자형의 가파른 변화만으로는 실제로 작동하지 않습니다 . 전체 곡선을 오른쪽으로 이동할 수 있기를 원합니다 .

그것이 바로 당신이 할 수있는 편견입니다. 해당 네트워크에 바이어스를 추가하면 다음과 같이됩니다.

편견이있는 간단한 네트워크

… 네트워크의 출력은 sig (w 0 * x + w 1 * 1.0)가됩니다. 다음은 w 1의 다양한 값에 대한 네트워크 출력 결과입니다 .

다른 w1 가중치가 주어진 네트워크 출력

w 1 의 가중치가 -5 이면 곡선이 오른쪽으로 이동하여 x가 2 일 때 0을 출력하는 네트워크를 가질 수 있습니다.


답변

그냥 내 두 센트를 추가합니다.

바이어스가 무엇인지 이해하는 간단한 방법 : 선형 함수 의 상수 b 와 다소 유사합니다.

y = 도끼 + b

그것은 데이터에 더 잘 맞도록 라인을 위아래로 움직일 수있게합니다. b 가 없으면 선은 항상 원점 (0, 0)을 통과하므로 적합하지 않을 수 있습니다.


답변

이 스레드는 실제로 내 프로젝트를 개발하는 데 도움이되었습니다. 다음은 2 변수 회귀 문제에서 바이어스 단위가 있거나없는 단순한 2 계층 피드 포워드 신경망의 결과를 보여주는 몇 가지 추가 그림입니다. 가중치는 무작위로 초기화되며 표준 ReLU 활성화가 사용됩니다. 필자의 결론에 따르면 바이어스없이 ReLU 네트워크는 (0,0)에서 0에서 벗어날 수 없습니다.

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

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


답변

ANN의 훈련 중에 두 가지 다른 종류의 매개 변수, 가중치 및 활성화 기능의 값을 조정할 수 있습니다. 이는 실용적이지 않으며 매개 변수 중 하나만 조정해야하는 경우 더 쉽습니다. 이 문제에 대처하기 위해 바이어스 뉴런이 발명되었습니다. 바이어스 뉴런은 한 레이어에 있고 다음 레이어의 모든 뉴런에 연결되어 있지만 이전 레이어에는 없습니다. 항상 1을 방출합니다. 바이어스 뉴런이 1을 방출하므로 바이어스 뉴런에 연결된 가중치가 직접 추가됩니다. 활성화 함수의 t 값과 마찬가지로 다른 가중치의 합 (수식 2.1). 1

그것이 비현실적인 이유는 무게와 값을 동시에 조정하기 때문에 무게를 변경하면 이전 데이터 인스턴스에 유용한 값의 변화를 중화시킬 수 있기 때문에 값을 변경하지 않고 바이어스 뉴런을 추가하면 레이어의 동작을 제어 할 수 있습니다.

또한 바이어스를 사용하면 단일 신경망을 사용하여 유사한 사례를 나타낼 수 있습니다. 다음 신경망으로 표시되는 AND 부울 함수를 고려하십시오.

안
(출처 : aihorizon.com )

  • w0b에 해당합니다 .
  • w1x1에 해당합니다 .
  • w2x2에 해당합니다 .

단일 퍼셉트론을 사용하여 많은 부울 함수를 나타낼 수 있습니다.

예를 들어, 부울 값을 1 (true) 및 -1 (false)로 가정하면 AND를 구현하기 위해 2 입력 퍼셉트론을 사용하는 한 가지 방법은 가중치 w0 = -3을 설정하고 w1 = w2 = .5. 이 퍼셉트론은 임계 값을 w0 = -.3으로 변경하여 OR 함수를 나타내도록 만들 수 있습니다. 실제로 AND 및 OR은 m-of-n 함수의 특수한 경우로 볼 수 있습니다. 즉, 퍼셉트론에 대한 n 개의 입력 중 m 개 이상이 참이어야하는 함수입니다. OR 함수는 m = 1에 해당하고 AND 함수는 m = n에 해당합니다. 모든 입력 가중치를 동일한 값 (예 : 0.5)으로 설정 한 다음 그에 따라 임계 값 w0을 설정하여 퍼셉트론을 사용하여 모든 m-of-n 함수를 쉽게 표현할 수 있습니다.

퍼셉트론은 모든 기본 부울 함수 AND, OR, NAND (1 AND) 및 NOR (1 OR)을 나타낼 수 있습니다. 머신 러닝-톰 미첼)

임계 값은 바이어스이고 w0 은 바이어스 / 임계 값 뉴런과 관련된 가중치입니다.


답변

편향은 NN용어 가 아니라 고려해야 할 일반적인 대수학 용어입니다.

Y = M*X + C (직선 방정식)

그렇다면 C(Bias) = 0선은 항상 원점을 통과 (0,0)하고 하나의 매개 변수, 즉 M기울기 인 매개 변수에만 의존 하므로 게임 할 것이 적습니다.

C이 편향은 임의의 수를 취하고 그래프를 이동하는 활동이 있으므로 더 복잡한 상황을 나타낼 수 있습니다.

로지스틱 회귀 분석에서 대상의 예상 값은 링크 함수에 의해 변환되어 해당 값을 단위 간격으로 제한합니다. 이런 식으로 모델 예측은 다음과 같이 주요 결과 확률로 볼 수 있습니다 . Wikipedia의 Sigmoid 함수

이것은 뉴런을 켜고 끄는 NN 맵의 최종 활성화 레이어입니다. 또한 바이어스는 역할을 수행하며 곡선을 유연하게 이동하여 모델을 매핑하는 데 도움이됩니다.


답변

바이어스가없는 신경망의 레이어는 입력 벡터와 행렬의 곱에 지나지 않습니다. (출력 벡터는 정규화와 나중에 ANN에서 사용하기 위해 S 자형 함수를 통과 할 수 있지만 중요하지는 않습니다.)

이것은 선형 함수를 사용하므로 모든 0의 입력이 항상 모든 0의 출력에 매핑됨을 의미합니다. 이는 일부 시스템에 적합한 솔루션 일 수 있지만 일반적으로 너무 제한적입니다.

치우침을 사용하면 입력 공간에 다른 차원을 효과적으로 추가 할 수 있습니다. 입력 공간에는 항상 값 1이 사용되므로 입력 벡터가 모두 0이되는 것을 피할 수 있습니다. 훈련 된 웨이트 매트릭스는 의심 할 필요가 없기 때문에 일반성을 잃지 않으므로 이전에 가능한 모든 값으로 매핑 할 수 있습니다.

2D ANN :

AND 또는 OR (또는 XOR) 함수를 재생할 때와 같이 2 차원을 1 차원으로 매핑하는 ANN의 경우 신경망을 다음과 같이 생각할 수 있습니다.

2D 평면에서 입력 벡터의 모든 위치를 표시합니다. 따라서 부울 값의 경우 (-1, -1), (1,1), (-1,1), (1, -1)을 표시하려고합니다. ANN이 지금하는 일은 양의 출력을 음의 출력 값에서 분리하여 2D 평면에 직선을 그리는 것입니다.

치우침이 없으면이 직선은 0을 통과해야하지만 치우침이 있으면 어디서나 자유롭게 배치 할 수 있습니다. 따라서 (1, -1) (-1,1)을 모두 부정적인면에 넣을 수 없기 때문에 바이어스가 없으면 AND 함수에 문제가 있다는 것을 알 수 있습니다 . (이들은되지 못할 라인.) 문제는 OR 함수와 동일하다. 그러나 편향으로 선을 그리는 것은 쉽습니다.

이 상황에서 XOR 기능은 편향으로도 해결할 수 없습니다.


답변

ANN을 사용할 때 배우려는 시스템의 내부에 대해서는 거의 알지 못합니다. 편견 없이는 배울 수없는 것들도 있습니다. 예를 들어, (0, 1), (1, 1), (2, 1) 데이터를 살펴보십시오. 기본적으로 모든 x를 1에 매핑하는 함수입니다.

단일 계층 네트워크 (또는 선형 매핑)가있는 경우 솔루션을 찾을 수 없습니다. 그러나 편견이 있다면 사소한 것입니다!

이상적인 설정에서 바이어스는 모든 점을 대상 점의 평균에 매핑하고 숨겨진 뉴런이 해당 점과의 차이를 모델링하게 할 수 있습니다.