[인공지능] chatgpt를 활용한 기계 학습과 인식2 #AI #SVC #SVM #chatgpt

2023. 4. 5. 20:24_Study/AI

728x90

기계 학습과 인식🐇¸.•*¨*•¸.•*¨*•¸.•*¨*•¸.•*¨*•

해당 자료는 강의 학습자료입니다. 강의 이외의 내용은 검색 및 다양한 자료를 통해 공부하며 정리한 내용의 포스팅입니다.

#AI #인공지능 #기계학습과인식 #chatgpt #python #study


앞선 글에서 chat gpt를 통해 SVC를 학습하였다. 이어 기계학습을 배워본다.

 

 규칙 기반, 고전적 기계 학습, 딥러닝 같은 경우 레이블이 필요하다. 레이블을 붙이는 작업은 전문가가 해야하므로 비용이 많이 드는 작업이다. 따라서 딥러닝에서는 이를 줄이는 방법이 있다.

원샷 학습(1-shot learning) : 레이블이 있는 샘플 하나만 사용해 학습하는 원샷 학습

퓨샷 학습(few-shot learning) : 몇 개의 샘플만 사용하는 퓨샷 학습

준지도 학습 (semi-supervised learning) : 레이블이 있는 소량의 샘플과 레이블이 없는 대량의 샘플을 같이 사용하는 준지도학습

 

 

특징 공간에서 데이터 분포

iris 데이터 : 특징이 4개이므로 4차원 특징 공간을 형성

 

영상 데이터 사례: 필기 숫자

 

영상 데이터 사례 필기 에는 두 가지 대표적인 데이터 셋이 있다.

sklearn 데이터셋 : 8*8 맵(64개 화소), 1797개 샘플, [0,16] 명암값

MNIST 데이터셋: 28*28맵(784개 화소), 7만개 샘플, [0,255] 명암값

 

 

 

영상 데이터 사례: lfw 얼굴 데이터셋

lfw(labeled faces in the wild) 데이터셋 ▪ 5749명의 유명인의 얼굴 영상 13233장. 50*37맵. [0,255] 명암 값

