이 수업을 들으먼 k-NN, softmax and 2-layer 구현할 수 있게 됩니다
Python and Numpy 사용
Numpy는 무엇인가
Matlab(MathWorks 사에서 개발한 수치 해석 및 프로그래밍 환경을 제공하는 공학용 소프트웨어) 그리고 Numpy 와 같이 vectorized tensor 계산이 익숙하지 않다면 연습하자
똑똑한 포유류와 다르게 컴퓨터는 이미지가 800*600 의 격자 모양의 숫자 집합으로 보임
그리고 각 픽셀은 RGB 3가지로 표현됨. 즉 800 600 3의 거대한 숫자 집합은 우리와 다르게 컴퓨터에게는 어렵지
바라보는 방향, 조명, 고양이의 포즈, Occlusion, 배경과 비슷한 정도에 따라 픽셀의 값은 모조리 변하지만 인간은 여전히 고양이임을 알아보고 우리는 그만큼 강인한 알고리즘을 원하다.
Huble and Wiesel 덕분에 edges로 corner를 지정할 수 있지만 강인하지 못한걸?
즉, 확장성이 없다는거지. 세상 모든 객체에게 유연하게 적용이 가능할 수 있는 강인한 알고리즘이 필요하다고
이런 일을 가능하게 하는 Insight 는 Data-Driven Approach
-앞으로 CIFAR-10 데이터셋을 다뤄야하는데 Cifar-10은 Machine Learning에서 자주 쓰는 training image 데이터셋입니다. class 가 10개라 -10입니다. 알아두시고.
데이터 중심이기 때문에 예를 들면 구글 이미지 서치로 엄청 많은 이미지를 수집하는겨
이 data set을 이용해서 Machine Learning Classifier 를 학습시키는거지
이 ML 알고리즘이 데이터 요약을 잘해서 다양한 객체를 인식할 수 있는 모델을 만들어내는거야 기특한놈
자 다른 API(Application Programming Interface)를 봐보자
Train fucntion : image&label → model
Predict fucntion : model → predict
Data-driven approach는 Deep Learning뿐만 아니라 아주 일반적인 개념이지만 더 간단한 classifier 하나 보고 가자잉
NN 이라는 건데 상당히 단순해. 단 한 줄의 코딩으로 distance를 측정하니까
간단하게 이미지 차이를 L1 으로 측정하면 되는데, Test 시간이 엄청 오래걸려서 사실상 NN 을 쓰는데는 없다. "Train Time은 조금 느려도 되지만 Test Time에서는 빠르게 동작"하길 원합니다.
그거보다 좀 유연한 방법이 K-NN 이다.
여기 K가 1이면 NN과 동일한거고 K가 커질 수록 more smooth 해진다.
K값과 distance 측정 방법을 parameter라고 하고
그에 따라 정확도가 달라지니까 요거를 잘 정해야 하는데
1.dataset으로만 정할때가 K=1일 때라, 아까도 말했지만 NN은 bad
2.data를 train 과 test 로 나눠서 진행한다면 새로운 데이터에 포용력을 알 수 없기 때문에 마찬가지로 bad
3.train, validation 그리고 test로 나눠서 하면 training으로 셋팅된 hyperparameter를 validation data를 통해 tunning을 하고 test를 진행하기 때문에 better
4.Cross-Validation이라고 data가 적을 때 쓰는 건데,
5개 정도의 fold로 data를 나눠서에 1, 2, 3, 4로 training 하고 5번으로 validation 하고 다시 2, 3, 4, 5로 training 하고 1번으로 validation 하고,
이런 식으로 5번 반복을 해서 hyperparameter를 설정할 수 있다.
그런데 결국 K-NN도 현실에서는 쓸 수가 없다.
왜냐하믄 테스트 타임도 너무 길고 distance로 이미지 차이를 잘 표현하지 못하기 때문이다.
게다가 curse of dimensionality 때문이기도 한데,
-요건 좀 더 내가 더 숙성하고 알려주께. 너무 많은 데이터가 필요해서 라고만 알고 있어봐
레고 같은 Linear Classification을 선형으로 다닥다닥 끼우면 고게 Neural Network(신경망)이라고 비유할 수가 있습니다.
data는 동일하게 CIFAR-10 이용할겁니다.
전에 배운 NN들은 parameter가 없었는데 이건 있습니다.
-딩동댕동
참고 자막
참고 블로그
https://leechamin.tistory.com/64
https://namrmino.tistory.com/entry/CS231n-Lecture-2-Image-Classification?category=919351
https://gjghks.tistory.com/70?category=887163
오 어려운 내용인데 정리가 잘 되어있네요! 망고농장 또 올게요 ㅋㅋ