AI

[딥러닝] Machine Learning Basics

EddyLee 2024. 3. 15. 18:28

인공지능과 기계학습

Terminology

인공지능 = Artificial Intelligence = AI

기계학습 = Machine Learning = ML

 

: 인공지능이 더 넓은 범위, 기계학습(Machine Learning)은 그 안에 포함돼있다.

: 머신러닝이 아닌 인공지능은 지식 창고 (knowledge base), Rule-based system이 있다.

(판단이 복잡하지 않고 if나 else문으로 프로그래밍이 가능한 것들)

 

 

전통적인 프로그래밍 vs 기계학습

* 전통적인 프로그래밍

입력 Data -> 프로그램 -> 출력 데이터

 

* ML

1. forward propagation

입력 데이터 -> 프로그램 (가변 파라미터 = 가중치 = weight를 수정) -> 출력데이터

2. backward propagation

출력 데이터 -> 프로그램 (가변 파라미터 = 가중치 = weight를 수정)

 

즉, forward propagation과 backward propagation이 존재한다.

프로그램에서 출력 데이터로 가는 부분에서 cycle을 형성하게 됨.

그러니까 forward를 하고 나온 출력으로 정답과 비교하여 더 나은 프로그램을 위해 가중치를 수정하는 것. 

그게 기존 프로그램과 다른 점이다.

 

training 하는 과정 : forwad propagation & backward propagation

학습이 충분하게 되면, backward propagation을 할 필요는 없어지는 것.

(on-device AI에선 사실 forward propagation만 하고 싶어 한다.) ~ 당연하겠지! 한번에 가장 좋은 가중치를 뽑아내고 싶어하기 때문.

 

 

Performance Metrics (성능 지표) for Binary Classifier

binary classifier이란, Yes 혹은 No를 판단하는 분류기를 뜻함.

(모든 ML Classifier은 binary classifier가 근본/본질이 된다.)

이 binary classifier가 잘 분류하는지 판단하는 성능 지표는 어떻게 될까

 

Terminology

1) Confusion Matrix 

: 오차 행렬

2) Type 1 and Type 2 Errors

3) Accuracy (정확도)

4) Precision (정밀도)

5) Recall (재현도)

== Sensitivity (민감도)

6) Specificity (특이도)

7) F1 score

 

=> 구체적인 것들은 confusion matrix와 같이 설명하겠다.

 

Confusion Matrix란

"오차 행렬"이라고 불린다.

쉽게 말하면 분류기에서 어떻게든 분류를 하고 나서, 잘 분류했는지 case들을 확인하며 위에 있는 정확도, 정밀도, 재현도 등등을 판단할 수 있는 행렬이라고 생각하면 된다.

기본적으로 test data를 기준으로 표가 만들어 질 수 있을 거라고 유추할 수 있다.

이 표를 보고 모델의 상태를 판단, weight를 수정하는 backward propagation을 수행하면 될테니깐.

 

 

confusion matrix

이렇게 생겼고, Actual data와 Predicted data가 존재. 말 그대로 두 행은 실제 데이터의 label.

두 열은 분류기가 분류한 data의 label들.

 

Actual label이 N - Predicted label이 N : "TN (True Negative)"

Actual label이 P - Predicted label이 P : "TP (True Positive)"

이 상태가 가장 best인 것을 알 수 있다.

분류 예측이 성공한 것이니까.

 

그렇다면 우리는

Actual label이 N - Predicted label이 P : "FP (False Positive)"

Actual label이 P - Predicted label이 N : "FN (False Negative)"

FN와 FP 속에 분류기가 주루루룩 데이터를 나열했다면,

둘의 가치는 항상 똑같을까? 분류기가 어떤 쪽에 데이터를 더 넣어놨다면 뭐가 더 worse인가 질문할 수 있다.

 

나중에 보면 알겠지만, FP인 부분을 Type 1 Error이라고 부르고, FN인 부분을 Type 2 Error이라고 부른다.

 

예시를 들어보면 다음과 같다.

 

데이터 : 사람

분류기에게 질문 : "이 사람은 죄가 있는가"

결과 : Yes (Positive) or No (Negative)

 

첫 번째 상황.

죄가 없는 사람이 들어왔다. (Actual은 N)

분류기에 의해 죄가 있다고 판정지어졌다. (Predicted는 P)

=> 죄가 없는 사람은 분류기가 죄가 있다고 했다. 

두 번째 상황.

죄가 있는 사람이 들어왔다. (Actual은 P)

분류기에 의해 죄가 없다고 판정지어졌다 (Predicted는 N)

=> 죄를 지은 사람은 분류기가 죄가 없다고 했다.

 

첫 번째 사람은 죄가 없는 사람인데 (귀무가설, 인간의 태생) 죄가 있다고 한 것이므로 기존의 가설이 무너짐

