CS231n Lecture 2 | Image Classification

유현지·2021년 7월 11일
0
post-thumbnail

요약이 안되기에 강의 후 정리할 것


7월 12일 예습자료

강의 정리

ppt 기준 정리

p6 이미지 분류
Computer Vision의 핵심 작업

고양이 이미지 -> 분류군에 대한 레이블 집합가정 -> cat 결과값 도출 원함

컴퓨터는 이미지를 0~255 사이 수로 분류<예시. 8006003(RGB)>

다만 조명, 자세,가려짐, 배경, 클래스 내 다양성(색,크기,종 등)에 의한 영향도 분류할 수 있어야 함

숫자 정렬과 달리 사물인식은 고양이를 표현하는 직관적이고 명시적인 알고리즘은 없음

고양이의 특징: 귀 2개 코 1개

1.엣지와 코너를 구분하여 특징군 확인하여 규칙 집합을 만들어 비교하는 알고리즘은 다루기 힘듦
2.다른 객체 인식시 해당 객체에 대한 특징도 별도로 만들어야 함
확장성이 없기 때문에 유연하게 적용가능한 알고리즘을 만들어야함

시도
1.이미지 데이터셋과 라벨 선택
2.머신러닝을 통한 분류 훈련
3.새 이미지에 대한 평가

k-nearest neighbors algorithm
training - 모든 데이터와 라벨을 기억
predict - 가장 유사한 트레이닝 이미지 라벨을 예측

Example Dataset: CIFAR10

Distance Metric
L1 distance:맨하탄 거리함수
테스트/트레이닝 이미지의 같은 자리 픽셀을 서로 빼고 절대값을 취함
픽셀 간 차이 값을 모두 더함
=> 두 이미지 간의 차이 측정에 대한 구체적인 방법 제시

p21
Nearest Neighbor classifier에 대한 코드
1.훈련 데이터 기억
2.각 테스트이미지와 비슷한 훈련 데이터를 찾아 가까운 라벨 예측

p24
Q: 이미지가 총 N개의 경우, 훈련과 예측 시간은?
A: Train O(1) 상수시간_데이터 기억,
predict O(N) N개의 학습 데이터를 테스트 이미지와 비교해야함
ㄴ빅 오 표기법(Big O notation)_O(빅오) 알고리즘 효율성을 상한선 기준으로 표기

BAD: 훈련시간보다 테스트 시간이 빠르게 작동해야 함

p27
KNN K-Nearest Neighbors -> K 갯수만큼 인근 유사 값끼리 묶어 분류
가까이 있는 것이 아닌 주변에 있는 것과 가장 많은 것으로 분류됨

p31
Distance Metric
KNN 사용 시 서로 다른 점 비교
1.L1 distance 픽셀 간 차의 절대값 합 : 어떤 좌표시스템인지에 따라 많은 영향을 받음
2.L2 (Euclidean) distance:제곱합의 제곱근

p33
동일 데이터를 L1 distance와 L2 distance를 사용함
거리 척도에 따라 모양이 달라짐
L1 distance가 좌표시스템의 영향을 받음

knn 분류기 설계 데모 사이트
http://vision.stanford.edu/teaching/cs231n-demos/knn/

하이퍼파라미터: 변동 가능한 매개변수 -> 영향있음
학습시간에 학습하는 것이 아닌 학습 전 사전에 선택해야함
problem-dependent: 하이퍼 파라미터를 정하는 일은 문제에 의존적이며 잘 작동하는 지 확인해야함

