개발자
인공신경망에서 바이어스(Bias)의 역할 본문
바이어스는 학습에 중요한 역할을 한다. 바이어스를 통해 액티베이션 함수를 좌우로 움직일 수 있어, 더욱 좋은 학습을 시킬 수 있다. 바이어스가 없는 간단한 예를 보자.
하나의 입력(x)에 가중치(w0)을 곱하고 엑티베이션 함수(예. 시그노이드 함수) 를 통과해 결과 값을 만드는 네트워크다. 여러 w0 값에 따라 이 네트워크를 함수로 그리면, 아래와 같은 그림이 된다.
가중치 w0 값에 따라 네트워크의 가파른 정도가 결정된다. 그런데, 만약 x=2 일 때, 결과 값 0이 나오는 네트워크를 만드려면 어떻게 해야할까? 단순히 w0 값을 바꿔가며 가파른정도를 수정하는 것으로는 불가능할 것이다. 이 때 바이어스가 있으면 해결된다. 바이어스 값을 통해 네트워크 전체를 우측으로 옮길 수 있기 때문이다.
그럼 w0 네트워크는 sig(w0*x + w1*1.0) 가 되고 w0 값을 1로 고정할 때, w1 값에 따라 다음과 같이 그래프를 그릴 수 있다.
※ sig : 시그노이드 함수
w1 가 -5일 때, 네트워크는 우측으로 이동하고 x=2 일 때, 결과 값이 0 인 네트워크를 만들 수 있다.
참고
- http://stackoverflow.com/questions/2480650/role-of-bias-in-neural-networks
Comments