728x90

저스틴 존슨 교수님의 강의만 들어서는 내용을 잘 알아들을수도 없고 이해가 잘 되지 않는 부분이 많아

 

학습 머테리얼들을 참고해서 적는다.

aikorea.org/cs231n/linear-classify/

 

 

 

 

Softmax 분류기

 

- SVM이 가장 흔하게 사용되는 분류기 2가지 중 하나로 살펴보았습니다 .다른 하나는 소프트맥스 분류기인데 다른 형태의 비용 함수를 가지고 있습니다. 아마 여러분들이 로지스틱 회귀 분류기를 전에 들어보았다면, 소프트맥스 분류기는 다중 클래스의 경우로 그걸 일반화 시킨것이라 할수 있겠습니다.

 SVM이 아래의 출력을 각 클래스의 스코어, 점수로 보고있다면

 소프트 맥스 분류기의 경우 더  직관적인 출력(정규화된 클래스별 확률)을 보여주어 확률적으로 이해할수 있겠습니다. 소프트 맥스 분류기에서 또한 아래와 같은 함수 형태, 맵핑 관계 자체는 바뀌지는 않으나

 이 점수들을 각 클래스별 정규화 되지 않은 로그 확률로 볼것이며, 이 힌지 로스를 아래와 같은 교차 엔트로피 오차로 바꾸어 사용하겠습니다.

 위 형태의 교차 엔트로피 오차에서 f_j는 클래스 점수 백터 f의 j번째 요소를 의미하고 있습니다. 이전에 데이터셋의 총 손실 full loss가 모든 훈련 데이터에 대한 손실의 평균으로 구하였었습니다. 여기서 함수 f_j는 소프트 맥스 함수로 아래의 형태를 가지고 있습니다.

 소프트 맥스 함수는 실제 점수들을 입력받아 나누어 0에서 1사이의 값(확률)으로 만들어주는 함수라고 할수 있습니다. 총 교차 엔트로피 손실은 소프트 맥스 함수를 포함하고 있어 겉보기에는 복잡해보지만 쉽게 이해할수 있겠습니다.

 

 정보 이론적 관점

 실제 확률 분포 p와 추정 확률 분포 사이 교차 엔트로피는 아래와 같이 정리할 수 있습니다.

 소프트맥스 분류기는 추정한 클래스별 확률들과 실제 확률 분포의 교차 엔트로피를 최소화 시키는 것이고, 여기서 실제 확률 분포는 모든 가능한 경우들 중에서 올바른 클래스를 나타내는 확률 분포를 말하는데 p =[0, . . ., 1, . . ., 0] (y_i 번째 자리에만 1이 있음. 원핫 인코딩의 형태)의 형태라고 할 수 있겠습니다.  

그러므로 교차 엔트로피는 엔트로피와 쿨백-리블러 발산을 이용하여 아래와 같이 정리할수 있고,

델타 함수의 엔트로피가 0인 경우, 이는 두 분포 사이의 KL 발산 그러니까 예측 확률 분포와 실제 확률 분포사이의 거리(오차)를 최소화시켰다고 할수 있겠습니다. 다시 정리하자면 교차 엔트로피를 사용하는 목적은 올바른 대답에 속하는 모든 질량을 갖는 예측 확률 분포를 구하는 것이라 할수습니다.

 

 

엔트로피, 쿨백리블러 발산, 교차 엔트로피

- 엔트로피 : 정보의 불순도, 무질서의 정도

- 쿨백 리블러 발산 : Kullback-Leibler Divergence : 두 확률 분포 사이의 거리, 차이를 구하는데 사용

- 교차 엔트로피 : 두 확률 분포 사이의 거리

- 참조 링크 : ramees.tistory.com/64

 

 

 

 

 

SVM 대 소프트맥스

 

이 그림으로 소프트맥스 분류기와 SVM 분류기의 차이를 아라봅시다.

 

 이 그림은 한 데이터가 주어졌을때 SVM과 소프트맥스 분류기의 차이를 보여주고 있습니다.

 

계산 결과 같은 스코어 벡터 f(행렬 곱으로 얻은)가 나오고 있는데, 차이점은 점수 f를 어떻게 해석하느냐, 이용하느냐에 차이가 있다고 볼수 있겠습니다.

 

