1. Cross Validation은 무엇이고 어떻게 해야하나요?
Cross Validation은 test data를 사용하지 않고 model의 성능을 확인하기 위한 방법으로, dataset을 train data와 validation data(10~20%정도)로 분리하고, train data를 이용해 모델을 학습한 후 validation data로 그 성능을 검사하는 방법이다.
Cross Validation의 파생형 중 하나인 K-fold Validation은 Cross validation을 여러번 실행하는 것으로, dataset을 k개의 fold로 나눈 후, 각 fold가 한번씩 validation set 역할을 함으로써 모델의 성능을 평균적으로 보는 방법이다. 이렇게 하면 운이 안좋아서 마침 고른 validation datset이 학습된 모델에 딱 맞거나, 너무 안맞는 경우에 우리가 모델의 성능을 잘못 인식하는 문제를 없앨 수 있다.
2. 회귀 / 분류시 알맞은 metric은 무엇일까요?
회귀의 경우 입력 데이터에서 연속적인 수치를 예측하는 문제이다. 따라서 회귀 시에는 MSE 또는 MAE와 같은 metric을 사용하여 ground truth와 예측값의 차이를 loss로 나타내 준다.
분류의 경우 데이터가 어느 클래스에 속하는지 파악하는 문제이다. 따라서 분류 결과의 신뢰도를 나타내는 통계치인 accuracy, precision, recall, f1-score를 사용한다.
위의 metric을 모른다면?
https://en.wikipedia.org/wiki/Evaluation_measures_(information_retrieval) - 분류와 관련된 metric
Evaluation measures (information retrieval) - Wikipedia
From Wikipedia, the free encyclopedia Statistics about search result quality Evaluation measures for an information retrieval (IR) system assess how well an index, search engine or database returns results from a collection of resources that satisfy a user
en.wikipedia.org
https://en.wikipedia.org/wiki/Norm_(mathematics) - 회귀와 관련된 metric
Norm (mathematics) - Wikipedia
From Wikipedia, the free encyclopedia Length in a vector space In mathematics, a norm is a function from a real or complex vector space to the non-negative real numbers that behaves in certain ways like the distance from the origin: it commutes with scalin
en.wikipedia.org
3. 딥러닝은 무엇인가요? 딥러닝과 머신러닝의 차이는?
머신러닝은 컴퓨터가 알고리즘을 통해 데이터의 특성을 습득하고, 새로운 데이터가 왔을 때 그 결과를 이용해서 새로운 것을 예측하는 기술이다.
딥러닝은 머신러닝의 한 종류로, deep neural network를 이용하여 데이터의 관계를 찾아내는 기술이다.
또한, 머신러닝은 사람이 feature extraction을 하고, 사람이 정해준 알고리즘대로 프로그램이 학습을 하는 것이므로, 어떤 면에서 사람의 bias가 포함된 학습이라고 할 수있다. 그러나 딥러닝은 feature extraction도 프로그램이 하고, 결과를 출력해내는 과정도 모델이 network를 통해 학습하므로, 사람의 bias가 없는 프로그램이라고 볼 수 있다.
4. 왜 갑자기 딥러닝이 부흥했을까요?
학습 데이터의 양 증가, 컴퓨터의 성능 향상, 알고리즘 발달로 인해 딥러닝 알고리즘의 성능을 크게 향상시킬 수 있었기 때문이다.
- 학습 데이터를 많이 축적시키게 되면서 모델 학습에 가장 큰 영향을 미친다고 알려진 요소중 하나인 dataset의 크기를 확보하게 되면서 모델의 성능을 크게 끌어올릴 수 있게 되었다.
- 컴퓨터의 성능 향상 - 메모리와 GPU
메모리가 커지면서 더 많은 data를 한번에 이용해 모델을 학습시킬 수 있게 되었으며, GPU의 성능이 발달하고, 또 한번에 여러 GPU를 병렬적으로 쓸 수 있게 되면서 더 크고 깊은 모델을 구현하고, 더 빠르게 모델을 학습할 수 있게 되었다. - ReLU같은 활성함수나 skip connection같이, 여러 우수한 알고리즘들이 개발되면서 모델의 성능을 올리고, 더 빠르게 연산할 수 있게 되었다.
5. 딥러닝 발달 이전에 사물을 Detect할 때 자주 사용하던 방법은 무엇인가요?
크게 두가지 방법이 있다.
1. OpenCV 라이브러리의 template matching 기능을 사용하면 이미지에서 특정 사물을 찾아낼 수 있다. 그러나 이 방법의 경우 이미지가 회전이라도 되는등 픽셀의 배치가 달라지면 찾지를 못하는 문제가 있는 1차원적인 방법이다.
2. HOG(Histogram of Gradients) feature와 SVM classifier를 사용한 방법이며, 크게 두 단계로 나뉜다.
- window에서 HOG feature를 추출
- HOG는 window를 구성하는 각 픽셀의 gradient vector(주변 픽셀에 대한 밝기 변화량)를 구한 후 히스토그램으로 표현한 것이다 - Pre-trained SVM classifer에 HOG feature를 입력
- SVM classifier는 window안에 object가 있을 확률을 계산한다.
댓글