Loading...
2022. 2. 12. 19:25

data augmentation은 왜 사용해야할까?

1. train data의 문제점 neural network는 데이터를 컴퓨터만 이해할 수 있는 지식의 형태로 녹여넣는 모델 데이터를 통해 패턴을 분석하고자하는 것인데 모델이 데이터를 편식하지 않고 전부 가져가면 가장 좋다 그러나 실제 세상의 데이터들은 bias가 많다 우리가 train data로 얻은 이미지들은 사람이 카메라로 찍은 이미지들이다. 사람이 카메라로 찍었다는 것은 당시 유행?에 따라 사람들이 보기 좋게 찍은 bias된 이미지 그러나 실제 세상은 사람들이 보기 좋게 찍은 구도 말고도 여러가지 많다 실제 test time에서는 어떤 image가 들어올지 모른다 이 말이야 train data는 실제 real data 분포에서 아주 극히 일부 sampling된 데이터라고 볼 수 있다 이게 왜 문제..

2022. 2. 11. 21:27

text를 embedding시키는 Word2Vec의 성질 이해하기

1. 시각적으로 알아보는 Word2Vec layer의 기본 구성 8개의 단어를 5차원 embedding vector로 만들고 싶다. random하게 초기화시킨 가중치는 여기서 가로 한줄한줄이 단어 세로 한줄한줄은 차원 수백번 학습시키고나서 얻은 가중치는 apple과 orange는 의미상 비슷하다는 것을 알고 있다. 실제 embedding결과도 비슷한 색을 보이고 있다는 것 juice, milk, water도 색이 비슷하다는 것이 보인다. 실제로 이들도 의미상 비슷하다. 고차원의 벡터는 눈으로 확인이 불가능하다. PCA를 통해 2차원으로 축소시켜 시각화한 그림은 의미상 비슷한 벡터들이 모여있긴하다 W1과 W2중 무엇을 embedding vector로 써도 상관없지만 통상적으로는 W1을 embedding v..

2022. 2. 11. 21:10

sequence 데이터를 모델링하는 방법

1. sequence data 사건의 발생 순서에 따라 순차적으로 들어오는 데이터 말소리, 문자열, 주가, 비디오, 시계열, 동작(motion) 데이터 독립이고 서로 동등한 분포를 따르지 않는다(iid가 아니다.) 데이터의 순서를 바꾸면 확률분포가 바뀐다. 과거의 정보나 앞뒤의 맥락을 이용하지 않으면 미래를 예측하는 것이 어렵다. 순서에 관한 정보를 어떻게 반영해야할지 어려워 다루기 어려운 데이터이다. 심지어 입력의 차원이 어디까지 될지를 모른다. 바꿔말하면 sequence data를 다룬 모델은 입력의 차원이 다르더라도 동작할 수 있는 모델이어야한다. 2. 조건부확률을 이용한 모델링 sequence data는 이전에 발생한 정보를 이용하므로 이전 사건이 발생했다는 가정하에 현재 데이터가 발생할 확률을 ..

2022. 2. 10. 18:59

ResNet의 핵심 아이디어인 skip connection과 Residual learning

1. deep neural network는 학습하기가 어렵다 overfitting이란 train error가 줄어드는데도 test error는 증가하는, 방향이 반대되는 현상으로 parameter 수가 늘어나면 일반적으로 발생한다. 일반적으로 deep한 neural network는 shallow한 network에 비해 학습하기가 어렵다. train error가 줄어들면서 test error도 어느정도 줄어드니까 위와 같은 경우는 overfitting은 아니다. 물론 test error가 너무 커지는게 문제다. 아무리 학습을 잘 시킨다고해도 결국엔 20-layer가 56-layer보다 나았음 왜 학습하기가 어려웠나? 깊을수록 gradient vanishing 문제가 발생했기 때문이다 ResNet은 skip..

2022. 2. 9. 19:14

transfer learning이란 무엇일까?

1. motivation 지금까지 보지 못한 새로운 인공지능을 만들어야한다고 할 때 데이터부터 준비해야할 것이다. 기본적으로 인공지능은 어마어마한 데이터가 필요한데 입력데이터만 단순히 모으는 것이 아니라 데이터의 label도 필요함 이런 것은 단기간에 모으기 쉽지 않고 비용도 많이 나오고 외주업체에 맡겨도 사람이 하는 일이라 원하는 형태의 데이터보다는 질이 낮은 데이터가 얻어짐 만약 원하는 task와 연관된 어떤 task에 대해 미리 학습한 모델을 이용할 수 있다면? 적은 데이터로도 좋은 성능을 낼 수 있지 않을까? 2. definition 기존에 미리 학습시켜놓은 사전 지식으로 연관된 새로운 task에 적은 노력으로 높은 성능에 도달하겠다는 것이 목적 쉽고 경제적이며 어느 정도의 성능도 보장한다 직관적..

2022. 2. 8. 18:49

1*1 convolution은 왜 중요한가?

1*1 크기의 kernel을 input에 적용시키면 input의 모든 pixel을 그대로 가져온다 1번 적용하면 output channel은 1이되므로 kernel 수를 적절하게 조절하면 spatial dimension은 그대로 가져오면서 channel만 줄이는 효과가 있다 왜 사용하는가? 그림에서 보이지만 spatial dimension인 256*256을 input에서 output 그대로 가져오면서 channel수를 줄이는 효과를 가진다 convolution을 깊게 만들면서 parameter 수를 줄이는 획기적인 아이디어