[AI 기초] AI가 학습(Learning)한다는 의미는 무엇일까?
by 우와한개발자
요즘 수많은 기업과 서비스에서 AI를 도입하고 있다. 단순 반복 업무부터 코드 작성, 데이터 분석까지 개발자든 아니든 AI를 한 번도 안 써본 사람을 찾기가 더 어려울 정도다. 이 모든 것이 가능한 이유는 AI가 학습을 했기 때문이다. 그렇다면 AI가 학습한다는 건 대체 무슨 말일까?
1. 우리가 생각하는 "학습"
사람이 학습한다고 할 때, 우리는 보통 이런 장면을 떠올린다. 처음엔 자전거를 타다 넘어지고, 수십 번 반복하다 보면 어느 순간 몸이 균형을 기억한다. 명시적으로 "무게 중심을 x축으로 2.3° 기울여라"라는 규칙을 외운 게 아니다. 경험을 통해 내부 상태가 바뀐 것이다. AI의 학습도 본질적으로 이와 같다.
2. AI에서 말하는 학습의 핵심 정의
데이터를 이용해 모델의 파라미터를 조정하는 과정
여기서 핵심 키워드는 두 가지다.
1) 파라미터(parameter)
- 모델이 내부적으로 가지고 있는 조절 가능한 숫자들(모델 내부의 수치값).
- 신경망 기준으로 수백만~수천억 개의 가중치(weight)와 편향(bias)으로 구성
2) 조정(optimization)
- 파라미터를 올바른 값으로 찾아가는 과정
- 정해진 손실 함수(loss function)를 최소화하는 방향으로 파라미터를 반복적으로 갱신하는 것.
즉, 학습이란 "어떤 파라미터 조합이 주어진 데이터를 가장 잘 설명하는가"를 수치적으로 탐색하는 과정이다.
신경망? 가중치? 편향? 손실함수?
신경망(Neural Network)
- 뇌의 뉴런 구조를 흉내낸 모델.
- 여러 개의 노드(뉴런)가 연결되어있고, 각 연결선마다 가중치가 있다.
입력층 은닉층 출력층
[스팸단어] → [판단노드들] → [스팸 / 정상]
[발신자] → ... →
[링크수] → →
가중치(Weight)
- 연결의 중요도(가중치가 클수록 그 입력이 결과에 많은 영향을 미침).
- 학습을 통해 어떤게 중요한지 스스로 발견한다.
"무료" 라는 단어 → (가중치: 0.9) → 스팸 판단 노드
"안녕하세요" → (가중치: 0.1) → 스팸 판단 노드
편향(Bias)
- 판단 기준점을 조절하는 숫자.
- 저울로 비유하면, 가중치는 각 재료의 무게고 편향은 저울 자체를 기울이는 것. 편향이 없으면 모델이 표현할 수 있는 패턴이 너무 제한적이다.
최종 점수 = (입력 × 가중치) + 편향
손실 함수(loss function)
- 얼마나 틀렸는지 점수를 매기는 함수.
- 학습의 목표는 이 점수를 최대한 0에 가깝게 줄이는 것이고, 그 과정에서 파라미터가 조정되는 것이다.
정답: 고양이
예측: 강아지
차이: 완전히 틀림 → 점수: 높음 (많이 틀렸으니까)
정답: 고양이
예측: 고양이
차이: 없음 → 점수: 0 (안 틀렸으니까)
3. 일반 프로그램과의 차이
이 차이를 이해하는 게 머신러닝의 출발점이다.
- 일반 프로그램 (Rule-based)
데이터 → 규칙(if문) → 결과
→ 개발자가 직접 규칙을 작성한다. 스팸 필터라면 "특정 단어가 포함되면 스팸으로 분류"라는 조건을 명시적으로 코딩한다. 규칙이 명확할 때는 강력하지만, 규칙이 복잡하거나 예외가 많아지면 한계에 봉착한다.
- 머신러닝
데이터 → 학습 → 규칙(모델) → 결과
→ 규칙을 직접 작성하지 않는다. 대신 데이터를 보여주고, 모델이 스스로 규칙을 찾아내도록 한다. 개발자의 역할은 규칙을 직접 짜는 것에서, "어떤 구조로 학습할 것인가 (모델 아키텍처)"와 "틀렸을 때 오차를 어떤 방식으로 정의할 것인가(손실 함수)"를 설계하는 것으로 이동한다.
4. 학습 과정 (Training Loop)
입력 → 예측 → 정답 비교 → 오차 계산 → 파라미터 수정 → 반복
각 단계를 구체적으로 풀면:
- 입력(Forward pass): 데이터를 모델에 통과시켜 예측값을 산출한다.
- 오차 계산(Loss): 예측값과 실제 정답의 차이를 loss function으로 수치화한다. (ex. MSE, Cross-Entropy)
- 역전파(Backpropagation): 오차에 대한 각 파라미터의 기여도, 즉 gradient를 계산한다. 미적분의 연쇄법칙(chain rule)을 재귀적으로 적용한다.
- 파라미터 갱신(Gradient Descent): 계산된 gradient의 반대 방향으로 파라미터를 조금씩 이동시킨다.
( θ = θ - α · ∇L(θ) ) : α는 학습률(learning rate), ∇L(θ)는 loss에 대한 gradient다. - 반복: 이 과정을 수천~수백만 번(epoch/iteration) 반복하면 모델은 점점 더 나은 예측을 하게 된다.
역전파? gradient?
역전파(Backpropagation)
- 신경망의 예측 오차를 뒤에서부터 전달하여 각 가중치가 얼마나 수정되어야 하는지 계산하는 알고리즘
파라미터 A → 노드 B → 노드 C → 최종 오차
파라미터 A가 오차에 얼마나 영향을 줬는지 알려면
C에 대한 영향 × B에 대한 영향 × A에 대한 영향을 차례로 곱하며 역으로 추적
gradient
- 어느 방향으로 얼마나 수정해야 하는지"를 알려주는 값
- gradient가 크면 "이 파라미터 많이 틀렸으니 크게 수정해" / gradient가 작으면 "이 파라미터 조금 틀렸으니 살짝만 수정해"
5. 왜 "학습"이라고 부르는가
단순한 최적화 문제라면 그냥 "파라미터 튜닝"이라고 부를 수도 있다. 그런데 굳이 "학습"이라는 단어를 쓰는 이유가 있다.
모델은 훈련 데이터에서 본 적 없는 새로운 데이터에도 작동해야 한다. 이를 일반화(generalization)라고 한다. 단순히 훈련 데이터를 암기(memorization)하는 것이 아니라, 데이터 속에 숨겨진 패턴과 구조를 추출해내기 때문에 "학습했다"고 말할 수 있다.
고양이 사진 100만 장으로 훈련한 모델이 처음 보는 고양이 사진을 맞히는 것, 그것이 학습이 단순한 암기와 다른 이유다.
6. 핵심 정리
학습 = 데이터로 모델 파라미터를 최적화하는 과정
= 훈련 데이터의 패턴을 파라미터에 압축·인코딩하는 과정
= 보지 못한 데이터에도 일반화될 수 있는 규칙을 귀납하는 과정
결국 AI가 "학습한다"는 것은,
수백만 개의 숫자를 조금씩 조정하는 반복 계산을 통해 인간이 명시하지 않은 규칙을 데이터로부터 스스로 발견하는 것이다.
'AI' 카테고리의 다른 글
블로그의 정보
우와한개발자 님의 블로그
우와한개발자