Preview)
이미지 classification->detection,segmentation이 가능하다
challenges
보는 시각에 따라서 이미지가 다르게보인다
형태의 변형 (deformation,...)
이미지 classification이란
Preview)
이미지를 예측해서 class_label을 return시킨다.
Nearest Neighbor classifier
test이미지와 train이미지 사이의 거리를 통해 correlation을 알 수 있다.
가장 가까운 이미지를 return
train dataset이 늘어나면 linear하게 그 시간이 증가한다.
L1 distance는 맨해튼 distance
L2 distance는 유클리드 distance
Q1)자기자신과 비교하는 경우와 같으므로
hyper parameter tunning할때에 test dataset은 건들면 안됌.
test dataset을 나눈 후 cross-validation을 진행.
nearest neighbor에서의 개념은 같은 위치라면 같은 이미지일 것이다라고 예측하는 것.
근데 original image와 비교해서 shifted,messed up,darkend는 각각 다른이미지임에도 불구하고
nearest neighbor인 경우에는 같다고 판단하므로 틀린 것이고 실제로 사용하지 않음을 알 수 있다.
Linear classification
NN은 마치 레고블록을 쌓아가는것 image captioning?
CNN으로 classification RNN으로 문장을 구성함
f(x,W)일때 x는 control불가 W는 control가능
challenges: Viewpoint Variation(보는 시각에 따라서 다르게 보인다.)
Illumination(조명에 따라서도 다르게 보임)
Deformation(형태의 다양성에 따라 다르게 보임)
Occlusion(은폐,은닉과 같이 숨어있는 것들이 있을 수 있음)
Background clutter(뒷배경과의 구분이 필요)
Intraclass variation(고양이라는 class내에서의 구분)
주의해야할 점
숫자와 같은 형태로 return하는 것이아니라서
명백한 알고리즘이 존재하지 않는다.
따라서 data-driven approach
image와 labels로 구성된 datase에 대해서 학습, 그리고 학습시킨 것에 대한 평가
즉, predict 뿐만으로 구성되었던 classification에 대한 접근을 train과 predict로 나누어서 보는 접근으로 변경한다.
학습때 학습용 images와 label에 대해 올려놓는것.
그리고 예측 즉 test를 해야할 때는 모든 training이미지와 비교해서 가장 비슷한 것에 대해서 return하는것.
그리고 이때 가장 비슷하다라는 기준을 삼는게 distance!
둘 요소 사이의 차이의 절댓값.
training속도와 test속도를 비교했을때 test속도가 빨라야 함.
그러나 dataset이 2배 증가하면 그에 비례해서 linear하게 메모리에 올려놓는 속도와 같이 2배가 될 뿐만아니라
testing할 때 둘사이의 차이를 알아야하는 과정이 있어야 하므로 속도가 linear하게 증가함
CNN에서는 training과 상관없이 testing에는 속도가 일정하게 빠르다.
L1 distance를 사용할 것이냐 L2 distance를 사용할 것이냐 하는 것?
K-NN가 NN보다는 성능이 좋다고 알려져 있음.
test가 아닌 trainingdata를 NN과 비교하면? 완전히 동일한 즉, 자기자신과 비교하는 것이기 때문애 100% accuracy를 가짐
k-NN은 상황에 따라 다르다는 것을 알 수 있음
그리고 이럴때 어떤 상황에서 L1혹은 L2를 사용해야 하는지와
k-NN에서 k는 어떤 값을 사용해야 하는지에 대한 내용을 hyper parameters를 조정하는 과정으로 보는데
hyperparameter의 설정은 문제에 따라 다르게 나온다.
단.test data는 절대 사용하면 안됌
따라서 validation data를 준비하며 testdata를 나눈 후 cross-validation을 통해 돌아가면서 validation을 수행한다.
NN은 현실에서 사용하지 않는다.
test일때 성능이 안좋은 것은 물론 original image와 나머지 images들과 다 다른것을 알 수 있다.
Linear classification은 Neural-network를 볼 수 있는데
image-captioning은 CNN과 RNN의 합친 과정으로 볼 수 있고
이미지에 대해서는 컨트롤 불가하고 파라미터에 대해서는 컨트롤이 가능한 것을 알 수 있다.
들어오는 이미지에 맞게 Weight와 bias를 조정한다.
따라서 linear classifier를 다시 말하면 이미지내의 모든 픽셀들에 대하여 가중치를 곱한것들의 합
각각 다른 공간적 위치에 있는 컬러들을 counting하는 것의 의미 또한 있음.
capacity가 한계가 있다.
공간이 있고 공간에 대한 classifier로 그 대상을 분리하는 개념.
분간하기 힘든 dataset?
정반대의 색상으로 되어있는 것들, grayscale, 형태는 다르지만 색상은 같은 경우는 구분하기 힘들 것이다.
위치가다른 대상과 같은 경우는 잘 구분 할 것이다.
loss function. loss function은 score를 loss로 만들고 그들의 성능을 비교하는 과정을 배울 것임(3강)