본 게시글은 학부 강의 'AI 데이터 표현과 모델링'을 기반으로 이해하고 학습한 내용을 정리하였습니다.
Supervised Learning vs Unsupervised Learning
머신러닝은 크게 두 가지로 나뉩니다.
Supervised Learning
지도학습
누군가가 기계에게 피드백을 주는 방식.
"이 상황에서는 오른쪽이야"
"잘했어, 맞아"
라고 계속 뒤에서 피드백을 주는 거죠.
그 Supervised Learning은 또 두 가지로 나뉩니다.
데이터 기반 지도학습
문제집 방식이라 볼 수 있겠습니다. 과거의 모든 피드백 정보를 기록해 놓고 쓰는 방식.
문제집에 문제풀이가 있고 뒤에 답안지가 있는 것처럼, X(상황)와 Y(정답)의 쌍을 데이터로 모아놓고 학습합니다.
환경 기반 지도학습
강화학습, Reinforcement Learning
Physical AI와 로봇이 핫해지면서 다시 떠오른 학습 기법이죠.
게임 환경이나 바둑 룰처럼 환경이 즉각적으로 "살았네, 죽었네, 점수 몇 점" 등의 피드백을 주는 방식이에요.
Unsupervised Learning
비지도 학습
피드백 정보 없이 데이터 안에서 스스로 문제를 풀어내는 방식입니다. 아마 여기서는 다루지 않을 듯 싶어요.
Classification
설계 시점 Design Time
- N개의 Class 정의
- 먼저 분류할 클래스를 사전 정의(e.g. 정상, A병, B병, C병 | 총 4개)
- Network 구성
- Big & Deep Neural Network를 구성
이런 시스템을 개발할 때 가장 먼저 해야할 것은 서비스 디자이너가 몇 가지 클래스로 서비스를 할 것인가를 디자인하는 것.
이것은 머신러닝 하는 사람이 아니라 우리같은 사람이 해야하는 겁니다.
e.g.
감성 분석기
호텔 리뷰 데이터를 가지고 감성을 분류하는 시스템
| 다음에 또 가려구요! | Positive |
| 이게 좀 비좁은 느낌을 가져다 줄지도! | Negative |
| 역시나 비싼 호텔인가 싶었어요. | Neutral |
| 무료 Wi-Fi | Objective 감정 없이 객관적 사실만 언급 |
Class 설계 - Positive, Negative, Neutral, Objective
각 문장에 라벨을 붙여주는 작업을 Labeling 또는 Annotation 작업이라 부릅니다.
실행 시점 Running Time
- Input이 들어온다(문장).
- Neural Network가 처리
- 각 Class별로 Score(점수) 부여
- 가장 높은 Score를 가진 Class를 선택(Argmax)
Scoring의 수학적 구조
입력 $x_1, x_2, x_3, x_4, x_5$가 있고, 출력이 $y_1, y_2, y_3, y_4$(4개 클래스)일 때
$y_1 = f(W_{11}x_1 + W_{12}x_2 + W_{13}x_3 + W_{14}x_4 + W_{15}x_5 + b_1)$
$y_2 = f(W_{21}x_1 + W_{22}x_2 + W_{23}x_3 + W_{24}x_4 + W_{25}x_5 + b_2)$
이것은 Weighted Sum(가중합) 연산입니다. 각 출력 뉴런은 모든 입력의 가중합에 활성화 함수 f를 적용한 결과죠.
Classification의 암묵적 전제
Mutually Exclusive한 Class 부여
이 시스템은 모든 입력이 반드시 하나의 독립적이고 배타적인(exclusive) 클래스만 가진다는 것을 전제로 합니다. 실제로 한 문장이나 리뷰 안에 긍정적인 것도, 부정적인 것도 섞여 있을 수 있지만, 기본 분류 시스템은 하나의 클래스만 부여합니다.
확률적 해석의 주의점
각 Class의 Score를 다 더하면 합이 1.0이 나오도록 설계됩니다. 확률 모델이기 때문이죠. 예를 들어
$P(X|Class = A), P(X|Class = B), P(X|Class = C), P(X|Class = D)$를 다 더하면 1.0
여기서 주의할 점은
Score가 0.7이 나왔다고 해서 이 문장은 70% 확률로 중립이라고 일상적 의미로 해석하면 안됩니다.
이 숫자는 Softmax로 가공된 숫자일 뿐이고, 일상생활에서의 확률적 맥락과는 다를 수 있습니다.
모른다고 말할 수 없다
인간은 "나 이거 모르겠는데"를 알고 말할 수 있습니다. 그러나 현대의 분류 시스템은 어떤 X가 들어오더라도 무조건 정해진 Class중 하나를 선택합니다. 기본적으로 모른다고 말할 수 없는 구조에요.
그러한 이유로 출력을 맹신하면 안됩니다. 특히 Mission Critical한 시스템(자율주행, 미사일 버튼, 전력 제어 etc.), 실제 현실 세계에 영향을 미치는 시스템일수록 보수적으로 접근해야 합니다.
AI가 내놓는 결과의 의미를 기계적으로 정확히 알고 활용해야 해요.
Learning Problem
머신러닝이 정답을 맞추는 방향으로 학습하기 위해 해결해야할 4가지 문제가 있습니다.
1. Reference Representation 정답 표현
정답(Y)을 어떻게 숫자로 표현할 것인가?
정답은 One-Hot Representation으로 표현합니다.
예를 들면 4개 클래ㅅ(Positive, Negative, Neutral, Objective)에서 Positive이 정답이면
$$ [1, 0, 0, 0] - 정답 클래스 위치에 1.0 나머지는 0.0$$
라벨은 Tensor화하기 너무 쉽습니다. 그냥 One-Hot 하면 끝이에요.
2. Score Normalization 점수 정규화
예측값과 정답값을 비교하려면 같은 스케일이어야 합니다.
정답($Y$): 0.0 - 1.0 범위 (One-Hot이므로)
예측값($Y_hat$): $-∞ ~ ∞$ 범위 (Neural Network의 출력은 실수)
이 둘을 비교하려면 예측값을 같은 운동장으로 맞춰줘야 합니다. 이를 위해 Softmax Function을 사용합니다.
Softmax Function
$$\sigma(\mathbf{z})_i = \frac{e^{z_i}}{\sum_{j=1}^{k} e^{z_j}}$$
Softmax 특성
Softmax는 Exponent(지수) 함수의 조합입니다. 지수함수 $f(x) = e^x$의 특성
어떤 값이든 양수로 바꿔준다.
큰 값일수록 더욱 크게 만들어준다(지수적 증가).
$x$가 0일 때: $e^0 = 1$
$x$가 음수일 때 아무리 작은 음수라도 0과 1사이로 매핑
$x$가 양수일 때 지수적으로 커진다. 이는 양수 쪽에서는 굉장히 민감하고, 음수 쪽에서는 민감하지 않은 함수.
Softmax를 적용하면
값이 a, b, c 세 개가 있을 때
$S(a) = e^a / (e^a + e^b + e^c)$
$S(b) = e^b / (e^a + e^b + e^c)$
$S(c) = e^c / (e^a + e^b + e^c)$
이렇게 하면
각각의 값과 0과 1이 사이에 존재합니다. 분자가 분모보다 항상 작기 때문이죠.
세 값을 다 더하면 1.0이 됩니다. 분자의 합은 분모니까요.
이런 형태를 확률분포(Probability Distribution)이라 합니다.
숫자 포맷만 보면 정확히 확률분포의 포맷을 따릅니다. 그러니까 Softmax를 태우면 예측값이 아름답게 정답과 같은 꼴로 나와서 비교가 가능해져요.
3. Cost Fucntion Design 비용 함수 설계
Softmax를 거친 예측값(0 - 1)과 정답값(0 - 1()의 차이를 어떻게 수치화할 수 있을까요?
$Y$(정답)와 $hat{Y}$을 비교하는 함수를 설계해야 합니다. 이 함수의 다양한 이름들을 알아두는게 좋아요.
| Objective Function | 테스크의 목적을 달성하기 위한 함수 |
| Cost Function | 정답에 가깝게 만들려면 비용이 드는데, 그 비용의 관점 |
| Error Function | 정답에 비해 틀렸다는 관점 |
| Loss Function | 정답에 못 미치기 때문에 손실이 발생했다는 관점. ML 분야에서 가장 많이 사용하고, $L$로 표기 |
어떤 Loss Function이든 반드시 미분 가능(differentiable)해야 합니다. 미분이 가능해야 파라미터 업데이트가 가능하기 때문이죠.
Cross Entropy
두 확률 분포 A와 B가 있을 때, 이 둘이 얼마나 다른지를 측정하는 메트릭이 KL Divergence(KLD)입니다.
KLD는 확률 및 통계/정보과학 이론에서 널리 알려진 metric이에요.
KLD는 방향성이 있습니다. 즉, A에 대한 B의 비용과 B에 대한 A의 비용이 다르죠.
이 방향성을 없애려 한다면 Entropy라는 개념이 나오고 거기서 Cross Entropy가 도출됩니다.
수학적 유도는 나중에 알아보도록 해요. 실무에서는 분류 문제에 Cross Entropy를 갖다 쓰면 됩니다.
https://neverthe1ess.tistory.com/300
Parameter Update
오류가 작아지는 비아향으로 파라미터를 어떻게 업데이트 할까요?
Gradient와 미분
Loss Function $L$이 있을 때, L을 0에 가깝게 만들어야 합니다. 그러나 복잡한 함수에서 해를 직접 구하는 것은 불가능합니다. n차 방정식에서는 deterministic한 해가 없어요.
Newton's Method 에서 아이디어를 찾습니다.
현재 지점에서 미분(기울기, Gradient)을 구합니다.
Gradient가 양의 값이면 왼쪽으로 이동해야 극점에 가까워지죠.
Gradient가 음의 값이면 오른쪽으로 이동해야 극점에 가까워집니다.
이동을 반복하면 어느 순간 Gradient가 0이 되는 지점(극점)에 도달합니다.
$$\theta_{t+1} = \theta_t - \eta \nabla J(\theta_t)$$
Local Optimum vs Global Optimum
Loss Function의 landscape에는 여러 개의 극소점이 있을 수 있습니다.
- Global Optimum: 전체에서 가장 낮은 점
- Local Optimum: 지역적으로 낮은 점
옛날에는 머신러닝이 Local Minimum 밖에 못 찾으니까 성능이 이것밖에 안된다고 많이들 얘기했었습니다. 그러나 최근의 경험적 발견에 따르면 굉장히 큰 Loss Funciton에는 엄청나게 많은 Local Optimum과 Global Optimum이 존재하고, 그 중 어느 하나만 찾아도 일상생활의 문제를 푸는 데 문제 없다는 겁니다. 데이터가 충분히 많기만 하면 말이죠.
Backpropagation Algorithm
실제 파라미터 업데이트를 수행하는 알고리즘
- Feed Forward and Prediction
- 입력 → 네트워크 → 출력(예측값)
- Cost Function
- 예측값과 정답의 차이 계산
- Differentiation(미분)
- 그 차이가 무엇으로 인해 생기는 지 파악
- Backpropagation
- 역으로 내려가면서 각 파라미터의 기여도를 추정
- Weight Update
- 새로운 파라미터 값으로 업데이트
이걸로 노벨상을 받은 사람이 제프리 힌튼(Geoffrey Hinton) 교수입니다. 2년 전에 몇몇 학자와 공동으로 받았어요. 아무리 커다란 Deep Neural Network를 만들더라도 모든 파라미터가 자동으로 업데이트되는 알고리즘을 만들었기 때문에 딥러닝이 가능해진 것이고, 그래서 노벨상을 받았습니다.
실무적인 관점에서 중요도를 봐볼께요.
| Reference Representation | 데이터 수집 / 설계 시 직접 해야 함 | 유일하게 매번 신경 써야 하는 부분 |
| Score Normalization | Softmax 등 정해진 것 갖다 쓰면 됨 | 거의 건드릴 일 없음 |
| Cost Function | 문제 유형에 따라 정의되어 있음 | 모르면 ChatGPT에 물어보면 됨 |
| Parameter Update | PyTorch / TensorFlow가 자동으로 해줌 | 할 거 없음 |
Reference Representation 빼고 나머지는 다 자동화되어 있습니다. 유일하게 문제가 바뀔 때마다 신경을 많이 써야 할 것은 데이터에요. 이 데이터를 어떻게 수집할 것인지, 수집된 걸 어떻게 labeling할 것인지 의 문제입니다.
추상화된 관점에서 Deep Learning Classification을 봐볼께요.
Training = Annotated Data
이 키워드에 의해 가이드 된다고 보면 될 것 같아요.
모든 것은 Numbers(숫자) 입니다.
Input도 Numbers, Output도 Numbers, Reference도 Numbers
Annotated Data(라벨링된 데이터)가 학습을 이끕니다.
'CS & AI > Welcome to AI' 카테고리의 다른 글
| 이제 우리는 매트릭스 세상을 만들 수 있을지도 (0) | 2026.04.25 |
|---|---|
| 우리도 딥러닝 만들 수 있어요 (0) | 2026.04.25 |
| 이제는 '대' 지피티 세상 (0) | 2026.04.18 |
| 인공신경망 (0) | 2026.04.17 |
| 아날로그에서 디지털로 (0) | 2026.04.13 |
나의 성장 드라마
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!