본문 바로가기

딥러닝

Overfitting을 해결하는 방법 3가지 머신러닝은 학습 데이터로부터 배우고 테스트 데이터에 대해서 예측하는 것을 목표로 합니다. Overfitting은 학습 데이터의 성능은 높지만, 테스트 데이터에 대해서 성능이 나오지 않는 경우를 말합니다. Overfitting을 해결하는 방법은 대표적으로 3가지가 있습니다. 데이터의 수를 늘린다. 모델의 Complexity를 줄인다. Regularization을 사용한다. 편의상 모델의 파라미터에 대한 복잡도를 M, 데이터에 대한 복잡도를 D라고 하겠습니다. Overfitting은 M>D 인 경우에, 학습이 경과됨에 따라서 학습데이터를 모두 학습한 상태를 말합니다. (모델의 복잡도가 충분하므로 데이터를 모두 학습할 수 있습니다.) 문제는 완료된 학습이 데이터에 대한 패턴을 배우는 것이 아니라 데이터를 기억.. 더보기
Machine Learning에서 Overfitting과 Underfitting은 뭘까..? 머신러닝이 하는 일은 크게 두 가지로 구분될 수 있습니다. 학습: 데이터로부터 모델을 학습시킨다. 추론: 학습된 모델로 새로운 데이터에 대하여 예측한다. 모델에는 학습과 추론이라는 두 가지 행동이 있습니다. 학습은 Train Data로부터 데이터의 패턴을 배우는 것으로 학습을 진행하면서 데이터에 대한 Loss를 줄이게 됩니다. 일반적으로 학습이 제대로 이루어 진다면 다음과 같은 Loss Graph가 그려집니다. 그런데 학습을 하다보면 Loss가 0에 가까이 떨어지지만, 0까지 떨어지지 않는 경우도 볼 수 있습니다. 이는 모델의 학습방법 및 구조와 관련되어 있습니다. -> Loss 가 0 근처에서 더이상 떨어지지 않는 것은 모델의 사이즈 보다 데이터의 정보가 크기 때문입니다. 모든 데이터를 커버할 수 없는.. 더보기
[Essay] Deep learning으로 조합 문제를 풀 수 있을까? - Neural Combinatorial Optimization 소개글 축구 리그 시즌에 감독은 로테이션을 돌려서 선수들을 경기에 내보내야 합니다. 많은 후보 선수들 중에서 어떤 선수를 내보낼지 결정하는 것은 그 선수가 가진 능력뿐만 아니라 상대팀에 대한 분석, 경기 일정 등 다양한 조건들이 추가됩니다. 예를 들어, 이틀 연속으로 경기가 있다면 한 선수를 90분 풀타임, 2경기 모두 출전시키는 것은 좋지 않은 선택이겠죠. 이러한 선택의 순간은 일상에서도 다양하게 존재하며 사람들은 최대한 괜찮은 선택을 하고자 합니다. 축구 경기보다 조금더 일상적인 문제로 접근해보겠습니다. 서울역에서 출발해서, [여수, 부산, 울산, 속초, 강릉, 대구, 대전]을 한 번씩 들리고 다시 서울로 돌아오는 경로를 짜고자 한다면, 어떻게 짜는 게 가장 최단거리일까요? 이 문제를 풀기 위해서 두.. 더보기
[Bias 3/3] Bias-Variance Trade-off 란 무엇인가? Bias-Variance Trade-off 란 무엇인가? Machine Learning Bias 란 파라미터 추정 $\hat\theta$의 평균 $\mathbb{E}[\hat\theta]$ 값이 실제파라미터 $\theta$와 발생하는 차이를 나타냅니다. 따라서 Bias 가 크다면 실제 파라미터와 차이가 크다고 이해할 수 있습니다. Bias-Variacne Trade-off를 한 줄로 설명하면, 파라미터 추정 $\hat\theta$들 간의 차이가 클수록, 값들이 멀리 퍼져있는 대신에 그 평균이 실제 파라미터와 비슷해진다는 것 입니다. 이전 포스팅의 예제처럼 남성의 키를 예시로 들어보겠습니다. 실제 평균이 174.21인데, 추정을 Variance가 높게 $173, 174, 170, 178, 176, \cdo.. 더보기
[Bias 2/3] Biased Estimator, Unbiased Estimator란 무엇인가? Biased Estimator and Unbiased Estimator Bias [1]는 추정된 파라미터가 실제 파라미터와 다른 정도를 나타내는 스칼라 값입니다. 모델의 파라미터 $\theta$를 추정했을 때, Bias 의 값이 크다면, 추정된 파라미터가 실제 파라미터와는 상당이 멀리 떨어져있음을 나타냅니다. 그렇다면 Bias 값이 작은 경우가 실제 파라미터와 값이 비슷할 것이고 대체적으로 Bias값이 0인 경우가 좋습니다. [2] Bias 가 낮은 게 좋을 수도 있고, 높은 게 좋을 수도 있다. Bias 는 무조건 낮은 게 좋은 것 같은데, 컷을 때 좋은 점이 있다는 게 잘 믿기지 않습니다. 여기에 한 가지 연결고리가 필요합니다. Bias의 정의를 다시 살펴보겠습니다. $$ E(\hat\theta) =.. 더보기
[Bias 1/3] Machine Learning에서 Bias란 무엇인가? Bias [1]는 Machine Learning에서 필수적인 개념 중 하나 입니다. Bias 는 어느 한쪽으로 치우쳐 있다는 상태를 나타내는 편향이라는 단어를 뜻합니다. 용어가 일상에서 사용될 때는 주로 생각이 치우쳐 있는 것을 나타내는데, Machine Learning에서는 어떤 게 치우쳐 있다는 것을 나타내는 것일까요? 이 포스팅에서는 머신러닝에서 치우쳐있는 편향에 대해서 알아보겠습니다. Machine Learning의 목적 머신러닝은 데이터로부터 패턴을 익히고 관찰하지 못한 새로운 데이터에 대해서 예측하기 위한 모델을 훈련합니다. MNIST, Titanic과 같은 데이터셋은 각각 CNN, XGBoost와 같은 모델로 훈련하고 새로운 문자그림과 승객의 정보가 주어졌을 때, 훈련된 모델로 예측합니다. .. 더보기
[Meta-Learning] 3. 메타러닝의 데이터셋 Dataset for Meta Learning Meta Learning 의 Task distribution view에 의하면 Meta Learning 은 Task들에 대한 학습을 통해서 가장 잘 학습하는 알고리즘 $w$를 찾는 것 입니다. 이로부터 새로운 Task에 대해서 빠른 학습, 더 높은 성능을 가지도록 학습합니다. Meta Learning의 데이터셋은 알고리즘을 찾기 위한 Source Task, 찾은 알고리즘으로 새로운 테스크에 대해서 모델을 훈련시키기 위한 Target Task으로 구분됩니다. 그리고 각각의 M과 Q개의 Task들로 이루어져 있습니다. Machine Learning Machine Learning에서는 Dataset에 대해서 다음 Loss를 최소화 하는 파라미터 찾는 것을 목적으로.. 더보기
[Meta-Learning] 2. 메타러닝의 Formal한 정의 저번 포스팅에서는 Meta Learning이 의미하는바를 알아보았습니다 [메타러닝이란 뭘까?]. 이번 포스팅에서는 Meta Learning의 Background에 대해서 살펴보겠습니다. 포스팅의 내용은 Meta Learning in Neural Networks: Survey 논문의 내용을 토대로 작성되었습니다. 메타러닝은 두 단계의 Learning으로 이루어집니다. 먼저 base learning 은 inner learning algorithm을 이용해서 dataset과 objective로 이루어진 Task에 대한 학습을 진행합니다. 예를 들어서, MNIST의 Categorical data에 대한 학습을 진행한다면, algorithm=(Adam Optimizer, 2 Linear Layer), datase.. 더보기