본문 바로가기
서포터즈/데이크루 1기

[데이크루 1기 활동 글]What is inductive bias?

by 장어진 2022. 6. 26.

"데이콘 서포터즈 "데이크루" 1기 활동의 일환입니다."

원본 글 링크 : 

https://dacon.io/forum/405840

 

What is inductive bias?

 

dacon.io


💬Introduction

논문 리뷰를 하고자 논문을 읽다가 정확히 무슨 개념인지 몰라서 찾아본 Inductive Bias입니다. 정확한 개념이 명시되어 있는 것 같지 않고 제 스스로 정리를 해보고 싶은 개념이라 정리해보았습니다. 다른 생각을 가지고 계시거나 잘못된 부분이 있다면 피드백주시면 감사하겠습니다.

본 포스팅은 데이콘 서포터즈 "데이크루" 1기 활동의 일환입니다.  

 

📋요약

Inductive Bias란 학습 시에는 만나보지 않았던 상황에 대하여 정확한 예측을 하기 위해 사용하는 추가적인 가정을 의미합니다.

데이터의 특성에 맞게 적절한 Inductive Bias를 가지는 모델을 사용해야 높은 성능을 기록할 수 있고 CNN의 경우 Locality(근접 픽셀끼리 종속성), Transitional Invariance(사물 위치가 바뀌어도 동일 사물 인식)등의 특성을 가지기 때문에 이미지 데이터에 적합한 모델이 되는 것입니다.

 

📚MAIN

Inductive Bias

일반적으로 모델이 갖는 문제는 두가지가 있는데 brittle, spurious한 것입니다. Brittle 하다는 것은 입력 데이터가 조금만 바뀌더라도 결과가 달라지는 것입니다. Spurious하다는 것은 겉으로만 그럴싸한, 데이터를 학습하는 것이 아닌 결과를 학습하는 것을 말합니다. (이해는 안 하고 답만 외우는 것 같은 느낌)

이런 문제를 해결하고자 Inductive Bias를 이용하게 된 것입니다. Wikipedia에서 내린 정의는 ‘학습 시에는 만나보지 않았던 상황에 대해 정확한 예측을 하기 위해 사용하는 추가적인 가정을 의미한다.‘ 입니다.

머신러닝에서는 target을 예측하기 위해 학습할 수 있는 알고리즘, 모델 구축을 목표로 하고 이를 위해 제한된 데이터가 주어지게 됩니다. 학습 데이터를 넘어 다른 데이터에 대해서도 일반화할 수 있는 능력을 가진 모델에는 Inductive Bias가 존재하고 이것이 모델을 일반화하기 위한 가정이라고 합니다. 말로는 이해가 안 가니 예시를 들어보겠습니다.

만약 입력 데이터에 대칭성이 존재하면 이를 이용하라는 것입니다. 대칭성과 관련된 가장 좋은 예시는 CNN이죠. 기본적인 CNN의 경우, 아래 그림과 같이 Translation Invariance한 특징을 가집니다. 이러한 invariance를 가지는 것은 우리가 특정 Inductive Bias에 집중하여 CNN 구조를 만들었기 때문인 것입니다.

출처 : https://ruder.io/emnlp-2018-highlights/

잘 학습된 모델이라면 위치는 각각 다르지만 같은 그림으로 인식해 결과를 출력할 것입니다.

 

Relational Inductive Biases on FCN & CNN

Inductive Bias는 크게 Relational Inductive Bias와 Non-relational Inductive Bias 두개로 나뉜다고 합니다. 이 때 Relational Inductive Bias는 말 그대로 Inductive Bias 중 관계(입력 값과 출력 값 관의 관계)에 초점을 맞춘 것을 의미합니다. 해당 글에서는 Relational Inductive Bias만을 소개합니다.

출처 : https://arxiv.org/pdf/1806.01261.pdf

Fully Connected

FC의 입력 값은 개별 Unit으로 정의되고 이 값들이 서로 모두 연결되어 있는 것으로 가정됩니다. 모든 입력 값이 모든 출력 값에 영향을 미치기 때문에 특별한 Relational Inductive Bias를 가정하지 않습니다. 이를 표에서는 Weak 약하다고 칭하고 있네요.

Convolutional

FC와 달리 CNN은 입력이 이미지처럼 격자구조로 되어있습니다. 일반적으로 입력의 크기보다 작은 컨볼루션 필터를 사용하여 일부를 대상으로 컨볼루션 연산을 수행하는데 이 때 하나의 컨볼루션 필터를 가지고 전체를 움직입니다. 이러한 점에서 CNN은 값(Entities)간의 Relation이 서로 가까운 값들 간에 존재한다고 봅니다. 따라서 어떤 특성을 가지는 값들이 모여 있는 지에 따라 중요하게 판단할 수 있는 좋은 구조가 됩니다. 또한, Parameter Sharing(필터 공유?)이라는 특성에 따라 FC보다 훨씬 적은 파라미터 수를 사용하여 메모리를 아끼고 연산량도 적어집니다. 즉, 더 적은 양을 이용해 지역적인 영역에서 spatial한 정보를 잘 뽑아냅니다.

이외의 내용은 상단 출처의 논문을 통해 확인해주시면 될 것 같습니다.

 

📃Conclusion

Inductive Bias는 모델이 데이터에 대해 가지고 있는 가정이라고 할 수 있겠네요. CNN이 3*3 필터를 통해 데이터를 처리하면 지역적인 특성을 잘 학습할 수 있을 것이고 이 특성을 가정해 다른 이미지들도 잘 예측할 수 있게 되겠죠. 하지만, Inductive Bias가 강하면 강할수록 학습을 잘 하는 것은 아닙니다. 데이터에 대해 가정을 하고 있기 때문에 때에 따라서는 이 inductive bias가 강하게 작용하면 오히려 방해물이 되는 것이죠. 예시로 CNN이 아주 방대한 데이터에 대해 vision transformer에 비해 낮은 성능을 보이는 것처럼 말이죠.  

 

 

🔎참고 내용

[1]https://arxiv.org/pdf/1806.01261.pdf

[2]https://enfow.github.io/paper-review/graph-neural-network/2021/01/11/relational_inductive_biases_deep_learning_and_graph_netowrks/

[3]https://stackoverflow.com/questions/35655267/what-is-inductive-bias-in-machine-learning

[4]https://ruder.io/emnlp-2018-highlights/

728x90