데이터 편향 주의(어린이, 흑인 등이 적어 얼굴 인식 프로그램을 제작하는데 부적절

 

텍스트 데이터 사례: 20newsgroups

 

 

 

- 웹에서 수집한 문서를 20개 부류로 구분. 텍스트로 구성되어 샘플의 길이가 다름

- 시계열 데이터(단어가 나타나는 순서가 중요. 8장의 순환 신경망에서 다룸)

 

 

 

 

 

 

특징 추출과 표현

기계학습의 전형적인 과정은 데이터 수집 -> 특징 추출 -> 모델링 -> 예측이다.

 

사람은 직관적으로 분별력이 높은 특징을 사용하는데, 이는 한 눈에 알아보기 쉬운, 예를 들어 귀가 있고, 없고, 손잡이가 있고 없고와 같은 특징이다. 기계학습도 동일하다. 다양한 특징 공간을 통해 비선형 데이터를 분별해야한다.

 

이러한 특징 값의 종류는 수치형 특징, 범주형 특징으로 나뉜다.

수치형 특징 범주형 특징
거리 개념이 있음 이름형 : 혈액형, 지역 거리개념이 없음. 원핫 코드로 표현
실수, 정수, 이진값 순서형 (학점, 수능 등급) : 거리 개념이 있어 정수를 부여하면 수치형으로 가능

 

 

필기 숫자 데이터셋을 가지고 프로그래밍을 연습해보자.

 

화소 8*8 64차원 특징 벡터가 2차원 구조로 있는데 이를 1차원 구조로 바꾸어야한다.

 

특징 벡터로 digit.data, 레이블로 digit.target을 사용했다.

맨 앞의 세 개 샘플을 테스트 집합으로 간주하고 new_d로 만들었으며 훈련 집합을 테스트집합으로 간주하여 정확도를 측정했다.

 

이처럼 성능을 측정해야하는데 이는 객관적이어야하며 모델 선택할 때 중요하다. 학습에 사용하지 않았던 새로운 데이터(테스트)에 대한 성능을 측정해야하며, 주어진 데이터를 분할하여 사용하는 지혜가 필요하다. 또한 경험적, 실험적으로 성능을 분석하는게 좋지만 비용문제가 발생한다.

 

 

 

 

 

 

혼동 행렬 (Confusion matrix)

부류 별로 옳은 분류와 틀린 부류의 개수를 기록한 행렬

이진 분류에서 긍정(positive)와 부정(negative)

- 검출하고자 하는 것이 긍정(환자가 긍정이고 정상인이 부정, 불량품이 긍정이고 정상이 부정)

- 참 긍정(TP) 거짓부정(FN), 거짓 긍정(FP), 참 부정(TN)의 네 경우가 있다.

정확도가 50%? -> 

모델이 보지못한 새로운 데이터에도 적용되는 일반화 능력이 중요하다.

 

 

고양이다 : positive -> 고양이 맞다 True, 고양이 아니다 False

고양이 아니다 : negative  -> 고양이 아니었다. True, 고양이 였다 False

 

순서: 맞췄나? -> 고양이였나?

 

 

위의 정확도, 민감도, 정밀도와 관련해서 쉬운 예시를 가져왔다. 고양이를 맞추는 인공지능을 제작하다고 가정해보자. 

 

- 정확도(Accuracy) : 잘 맞춘다. 고양이냐고 물어보니까 고양이였고. 아니냐고 하니까 아니였다. TT

- 민감도(Sensitivy) : 우리집 고양이가 아니라고 생각했는데, 사실 우리집 고양이 였다. or 고양이 인게 중요하다. 고양이라서 다행이였다. 

의료용에 사용하는 이유는. 코로나라고 가정하면 이해가 쉽다. 코로나를 맞추는건 당연히 중요하지만. 코로나인가 긴가민가 할 때가 있다. 평소라면 의심도 안할텐데, 건강한게(코로나가) 아니라고 해서 코로나를 맞출 수 있다. 이게 무슨 소린가 싶으면. 고양이를 다시 맞춰보자고 가정하자. 집 밖에서 우연치 않게 우리집 고양이를 마주쳤다고 생각해보자. 우리집 고양이가 아니라고 생각했는데. 사실 우리집 고양이 였던 것이다. 어서 집에 데려가자!

- 정밀도(Precision) : 일단 고양이라고 치고, 맞나? TF?TF?

정밀도 같은 경우 일단 고양이라고 생각한다. 내 생각이 맞을까? 얘가 고양이냐?를 묻는 질문이다.

 

 

 

필기랑 같이 보면 이해가 쉽다

 

분수 같은경우 오른쪽 그림을 보면 이해가 편하다 일단 TP가 분자이다. 그리고 위에 했던 질문을 분모에 넣으면된다.

 

정확률 = TP / TT

민감도 = TP/ TP + 사실 고양이였다. (이중부정) (FN)

정밀도 = TP/ TP + 고양이지? (남은 FP)

 

 

 

 

 

혼동 행렬과 성능 측정 기준

- 널리 쓰이는 성능 측정 기준 : 정확률 accuracy

부류가 불균형일 때 성능을 제대로 반영하지 못함

 

 

특이도(spectificity)와 민감도(sensitivity) (의료에서 주로 사용)

 

정밀도(precision)와 재현률(recall) 정보 검색에서 주로 사용

 

코로나인데 아니라고 하면 위험, True Postivie ? 영역이 더 중요

 

 

TVT

주어진 데이터를 적절한 비율로 훈련, 검증, 테스트 집합으로 나누어 사용한다.

 

모델 선택 포함 : 3단계 훈련/ 검증 / 데이터

모델 선택 제외 : 2단계 훈련 / 데이터

 

 

 

 

 

왜 Train/Validation 이 모델 선택 포함일까? - 모델을 선택하는 과정에서 Train 집합으로 학습하고, Validation 으로 성능을 평가한다. 따라서 좋은 모델을 고르기 위해 해당 데이터셋이 필요하다.

 

 

 

train_size를 통해 비율을 조절할 수 있다.

 

 

 

 

교차 검증

 

 

훈련/ 테스트 집합 나누기의 한계

- 우연히 높은 정확률 또는 우연히 낮은 정확률 발생 가능성

 

60:40으로 나누었을때, 쏠리는 현상이 발생할 수 있다. 

 

k-겹 교차 검증 (k-fold cross validation)

- 훈련 집합을 k개의 부분 집합으로 나누어 사용. 한 개를 남겨두고 k-1개로 학습한 다음 남겨둔 것으로 성능 측정. k개의 성능을 평균하여 신뢰도 높임.

 

(학습*4 테스트1) 부분집합으로 모두 쪼개어 모두 학습하고, 모두 테스타하는 방법. 집합을 체계적으로 바꿔가면서 모든 데이터에 대해 모형의 성과를 측정하는 검증 방식

 

 

특징 공간을 분할하는 결정 경계

인공 지능의 인식은 철저히 수학에 의존

- 샘플은 특징 벡터를 표현되며, 특징 벡터는 특징 공간의 한 점에 해당

- 인식 알고리즘을 원래 특징 공간을 성능을 높이는데 더 유리한 새로운 특징공간으로 여러 차례 변환한 다음 최종족으로 특징 공간을 분할하여 부류를 결정

 

 

 

이러한 특징 공간을 분할하는 결정 경계 (decision boundary)

 

결정 경계를 정하는 문제에서 고려해야하는 사항

- 비선형 분류기 사용 (nonlinear classifier)

직선은 정확하게 분류할 수 가 없는 경우가 있다.

 

- 과잉적합(overfitting) 회피

: 과잉 적합은 아웃라이러를 맞히려고 과다하게 복잡한 결정 경계를 만드는 현상

: 훈련 집합에 대한 성능은 높지만 테스트 집합에 대해서는 형편없는 성능 (낮은 일반화)

: 원인과 대처법은 5.6.2항에서 설명

 

 

 

 

 

기계학습의 목적은 일반화 능력을 극대화 하는 것이다. SVM은 일반화 능력을 높이려 여백을 최대화 한다.