따라서 Type 1 Error가 더 중요하게 여겨진다고 볼 수 있다.

하 참 설명이 애매한데, 아래 블로그를 참고하시길!

 

아무튼 기존의 가설 자체를 부정해버리는 것이 Type 1 Error이므로, 더 엄격한 기준으로 막아야 한다.

 

 

 

통계검정에서 1종오류가 2종오류보다 중요한 이유

통계검정에서 1종오류가 2종오류보다 중요한 이유 통계검정에는 1종오류와 2종오류가 있습니다. 오류를 설명하기 전에 먼저 귀무가설과 대립가설을 설명드리겠습니다. 우리가 제약회사에서 일

hsm-edu.tistory.com

 

 

1. Accruacy (정확도)

Accuracy는 분류기의 정확도 (확률).

=> 제일 근본적인 performance metrics

(TP + TN) / (TP + TN + FP + FN)

=> 분류기 모델의 Error rate = 1 - Accuracy

 

 

2. Precision (정밀도)

Precision은 분류기의 정밀도.

"분류기가 P일 때, 실제로 P인 것의 확률은?" "즉 분류기의 정밀도는 몇퍼센트냐?"

TP / (TP + FP)

=> Type 1을 신경쓴 것 (귀무가설에 대해 분류기가 어떻게 반응했느냐)

 

 

3. Specificity (특이도)

"실제 데이터가 N일 때, 분류기가 실제로 N이라고 분류한 것의 확률은?"

TN / (TN + FP)

 

 

4.R Recall (재현도)

"실제 데이터가 P일 때, 분류기가 실제로 P라고 분류한 것의 확률은?"

TP / (TP + FN)

=> Type 2를 신경쓴 것

 

 

5. F1 Score 

Precision과 Recall의 조화 평균.

2 / (1/Precision + 1/Recall)

 

 

 

3 kinds of ML

1) Supervised Learning (지도 학습)

: 데이터의 정닶 출력 값을 아는 상태에서, 입력 데이터를 넣어서 돌리고, predicted된 것과 정답값을 비교하여 weight 수정

ex. 분류

 

- Linear Regression (= Least Squares Regression)

: Continuous value prediction -> 특정 값을 예측하는 모델

- Logistic Regression (= Sigmoid Regression = Maximum Cross Entropy Regression)

: Discrete binary classification

: 0아니면 1 / 둘 중 하나의 label이 존재하는 상황에서 데이터에게 둘 중 하나를 분류해주는 모델

: 값이 1개로 나오면 되니까 performance가 확률로 나옴. 이때 확률은 logistic 함수 이기 때문에, 여기서의 최적의 오차는 cross entropy로 나오게 된다. (잘 알아놔야하는 포인트)

- Softmax Regression (= Multinomial Logistic Regression)

: Discrete multiclass classification

: 여러 class, 즉 여러 label 중에서 데이터에게 하나의 label을 분류해주는 모델.

- Support Vector Machine (SVM)

- Decision Tree

- Random Forest

 

<POINT>

1. 여기서 위에 3개가 DL(Deep Learning)에 연관이 있는 모델들.

2. Logistic Regression과 Softmax Regression은 classification이라는 것, 분류모델이라는 것.

 

2) Unsupervised Learning (비지도 학습)

: 정답값 없음. 입력 데이터를 넣어서 돌리고, 나온 출력들의 특성을 서로 비교하는 과정.

ex. 생성형 AI ("이미지에 구멍 뚫고 채워줘" -> 해당 사진과 관련된 data가 많으니까 그걸로 비지도 학습 -> 이미지 채움)

ex. 군집화

- K-means Clustering (K-평균 군집화)

 

3) Reinforcement Learning (강화 학습)

: 보상함수(reward function)이 존재. 입력 데이터를 넣었을 때 나온 결과를 보고, 보상을 계산.

ex. 알파고 (바둑에서 결과 상태가 좋은지 안 좋은지 바로 판단을 못하기 때문에, 보상계산을 쭉 하고 결과를 반환함)

- Temporal Difference, SARSA, Monte-Carlo, Q-Learning

 

 

 


TIL

이렇게 머신러닝이 무엇인지, 과정이 어떻게 되는지 간단하게 알아보았고

분류기 중 가장 기반이 되는 이진 분류기를 통해 performance metrics에 대해 알아보았다.

특히 confusion matrix는 중요한 성능지표이므로 잘 기억해두자.

또한 지도, 비지도, 강화 학습에 대해 알아보고 이것들의 대표적인 예시 모델을 알아보았다.

각 학습에 대한 특징(특성)을 잘 알아야하고, 어떤 mechanism으로 돌아가는지 알아놓자.

다음 글부턴 Linear Regression을 써보도록 하겠다.