p36
하이퍼파라미터 셋팅
1.데이터셋에서 하이퍼파라미터를 선택
->k = 1일때 데이터를 완벽하게 분류함
=>데이터셋에서 가져왔기에 학습데이터를 분류함
2.전체 데이터셋을 학습과 테스트 데이터로 나눠 테스트 데이터에서 가장 작동을 잘하는 데이터를 하이퍼파라미터로 선택
->새로운 데이터에 대한 알고리즘 수행 여부 확인 불가
3.훈련/검증(validation)/테스트 셋으로 나눠 밸리데이션 셋으로 검증 후 가장 좋은 하이퍼 파라미터를 선택 후 테스트 진행
4.크로스 밸리데이션(교차검증)
->트레이닝 셋:라벨이 기억하는 이미지 벨리데이션 셋: 트레이닝 셋과 비교하여 정확도를 확인

p42
5-fold cross-validation rmfovm
x축 k이며 y축 분류 정확도
테스트셋이 알고리즘 성능 항샹에 미치는 영향
여러 밸리데이션 폴드 별 성능의 분산 고려

실제로 이미지의 경우 knn 분류기를 사용하지 않음
why? =>느리며 L1/L2 distance가 이미지간 거리(지각적 유사성) 측정에 적절하지 않음
차원의 저주? 충분한 트레이닝 샘플이 필요한데 차원이 증가할 때마다 기하급수적으로 필요량이 증가함

p45
요약
이미지 분류에서 이미지와 레이블의 training set을 시작하고 test set의 레이블을 예측해야 함
K-Nearest Neighbors 분류기는 인근 트레이닝 예를 기반으로 라벨을 예측
Distance metric 및 K는 하이퍼파라미터
밸리데이션을 사용해 하이퍼파라미터를 선택

Linear classifiers(선형분류)
신경망을 서로 연결하는 점이 블럭과 같음
이미지 인식하기 위해 CNN 사용하며 언어를 인식하기 위해 RNN 사용
두개를 레고 처럼 붙이고 한번에 학습 시킴
뉴럴네트워크는 레고와 같고 가장 기본 블럭이 선형 분류임
CNN(합성곱신경망 : Convolution Neural Network)
RNN(순환신경망 : Recurrent Neural Network)

f(x,W) = Wx + b
W 가중치
b 편향

이미지 -> (103072)(30721) + 101(편향) -> (10*1)10의 클래식 스코어 도출
=>위 내용에 대한 이해 필요

p59
선형분류가 어려운 케이스
두개의 클래스를 가진 데이터셋 선으로 분류하기 어려운 예
홀짝 분류와 같은 반전성 문제(parity problem)
multimodal problem
->그럴 경우 Non-linear function 비선형 함수 이용

score function
각 카테고리에 대해 하나의 템플릿을 학습함
가중치 행렬 W를 학습시키고 나면 학습 데이터에도 스코어를 매길 수 있음

용어

Image Classification: 이미지 분류
Data-Driven Approach:데이터기반 접근방식
Data-Driven Approach: k-최근접 이웃 알고리즘
CIFAR-10:데이터셋 이름시파텐
Distance Metric: 거리함수/ 손실함수
hyperparameters:초매개변수(머신 러닝)
validation:
Linear classifiers:선형분류
f(x,W) = Wx + b
W : parameters or weights
b: 바이어스 편향
score function:

토론 내용

p36
하이퍼파라미터 셋팅 k = 1일때 데이터를 완벽하게 분류한다는 설명 재확인

p40
2.전체 데이터셋을 학습과 테스트 데이터로 나눠 테스트 데이터에서 가장 작동을 잘하는 데이터를 하이퍼파라미터로 선택
->새로운 데이터에 대한 알고리즘 수행 여부 확인 불가
->왜? 바로 확인하여서 테스트 데이터의 적절성을 판단하기 어려운 건가?
->새로운 이미지를 잘 분류한다는 지표가 되지 않음

Coming up

  • Loss function 손실함수
  • Optimization 최적화
  • ConvNets!합성곱 신경망

좋은 w를 가진 것에 대한 의미
손실을 최소화하는 W 찾기
f 형태 변경

참고자료
CS231n Lecture 2 PPT 자료

profile
굴러가는 토마토

0개의 댓글