머신러닝에서 Bias는 무슨 의미일까?
Inductive Bias라는 용어에서, Bias라는 용어는 무엇을 의미할까? 딥러닝을 공부하다 보면, Bias과 Variance를 한 번쯤은 들어봤을 것이다. Bias는 타겟과 예측값이 얼마나 멀리 떨어져 있는가, 그리고 Variance는 예측값들이 얼마나 퍼져있는가를 의미한다. 따라서 Bias가 높은 경우 데이터로부터 타겟과의 연관성을 잘 찾아내지 못하는 과소적합(Underfitting) 문제가 발생하고, Variance가 높은 경우에는 데이터의 사소한 노이즈나 랜덤한 부분까지 민감하게 고려하는 과적합(Overfitting) 문제가 발생한다.
여기서, Bias를 학습 알고리즘의 잘못된 가정에 의하여 발생하는 오차라고도 하는데, 잘못된 가정에 의하여 데이터에서 중요한 부분을 놓치고 있다는 의미로 볼 수 있다. 이전 글에서 언급했듯, 우리가 사용하는 ML/DL은 아직 특정 상황에 맞춰 개발된 경우가 대부분이다. 그렇다면 그 특정 상황에 잘 맞는 일반적인 가정이 있다면 성능을 높일 수 있지 않을까? 나는 이러한 목적을 위한 개념이 바로 Inductive Bias라고 생각한다.
Inductive Bias란?
일반적으로 모델이 갖는 일반화의 오류(Generalization Problem)는 불안정하다는 것(Brittle)과 겉으로만 그럴싸 해 보이는 것(Spurious)이 있다. 모델이 주어진 데이터에 대해서 잘 일반화한 것인지, 혹은 주어진 데이터에만 잘 맞게 된 것인지 모르기 때문에 발생하는 문제이다. 이러한 문제를 해결하기 위한 것이 바로 Inductive Bias이다. Inductive Bias란, 주어지지 않은 입력의 출력을 예측하는 것이다. 즉, 일반화의 성능을 높이기 위해서 만약의 상황에 대한 추가적인 가정(Additional Assumptions)이라고 보면 된다.
Models are Brittle : 아무리 같은 의미의 데이터라도 조금만 바뀌면 모델이 망가진다.
Models are Spurious : 데이터의 진정한 의미를 파악하지 못하고 결과(Artifacts)와 편향(Bias)을 암기한다.
모델이 학습하는 과정에서 학습 데이터이외의 데이터들까지도 정확한 출력에 가까워지도록 추측하기 위해서는 추가적인 가정이 필수적이다. 그래서 성공적으로 학습하여 일반화가 잘 된 모델은 어떠한 Inductive Bias의 유형을 갖게 되는데, 이것들이 바로 일반화하기 위해 만들어진 가정이라고 볼 수 있다. 다시 말해서, Inductive Bias는 보지 못한 데이터에 대해서도 귀납적 추론이 가능하도록 하는 알고리즘이 가지고 있는 가정의 집합이라고 할 수 있다.
어떤 가정들이 있을까?
그렇다면 이러한 가정에는 어떤 것들이 있을까? Inductive Bias는 크게 Relational과 Non-relational으로 나뉜다. 여기서 Relational이란, 입력 요소(element)와 출력 요소(element)의 관계에 초점을 맞춘 것을 의미한다. 우리가 집중해야 할 것은 바로 Relational Inductive Bias이다.
Relational Inductive Biases on CNN, RNN, GNN
Classification, Object Detection, Semantic Segmentation 등 이미지를 다루는 모델들은 모두 CNN을 사용한다. 왜 CNN이 이미지 관련 문제에서 강점을 보이는 것일까? 바로 CNN이 이미지를 다루기에 적합한 Inductive Bias를 갖고 있기 때문이다. CNN에는 어떤 Inductive Bias가 숨어있는 것일까? FCN과 CNN을 비교해보며 한번 살펴보자.
FCN(Fully Connected Neural Network)은 가장 일반적인 블록의 형태로, 가중치와 편향으로 각 층의 요소들이 서로 모두 연결되어 있다. 즉, 모든 입력의 요소가 어떤 출력 요소던지 영향을 미칠 수 있기 때문에, Inductive Bias가 매우 약하다.
반면에, CNN(Convolutional Neural Network)은 Convolution Filter가 입력을 Window Sliding 하게 된다. CNN의 Entities(Grid Elements, Pixels)는 FCN의 Entities(Elements)와 마찬가지로 개별단위이지만, Entities 간의 관계가 약하다는 차이점이 있다. 이러한 특징으로 CNN은 FCN과 다르게 Locality & Translation Invariance의 Relational Inductive Biases를 갖는다.
여기서, Localitiy는 입력에서 각 Entities간의 관계가 서로 가까운 요소들에 존재한다는 것을 의미한다. 그리고 Translation Invariance란 입력과 동일하게 계속해서 관계가 유지된다는 것을 말한다. 이는 무엇을 의미할까? 어떤 특징을 가지는 요소들이 서로 모여있는지가 중요한 문제에서 좋은 성능을 보여준다는 것을 의미한다. 이러한 이유에서 CNN이 이미지 관련 문제에서 강점을 보이는 것이다.
CNN과 마찬가지로 RNN(Reccurent Neural Network)에서도 유사한 가정이 사용된다. CNN이 공간의 개념을 사용한다면, RNN은 시간의 개념을 사용하는 것이다. RNN에서는 CNN의 Locality & Translation Invariance와 유사한 개념으로 Sequential & Temporal Invariance의 Relational Inductive Biases를 갖는다. Sequential이란 입력이 시계열의 특징을 갖는다고 가정하며, Temporal Invariance는 동일한 순서로 입력이 들어오면 출력도 동일하다는 것을 말한다.
마찬가지로 GNN(Graph Neural Network)은 이러한 개념을 그래프로 가져간 것으로, Permutational Invarianced의 Relational Inductive Biases를 갖는다. 이러한 가정들의 장점은 가정이 맞는 경우 좋은 성능을 보여준다는 것이다. 하지만, 가정이 맞지 않는 경우에는 매우 약한 모습을 보여준다.
CNN vs Transformer
Transformer는 NLP분야 뿐만아니라 최근에는 CV에서도 강력한 성능을 보여주며, 주목을 받고 있다. 그렇다면, 항상 Transformer를 사용하는 것이 좋을까? CNN은 이미지가 지역적으로 얻을 정보가 많다는 것을 가정하고 만들어진 모델이다. 반면에, Transformer는 Positional Embedding과 Self-Attention을 사용해 모든 정보를 활용한다. 즉, Transformer는 CNN에 비해 Inductive Biases가 부족하다고 볼 수 있다. 결과적으로 Global한 정보가 필요한 경우에는 Transformer가 좋지만, Inductive Biases가 잘 맞는 이미지가 지역적으로 얻을 정보가 많은 경우에는 CNN이 적합하다는 것을 알 수 있다.
Reference
의견과 질문은 언제나 감사합니다.
'Study > AI' 카테고리의 다른 글
Quantization은 무엇일까? (1) | 2023.10.31 |
---|---|
딥러닝의 핵심, 역전파 (0) | 2022.02.13 |
모델의 평가지표란? (0) | 2022.02.06 |
데이터가 충분하다고 말하려면 얼마나 있어야 할까? (0) | 2022.01.24 |
딥러닝이란 무엇일까? (0) | 2022.01.15 |