본문 바로가기
인공지능 관련 강의

무작정 쓴 CS231n 2강 (1)

by 인공지능 초년생 2022. 3. 1.

1강은 대충 역사라서 skip하였다. 

 

인간은 이걸 고양이라고 생각하기 쉽지만 

컴퓨터는 이것이 숫자로만 보여서 고양이라고 인식하는데에 어려움이 있다. 

 

컴퓨터가 인식하는 것에 있어서 직면하는 6가지의 문제점

 

1. 같은 고양이 자세여도 포즈가 좀만 바뀌면 픽셀이 많이 바뀐다.

2. 배경색과 비슷하면 고양이의 숫자 값이 비슷하여 분간이 어려움

3. 명암이 달라도 고양이라고 인식할 줄 알아야 한다.

4. 고양이가 가려져 있어도 고양이임을 인식해야 한다. 

5. 고양이가 다른 자세로 취하여도 이를 인식해야 한다.

6. 고양이가 한가지 종만 있는 것이 아니라 다양한 종이 존재하는데 알고리즘은 이걸 모두 고양이라고 인식해야한다.

 

고양이의 모서리를 찾아서 이걸 고양이라고 학습시키면 될까? 아이디어만 좋았다. 

고양이를 생각보다 잘 인식을 못함, 고양이 뿐만 아니라 다른 동물이나 물건도 구별해야 하는데

새로운 카테고리를 시도할 때마다 매번 윤곽선을 따야함 >> 확장 할 수 없는 알고리즘

우리는 데이터에 기반한 접근 방식을 택하기로 하였음!

'데이터에 대한 학습을 수행'

 

첫 알고리즘: KNN

K-Nearest Neighbor은 K-방역처럼 한국에서 개발된 알고리즘이 절대 아니다.

2가지 과정을 거친다.

 

개요) 이미지를 본 다음 유사해 보이는 카테고리를 선택.

 

학습: 그냥 데이터를 단순히 외운다. 이것 외에 아무런 조치를 취하지 않는다.

 

시험: 새로운 사진이 들어오면 학습된 카테고리들을 바탕으로 학습 카테고리들을 비교하고

그 중 가장 유사해 보이는 종류로 분류

학습 때 단순 암기만 하고빠르게 넘김 

시험을 볼 때 사진이 들어오면 카테고리별 사진과 입력 이미지간의 픽셀 거리를 측정

L1이 될 수 있고 L2가 될 수도 있다. 

 

L1은 거리의 차의 절대값이며 

L2는 거리의 제곱이다. 

 

픽셀끼리 거리를 측정하여 모두 합쳐서 합을 구한 다음, 

합이 제일 작은 카테고리에 편입을 시키면 된다. 

 

이 알고리즘은 좋을 까? 전혀 아니다. 훈련하는데 그냥 외우기 때문에 O(1)이 걸리는데, 

시험을 보는데에는 O(N)이나 걸린다? 왜? 카테고리 하나씩 비교해야 하니까!

 

학습이 오래걸리고 추론이 짧아야 되는데 학습이 짧고 훈련이 지나치게 길다!

최악의 알고리즘이다!!!

비지도 학습에서의 K-means 알고리즘 

 

1. 중심점의 개수인 K를 결정하고 K개에 따른 임의의 중심점을 구한다. 

2. 중심점에 따라 중심들과 점사이의 거리를 구하여 서로 비교한다. (이 때 거리는 L1 일수도 L2일수도 있다.) 

3. 거리가 제일 적은 중심에 점을 편입시킨다. 

4. K 군집이 끝나면 모인 그룹끼리 평균을 구하여 새로운 중심점을 구한다.

5. 이를 반복한다.

6. 새로운 중심점과 기존의 중심점이 같으면 알고리즘이 종료된다. 

 

K1개로 지정하면 이런 식으로 나눠지는데, 색깔 사이들의 (빨강과 파랑 사이, 초록과 노랑 사이등) 경계가

매끄럽지 않으며, 이런 걸 노이즈라고 평가, 초록 한가운데 노랑이 있는 이상한 경우도 있다

 

그러나 K개를 점차 늘일수록 색깔 간의 경계가 매끄러워지고 분류가 확실히 더 잘된다. 초록안에 있는 이상한 노랑 점도

사라지게 된다. 

 

L1: 다이아몬드의 형태 L2: 원의 형태

L1거리는 좌표계의 선택에 따라 다르다.

L1: 요소들이 개별적인 의미

? L1은 좌표계가 sparse(희소)한 걸 선호한다. 데이터의 feature중 알고리즘이 선택한 feature외에는

모두 0으로 가는 특징이 있다. 좌표계의 차원을 감소시킬 수 있다.

L1거리는 한 데이터 안에 존재하는 특징들이 서로 중요한 의미를 가질 때, 사용된다.

L2는 좌표계의 선택과 큰 상관이 없다. 특징을 잘 모를 때 사용

 

K의 개수는 어떻게 고를까? L1 거리가 좋을 까 L2거리가 좋을까?

(2)에서 얘기하겠다.

'인공지능 관련 강의' 카테고리의 다른 글

패스트캠퍼스 온라인 강의 수강후기  (0) 2023.12.15
무작정 쓴 CS231n 2강(2)  (0) 2022.03.01