신경망에서 편견의 역할은 무엇입니까?


806

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

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


17
이 질문에 체크 아웃 : stackoverflow.com/questions/1697243/help-with-perceptron을 실제 문제의 예를 들어 영업 이익은 바이어스 용어를 사용하지 않은 경우
암로

6
그리고 여기의 파이썬에서 좋은 예이다 바이어스가 중요한 이유 : stackoverflow.com/questions/38248657/...
미네랄

3
다음은 바이어스 업데이트를 다루는 백프로 프
Andy

답변:


1359

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

간단한 예를 보는 것이 도움이 될 수 있습니다. 바이어스가없는이 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을 출력하는 네트워크를 가질 수 있습니다.


6
@ user1621769 : 가장 간단한 방법은 네트워크의 모든 비 입력 노드에 연결하는 단일 바이어스 노드가있는 네트워크입니다.
Nate Kohl

65
@ user1621769 : 바이어스의 주요 기능은 모든 노드에 훈련 가능한 상수 값을 제공하는 것입니다 (노드가받는 일반 입력 외에도). N 개의 노드에 연결된 단일 바이어스 노드를 사용하거나 각각 하나의 연결을 가진 N 개의 바이어스 노드를 사용하여이를 달성 할 수 있습니다. 결과는 같아야합니다.
Nate Kohl

4
@ user1621769 : 가중치를 고려하지 않았을 수 있습니까? 각 연결에는 학습 가능한 가중치가 있으며 바이어스 노드에는 고정 된 값이 있습니다.
Dimpl

4
@ user132458, 훈련 알고리즘이 바이어스 시프트가 필요하지 않다고 판단하면 바이어스 가중치가 0에 가까워 질 것입니다. 따라서 바이어스 신호가 제거됩니다.
jorgenkg

8
@Gabriel : 숨겨진 뉴런 당 하나의 편향이 있어야합니다.

343

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

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

y = 도끼 + b

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


5
좋은 신학이지만 바이어스를 1로 설정하면 왜 모든 라인이 이제 (0,0) 대신 (0,1)을 통과하기 때문에 적합에 차이가 있습니까? 모든 라인이 이제 y = 1로 바이어스됩니다 y = 0 대신 왜 이것이 도움이 되나요?
blue-sky

36
@ blue-sky 바이어스에 가중치를 곱하면 임의의 양으로 편이 할 수 있습니다.
Carcigenicate 2016 년

3
b 를 "계수"라고 부르는 것이 맞 습니까? "계수"는 변수를 곱하는 데 사용되는 숫자가 아닌가?
Ben

8
b는 "계수"가 아니라 차단입니다.
Espanta

22
b는 $ x ^ 0 $의 계수입니다. a는 $ x ^ 1 $의 계수입니다

64

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

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

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


1
축 레이블로 그려진 함수를 추가 할 수 있습니까?
Komal-SkyNET

46

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 은 바이어스 / 임계 값 뉴런과 관련된 가중치입니다.


8
일반적인 경험 법칙으로 생각하십시오 : 편향을 추가하십시오! 신경망 은 어느 정도 "예측 불가능" 하므로 편향 뉴런을 추가하면 편향을 사용하지 않으면 솔루션을 더 빨리 찾을 수 있습니다. 물론 이것은 수학적으로 입증되지는 않았지만 문학과 일반적인 용도에서 내가 관찰 한 것입니다.
Kiril

25

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

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

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

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

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

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


1
바이어스가 사용되지 않을 때 라인이 항상 원점을 통과 할 때 신경망 학습 / 학습에서 어떤 문제가 발생합니까?
Daniyal Javaid 2016

@DaniyalJavaid 문제가 아니라 가능성이 있습니다.
Pradi KL

23

