티스토리 뷰

IT/AI관련

기본 신경망-Bias의 역할

예영교육 연구소 2024. 4. 4. 22:32

케라스에서 다음과 같이 우리는 간단한 신경망을 구축할 수 있다.

 

from keras.models import Sequential

from keras.layers import Dense

import numpy as np

 

# 모델 구성

model = Sequential()

model.add(Dense(8, activation='relu', input_dim=3)) # 입력 3차원, 은닉층 8유닛, ReLU 활성화

model.add(Dense(3, activation='softmax')) # 출력층 3유닛, 소프트맥스 활성화 (이진 분류)

 

모델은 다음과 같은 신경망을 구성한다.

입력층(3개 노드), 출력층(3개 노드), 은닉층(8개노드), bias 없음.

 

여기에서 기본적으로 프로그램에서는 bias 노드가 포함된다. bias는 일반적인 신경망에 포함이 된다. 프로그램으로 bias노드를 포함시키지 않으려면 다음과 같이 하면 된다.( use_bias=False )

 

model = Sequential()

model.add(Dense(8, activation='relu', input_dim=3 , use_bias=False )) # bias 제외

model.add(Dense(3, activation='softmax' , use_bias= False  )) # 출력층 3유닛, 시그모이드 활성화 (이진 분류)

 

다음과 같이 신경망이 만들어진다.

입력층(3개 노드), 출력층(3개 노드), 은닉층(8개노드), bias 없음.

 

 

bias에 유무에 대한 장단점과 관련 논문을 좀 더 다양한 내용을 찾아서 정리해 봅니다.

===============================================

Bias의 역할
 - 01. Keras에서는 model.add(Dense())에서 기본적으로 옵션을 설정하지 않으면 bias가 포함된 신경망이 된다.
 - 02. 제시된 많은 연구와 논문에 따르면 일반적으로 Bias가 포함된 신경망이 모델의 성능이 개선된다고 한다. 하지만, 모든 신경망이 그렇다는 것은 아니다.
 - 03. bias의 장단점
    bias의 장점 : 
     A. 복잡한 패턴도 학습이 가능해져, 학습 능력의 향상과 더 많은 것들을 표현할 수 있다.(일반적으로 모델 성능 향상)
        - 일반적인 신경망 모델에서는 bias가 있는 것이 보편적이다.
     B. Bias를 통해 모델의 표현력이 향상되어 복잡한 비선형함수를 학습할 수 있다.
     C. 출력층의 Bias로 경계를 쉽게 조정할 수 있어, 분류 성능이 향상될 수 있다.

    bias의 단점 : 
     A. 신경망에 Bias 항이 포함되어, 모델의 파라미터 수가 늘어난다. 모델의 복잡도가 커진다.
         - bias가 없는 경우가 유리할 때는 없애는 것이 좋다.
         - bias가 없는 경우, 모델의 파라미터 수를 줄게 되어 계산 효율성과 일반화 성능을 높일 수 있다.
     B. 네트워크 복잡성의 증가로 학습 속도가 느려질 수 있다.
     C. 때때로 모델의 성능에 부정적인 영향을 주는 경우도 있다.
     D. 출력층이 선형 함수 만을 다루는 회귀 문제에서는 bias가 불 필요할 수 있다.

=================================================
참고 자료(논문)
Revealing Model Biases: Assessing Deep Neural Networks via Recovered Sample Analysis (2023)
 - 심층 신경망의 모델 bias를 평가하는 새로운 방법을 제안하고, 이를 통해 모델의 잠재적 bias를 밝히고 있음.

Scalar Invariant Networks with Zero Bias (2022)
 - bias 없이 설계된 스칼라 불변 네트워크에 대해 논하며, 이러한 접근 방식이 모델 성능에 미치는 영향을 분석.
 - 스칼라 불변 네트워크는 bias 항을 사용하지 않고 설계되어 일반적 신경망 모델과 동일하거나 더 나은 성능을 보임.

"Do We Need Bias in Neural Network Models?" (Assaad et al., 2022)
 - 다양한 신경망 모델에서 bias 유무에 따른 성능 변화를 실험적으로 분석한 논문.
 - 대부분의 모델에서 bias 항의 존재가 모델 성능을 향상시켰음을 보였습니다.(특정 데이터셋과 모델에)

"What is being transferred in transfer learning?" (Bao et al., 2021)
 - 전이학습에서 bias 항의 역할.
 - 연구에서는 bias가 중요한 역할을 했다고 함.

"Understanding the role of bias in deep neural networks" (Deleu et al., 2020)
 - 딥러닝 모델의 bias 항 역할에 대해 이론적, 실험적으로 분석.

 "Do we need bias in convolutional neural networks?" (Avrutskiy et al., 2022)
 - CNN에서 bias 포함 여부에 따른 성능 변화를 비교.
 - 이 연구는 bias를 포함하는 것이 유리하다고 제시.

Bias Also Matters: Bias Attribution for Deep Neural Network Explanation (2019)
 - 심층 신경망의 설명에 있어 bias의 중요성을 다루며, 모델의 해석과 이해를 돕는 중요한 요소로 밝힘.

A Bias Neural Network Based on Knowledge Distillation (2018)
 - 지식 증류를 기반으로 한 bias 신경망을 탐구하며, 이를 통해 모델의 성능 향상을 실현할 수 있음을 보여줌.

Role of biases in neural network models (1997)
 - 신경망 모델에서 bias의 기본적인 역할에 대해 강조하며, 이는 모델의 정확도와 유연성 향상에 기여.

An empirical investigation of bias and variance in time series forecasting: modeling considerations and  error evaluation (2003)
 - 시계열 예측에서 bias와 분산의 영향을 실증적으로 조사하여 bias가 예측 정확도에 중요한 영향을 미친다는 것을 제시.

The role of biases in on-line learning of two-layer networks (1998)
 - 온라인 학습, 특히 두 층 네트워크에서 bias의 중요성을 조사하며, 이는 학습 과정과 결과를 향상.

 

--- 정리
일반적인 신경망은 bias가 포함되고, 일반적인 성능의 개선을 가져오고 있다. 다만, 모든 신경망과 모든 데이터에서 그런 것은 아니다. 때때로 경우에 따라 bias가 포함되지 않아도 동일한 성능을 가질 수 있다.