SVM은 이 점수를 클래스별 점수로 해석하고, 비용함수가 올바른 클래스(2번 클래스, 파란색)이 다른 클래스보다 더 높은 점수를 받을 수 있도록 마진을 사용하고 있습니다.(올바른 클래스의 점수가 클 수록 비용이 줄어들 기 때문)

 

 소프트맥스 분류기의 경우 점수를 각 클래스에 대해 정규화되지 않은 로그 확률로 보고 있으며, 이를 정규화를 시키고 올바른 클래스의 로그 확률이 더 높아지도록 만듭니다.(아닌 경우는 낮아지도록) 

 

 

 이 예시에서 최종 손실은 SVM의 경우 1.58, 소프트맥스 분류기의 경우 1.04지만 이 수치끼리는 비교해선 안되고 동일한 분류기와 동일한 데이터에 대해서 계산된 비용 끼리 비교할때만 의미가 있다고 할수 있습니다. 그러니까 가중치를 바꿔가면서 비용 함수로 구한 비용이 줄어드는지 전후 비교하는 것에 사용해야합니다.

 

 

 

 

300x250
728x90

 

 

 

미시건대 저스틴 존슨 교수님 강의에 일부 내용을 약간 추가하여 작성하였습니다.
https://www.youtube.com/watch?v=qcSEP17uKKY&feature=youtu.be

 

 

 

 

 

 

Lec3_Linear_Classifier.pdf
1.00MB

 

 

 

Lec3_Linear_Classifier2.pdf
0.51MB

300x250
728x90

링크

www.youtube.com/watch?v=0nqvO3AM2Vw

 

랙처 1은 나중에 하고

 

 

 

 

이미지 분류

- 입력 이미지가 주어질때, 이 이미지가 무엇인지 분류하는 문제

 

이미지 인식에서의 문제 : 시멘틱 갭(인지 능력의 차이)

- 우리는 고양이인걸 바로 인지할수 있음

- 컴퓨터는 사람처럼 인지 할수 없고, 컬러 이미지의 경우 3차원의 형태(행 x 렬 x 채널)로 됨

 

 

이미지 인식에서의 도전 과제

1. 관점 변화에 따른 인식

- 위치나 각도에 따라 이미지 픽셀값이 변함

- 관점 변화에 따른 강인한 알고리즘이 필요

 

2. 동일 클래스 다양성에 따른 인식 문제

- 전부다 고양이이나 서로 다르게 생김 

3. 하부 카테고리 분류 문제

- 고양이에도 여러 종이 있으나 생김새가 비슷할 경우 분류하기 어려움

 

4. 배경에 의해 분류하기 힘든 경우

- 물체가 배경으로 인해 구분하기 힘든 경우에도 분류할수 있어야 함.

 

 

5. 조명 변화

- 다양한 조명에서도 고양이를 분류할수 있어야함.

 

5. 형태 변화

- 분류하고자 하는 물체가 다른 자세로 되어 있더라도 분류할 수 있어야 함.

 

6. 장애물

- 분류하고자 하는 물체가 가려져 있더라도 분류할수 있어야 함.

 

 

이미지 분류의 활용 예시

 

이미지 분류의 활용 예시

- 의료 이미지를 이용한 종양 양성, 음성 분류

- 망원경으로 얻은 영상으로 은하 분류

- 고래 인식 등

 

이미지 분류를 이용한 물체 검출

- 특정 박스를 이동시키면서, 해당 박스 이미지를 분류함으로서 물체를 검출

 

 

 

 

 

 

그러면 어떻게 이미지 분류기를 구현할까?

 

어떻게 구현할지 명확한 방법은 없음.

 

 

에지나 코너를 사용하는 경우는 어떨까?

- 물체의 외형으로 사람의 경우 바로 인식할수는 있겠지만

- 컴퓨터로 검출할때 필요한 에지를 검출하지 못할수 있고, 너무 많은 코너를 검출 시 계산 복잡도가 크게 증가하여 적합하지 않음.

 

 

 

머신러닝 : 데이터 주도 방법

- 물체의 외형같이 사람이 활용 가능한 지식을 활용하는 것이 아닌 데이터로부터 학습하는 방법

 

분류기의 기본 함수

- train

- predict

 

이미지 분류 데이터 셋

1. MNIST

10 클래스

28 x 28 흑백 이미지

50k 훈련 이미지

10k 테스트 이미지

 

 

2. CIFAR10

10 클래스

50k 훈련 이미지 - 1클래스당 5K

10k 테스트 이미지 - 1클래스당 1K

32 x 32 RGB 이미지

 

3. ImageNet

1000 클래스

~1.3M 훈련 데이터(클래스당 ~1.3k)

50K 검증 이미지 (클래스당 50)

100K 테스트 이미지(클래스당 100)

256 x 256 크기의 컬러 이미지

 

 

 

훈련에 사용하는 픽셀 갯수

 

 

최근접 이웃 분류기 구현하기

- 훈련 함수에서 모든 데이터와 라벨 기억

- 예측 함수에서 입력 이미지와 거리가 가장 가까운 이미지의 라벨을 구함

 -> 거리를 구할 방법이 요구됨.

 

 

 

 

 

 

거리 지표

1. L1 거리(맨해탄 거리)

- 모든 요소들의 차이 합

 

300x250

+ Recent posts