인공지능과 기계학습
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을 수행하면 될테니깐.

이렇게 생겼고, 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을 써보도록 하겠다.
'AI' 카테고리의 다른 글
| [딥러닝] Numpy Basic Concepts (0) | 2024.04.16 |
|---|---|
| [딥러닝] 기초 - Learning Curves 이해하기 (0) | 2024.04.13 |
| [딥러닝] Feature Scaling (0) | 2024.04.11 |
| [머신러닝] 3 Kinds of Machine Learning (0) | 2024.04.11 |
| [딥러닝] Linear Regression (선형 회귀) (2) | 2024.03.16 |