바이어스가없는 신경망의 레이어는 입력 벡터와 행렬의 곱에 지나지 않습니다. (출력 벡터는 정규화와 나중에 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 기능은 편향으로도 해결할 수 없습니다.


4
S 자형 전송 함수를 사용하는 경우 비선형 성이 발생합니다. S 자형의 비선형 성이 몇 가지 문제의 해결에 중요하기 때문에 이것이 선형 함수라고 말하는 것은 잘못되고 어떻게 든 위험합니다. 또한 sigmoid (0) = 0.5이고 sigmoid (x) = 0 인 x는 없습니다.
bayer

2
예, 그러나 선형 함수의 모양에 관계없이 바이어스없이 0을 입력하면 0.5입니다. 그리고 그게 요점입니다. 당신은 일반적으로 당신의 S 자형 기능을 훈련하지 않습니다, 당신은 그것과 함께 살고 있습니다. 선형성 문제는 시그 모이 드 함수 이전에 발생합니다.
Debilski

나는 당신의 요점을 얻는다 : 레이어는 시작한 것과 다른 출력을 0으로 배울 수 없다. 정확하고 중요합니다. 그러나 "선형 함수 인수"는 제 생각에는 적용되지 않습니다. 편향이 있어도 기능은 여전히 ​​선형입니다. 여기서 선형성 속성이 잘못되었습니다. (예, 나는 nitpicking 할 수 있습니다.)
bayer

나는 편견과 함께 그것은 아프다고 말하고 싶습니다 . ( en.wikipedia.org/wiki/Affine_transformation#Representation )
Debilski

네 맞습니다. 그 차이를 지적 해 주셔서 감사합니다. (왜 우리는 그것이 선형 회귀라고 부르는가, btw인데, 그것이 적절하지만?)
bayer

20

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

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

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


18

뉴런 무게의 수정만으로는 평형 / 제로 교차점이 아니라 전달 함수 의 모양 / 곡률 을 조작하는 역할 만합니다 .

바이어스 뉴런을 도입 하면 모양 / 곡률을 변경하지 않고 입력 축을 따라 전달 함수 곡선을 수평 (왼쪽 / 오른쪽)으로 이동할 수 있습니다. 이를 통해 네트워크는 기본값과 다른 임의의 출력을 생성 할 수 있으므로 특정 요구에 맞게 입력-출력 매핑을 사용자 정의 / 전환 할 수 있습니다.

그래픽 설명은 여기를 참조하십시오 : http://www.heatonresearch.com/wiki/Bias


16

이 모든 것을 아주 많이 잃어 버리고 나머지는 알지 못하는 것을 추가하기 만하면됩니다.

이미지로 작업하는 경우 실제로는 바이어스를 전혀 사용하지 않는 것이 좋습니다. 이론적으로는 네트워크가 그림이 어둡거나 밝고 생생한 지 여부와 같이 데이터 크기와 더 독립적입니다. 그리고 인터넷은 데이터 내부의 상대성을 연구함으로써 그 일을하는 법을 배우게 될 것입니다. 많은 현대 신경망이 이것을 활용합니다.

편향이있는 다른 데이터의 경우 중요 할 수 있습니다. 처리하는 데이터 유형에 따라 다릅니다. 정보가 크기가 변하지 않는 경우 --- [1,0,0.1]을 입력하는 것이 [100,0,10]을 입력하는 것과 같은 결과를 가져 오면 편향없이 더 나은 결과를 얻을 수 있습니다.


정규화를 사용하는 것이 좋습니다. "편의 부족"을 사용하여 규모의 불변성을 생성하는 최신 네트워크의 예는 무엇입니까?
AwokeKnowing

@AwokeKnowing, 나는 일반적인 ResNet이 그것을 "초기화"의 일부이기 때문에 그것을 사용한다고 생각하지만, 그들이 엄격 하게이 목적을 위해 또는 모델 크기 / 효율을 고려 하여이 작업을했는지 확실하지는 않습니다. 이 개념이 어디에나 게시되어 있는지 확실하지 않습니다. 그러나 나는 이론적 수준에서 완전히 이해할 수 있다고 생각합니다. 스케일링되지 않는 바이어스가없는 경우 값을 스케일링하면 모든 출력이 그에 따라 스케일됩니다. 현대 건축의 대부분이이 개념을 인식하거나 인식하지 못한다면 적어도 대부분의 구조에 편향이 없습니다.
Íhor Mé

16

석사 논문 (예 : 59 페이지) 에서 두 번의 실험에서 , 바이어스가 첫 번째 레이어에 중요 할 수 있다는 것을 발견했지만 특히 완전히 연결된 레이어에서 큰 역할을하지 않는 것 같습니다.

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


이것은 선형 회귀를 사용하여 "손으로"모델링 시스템의 프로세스와 완전히 유사하게 들립니다. 가장 간단한 모델은 Y_bar = mean (Y)입니다. 그런 다음 다양한 X 용어를 포함하여 정보를 많이 얻지 않으면 중지하여 복잡성을 추가합니다.
IRTFM

15

바이어스는 웨이트를 회전시킬 각도를 결정합니다.

2 차원 차트에서 가중치와 바이어스는 결과의 결정 경계를 찾는 데 도움이됩니다. AND 함수를 빌드해야한다고 가정하면 input (p) -output (t) 쌍은

{p = [0,0], t = 0}, {p = [1,0], t = 0}, {p = [0,1], t = 0}, {p = [1,1] , t = 1}

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

이제 결정 경계를 찾아야합니다. 아이디어 경계는 다음과 같아야합니다.

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

보다? W는 우리의 경계에 수직입니다. 따라서 W는 경계 방향을 결정했다고합니다.

그러나 처음에는 올바른 W를 찾기가 어렵습니다. 대부분 원래 W 값을 임의로 선택합니다. 따라서 첫 번째 경계는 다음과 같습니다. 여기에 이미지 설명을 입력하십시오

이제 경계는 y 축에 대한 pareller입니다.

경계를 어떻게 바꾸고 싶습니까?

W를 바꿔서

따라서 학습 규칙 함수를 사용합니다. W '= W + P : 여기에 이미지 설명을 입력하십시오

W '= W + P는 W'= W + bP와 같지만 b는 1입니다.

따라서 b (bias)의 값을 변경하여 W '와 W 사이의 각도를 결정할 수 있습니다. 이것이 "ANN의 학습 규칙"입니다.

Martin T. Hagan / Howard B. Demuth / Mark H. Beale, 신경망 설계 , 4 장 "Perceptron Learning Rule"을 읽을 수도 있습니다 .


1
도움이되는 설명 / 일러스트
javadba

10

특히 Nate의 답변 , zfy의 답변 및 Pradi의 답변 이 훌륭합니다.

간단한 용어로, 편향 수 있도록 더 많은 변화 무게 배울 수 / 저장 ( 사이드 노트 : 때때로 일부 임계 값을 주어). 어쨌든 더 많은 변형 은 바이어스 가 모델의 학습 / 저장된 가중치에 입력 공간을 더 풍부하게 표현 한다는 것을 의미합니다 . (더 나은 가중치가 신경망의 추측 력을 향상시킬 수있는 곳)

예를 들어, 학습 모델에서 가설 / 추측은 바람직하게는 일부 입력 작업, 아마도 일부 분류 작업에서 일부 y = 0 또는 y = 1로 제한됩니다. 일부 x = (0,1)의 경우 y = 1입니다. (가설 / 결과의 조건은 위에서 언급 한 임계 값입니다. 예제에서는 입력 X의 일부 값 X 입력의 Nate의 단일 값 x 입력 대신 X를 입력합니다.

바이어스 를 무시 하면 많은 입력 값이 동일한 가중치로 표시 될 수 있습니다 (예 : 학습 된 가중치는 대부분 원점에 가깝게 발생합니다 (0,0)). 대신 많은 많은 더 좋은 무게의 더 나은 바이어스 배울 수있다. (제대로 배운 무게가 가난한 추측 또는 신경망의 추측 전력의 감소로 이어질 경우)

따라서 모형이 원점에 가까울뿐만 아니라 임계 값 / 결정 경계 내부의 가능한 많은 위치에서 학습하는 것이 가장 좋습니다. 편향으로 우리는 원점에 가까운 자유도를 가능하게 할 수 있지만 원점의 바로 가까운 지역에만 국한되지는 않습니다.


9

@zfy 설명에서 확장 중 하나의 입력, 하나의 뉴런, 하나의 출력에 대한 방정식은 다음과 같아야합니다.

y = a * x + b * 1    and out = f(y)

여기서 x는 입력 노드의 값이고 1은 바이어스 노드의 값입니다. y는 직접 출력하거나 함수, 종종 S 자형 함수로 전달 될 수 있습니다. 또한 바이어스는 일정 할 수 있지만 모든 것을 단순하게 만들기 위해 항상 1을 선택합니다 (아마도 @zfy가 보여주지 않고 설명하지 않은 것이 일반적 일 것입니다).

네트워크가 데이터에 맞게 계수 a와 b를 배우려고합니다. 따라서 요소를 추가하면 b * 1더 많은 데이터에 더 잘 맞는 이유를 알 수 있습니다. 이제 경사와 절편을 모두 변경할 수 있습니다.

입력 값이 여러 개인 경우 방정식은 다음과 같습니다.

y = a0 * x0 + a1 * x1 + ... + aN * 1

방정식은 여전히 ​​하나의 뉴런, 하나의 출력 네트워크를 나타냅니다. 더 많은 뉴런이있는 경우 계수 행렬에 하나의 차원을 추가하고 모든 노드에 입력을 다중화하고 각 노드 기여를 요약합니다.

벡터화 된 형식으로 다음과 같이 쓸 수 있습니다.

A = [a0, a1, .., aN] , X = [x0, x1, ..., 1]
Y = A . XT

즉, 하나의 배열에 계수를 넣고 다른 배열에 (입력 + 바이어스) 두 개의 벡터의 내적으로 원하는 솔루션을 얻습니다 (모양이 정확하려면 X를 조옮김해야합니다 .XT에 'X transposed'을 썼습니다)

결과적으로 실제로 입력과 독립적 인 출력 부분을 나타내는 하나 이상의 입력 인 바이어스를 볼 수도 있습니다.


Andrew Ng의 수업에서 편견이 훈련 과정의 일부에서 제외되었다는 것을 기억합니다. "단지 다른 입력"이라는 결론을 고려하여 설명을 업데이트 할 수 있습니까?
AwokeKnowing

@AwokeKnowing 나는 Andrew Ng의 수업에서 그것을 기억하지 못하지만 몇 년 전이었습니다. 또한 배우려는 내용에 따라 바이어스를 켜거나 끌 수 있습니다. 이미지 처리에서 크기 조정을 위해 사용하지 않는다는 것을 읽었습니다. 당신이 그것을 사용하면 나에게 훈련에도 사용합니다. 효과는 입력의 전부 또는 일부가 null이거나 거의 null 일 때 계수를 안정화시키는 것입니다. 왜 훈련 중에 바이어스를 사용하지 않고 NN을 사용하여 새로운 입력에 대한 출력을 예측할 때 바이어스를 사용합니까? 그것이 어떻게 유용 할 수 있습니까?
RobMcZag

아니요, 순방향 패스에서 사용하는 것이 더 좋지만 백프로 프의 그라디언트 등을 계산할 때는 사용하지 마십시오.
AwokeKinging

@AwokeKnowing 나는 그것이 약간의 메모리와 시간을 절약하는 방법이라고 생각합니다. 바이어스 단위에 대한 계수를 배우지 않아도된다고 결정할 수 있습니다. 바이어스가 해당 레이어에 일부 입력을 제공하고 첫 번째 레이어에서 두 번째 레이어까지의 계수로 출력을 학습 할 수 있으므로 숨겨진 레이어가 하나 이상 있으면 괜찮을 수 있습니다. 수렴 속도가 변경되는지 확실하지 않습니다. 제 1 레이어 예제에서는 바이어스 계수가 출력에 적용될 때 바이어스 계수도 학습해야합니다.
RobMcZag

많은 간단한 문제에서, 목표 데이터는 의미가 없어지고 스케일이 조정되었으므로 바이어스가 필요하지 않으며 넓은 범위의 변수에 과도한 이상치 영향이 줄어 듭니다.
IRTFM

9

언급 된 답변 이외의 다른 점을 추가하고 싶습니다.

바이어스는 앵커 역할을합니다. 우리가 그 아래로 가지 않는 기준을 가질 수있는 방법입니다. 그래프의 관점에서 y = mx + b와 같이 생각하면이 함수의 y 절편과 같습니다.

출력 = 가중치 값을 입력하고 바이어스 값을 추가 한 다음 활성화 기능을 적용합니다.


8

간단한 방법으로 생각하면, y = w1 * x 가 있고 여기서 y 는 출력이고 w1 은 가중치입니다 x = 다음 y = w1 * x 는 0같은 조건을 상상 하십시오. 무게를 업데이트하려면 에 의해 많은 변화를 어떻게 계산에 DELW = 대상-Y 대상이 경우, 대상 출력이다 'DELW이' 이후 변경되지 않습니다 Y는 0.So으로 계산하면 몇 가지 여분의 가치를 추가 할 수 있다면 가정이 도움이 될 것입니다 Y를 = (W1) * x + w0 * 1 , bias = 1 및 무게를 조정하여 올바른 바이어스를 얻을 수 있습니다. 아래 예를 고려하십시오.

선 측면에서 기울기-절편은 특정 형태의 선형 방정식입니다.

y = mx + b

이미지를 확인

영상

여기 b는 (0,2)

당신이 그것을 (0,3)으로 늘리고 싶다면 바이어스 값이 될 b의 값을 변경하여 어떻게 할 것입니까?


7

내가 연구 한 모든 ML 서적에 대해, W는 항상 두 뉴런 사이의 연결 지수로 정의되는데, 이는 두 뉴런 사이의 연결성이 높을수록 신호가 발사 뉴런에서 대상 뉴런으로 더 강하게 전달되거나 Y = w * X는 뉴런의 생물학적 특성을 유지하기 위해 1> = W> = -1을 유지해야하지만 실제 회귀에서는 W가 | W | > = 1 뉴런이 작동하는 방식과 상충되므로 결과적으로 W = cos (theta)를 제안하는 반면 1> = | 코스 (쎄타) | Y = a * X = W * X + b이고 a = b + W = b + cos (theta)이고 b는 정수입니다.


7

신경망에서 :

  1. 각 뉴런은 편견이 있습니다
  2. 바이어스를 임계 값으로 볼 수 있습니다 (일반적으로 반대되는 임계 값)
  3. 입력 레이어 + 바이어스의 가중치 합계는 뉴런의 활성화를 결정합니다
  4. 바이어스는 모델의 유연성을 높입니다.

편향이 없으면 입력 레이어의 가중치 합계 만 고려하여 뉴런을 활성화하지 못할 수 있습니다. 뉴런이 활성화되지 않은 경우이 뉴런의 정보는 나머지 신경망을 통과하지 않습니다.

편견의 가치는 학습 가능합니다.

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

효과적으로 바이어스 = — 임계 값입니다. 바이어스가 뉴런이 1을 출력하는 것이 얼마나 쉬운 지 생각할 수 있습니다. 정말 큰 바이어스를 사용하면 뉴런이 1을 출력하는 것이 매우 쉽지만 바이어스가 매우 음이면 어려워집니다.

요약 : 바이어스는 활성화 기능이 트리거되는 값을 제어하는 ​​데 도움이됩니다.

자세한 내용 은이 비디오를 따르십시오

더 유용한 링크는 거의 없습니다 :

괴짜

데이터 과학


1
좋은 해석. 그러나 나는 편견이 어떻게 학습 가능한지 (또는 훈련 가능한가) 명확하지 않습니다. 손실 = ReLU (omega * x + a) 인 간단한 경우, 중량 오메가는 체인 규칙을 통해 학습 될 수 있지만 a그래디언트 a가 항상 일정 할 때 바이어스는 어떻게 학습 될 수 있습니까?
Libin Wen

4

바이어스라는 용어는 y 절편과 마찬가지로 최종 출력 매트릭스를 조정하는 데 사용됩니다. 예를 들어, 고전 방정식 인 y = mx + c에서 c = 0이면 선은 항상 0을 통과합니다. 바이어스 항을 추가하면 신경망 모델에 더 많은 유연성과 일반화가 제공됩니다.


0

일반적으로 머신 러닝에서 우리는이 기본 공식 바이어스-차이 상충 관계 를 가지고 있습니다. 작은 편견이 많은 도움이 될 수 있습니다. 바이어스가 제곱 인 Bias-Variance Tradeoff 위의 공식을 고려하면 작은 바이어스를 도입하면 분산이 크게 줄어들 수 있습니다. 따라서 큰 차이와 과적 합 위험이있을 때 편견을 도입하십시오.


3
바이어스 단위바이어스-분산 트레이드 오프 는 별도의 개념입니다. 문제는 전자에 관한 것입니다.
SigmaX

0

편향은 더 나은 방정식을 얻는 데 도움이됩니다.

함수와 같은 입력과 출력을 상상 y = ax + b이 같은 방정식을 유지하는 경우와 각 지점과 라인 사이의 전역 오류를 최소화하기 위해 입력 (x)와 출력 (Y) 사이의 올바른 줄을 추가 할 필요가 y = ax, 당신은 할 것 a전역 오차를 최소화하는 것이 가장 좋더라도 원하는 값과는 거리가 멀다

편향으로 인해 방정식이 최상의 값에 적응하기에보다 유연 해집니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.