우와한 개발자

[AI 기초] AI가 학습(Learning)한다는 의미는 무엇일까?

by 우와한개발자

AI

요즘 수많은 기업과 서비스에서 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)

입력 → 예측 → 정답 비교 → 오차 계산 → 파라미터 수정 → 반복

각 단계를 구체적으로 풀면:

  1. 입력(Forward pass): 데이터를 모델에 통과시켜 예측값을 산출한다.
  2. 오차 계산(Loss): 예측값과 실제 정답의 차이를 loss function으로 수치화한다. (ex. MSE, Cross-Entropy)
  3. 역전파(Backpropagation): 오차에 대한 각 파라미터의 기여도, 즉 gradient를 계산한다. 미적분의 연쇄법칙(chain rule)을 재귀적으로 적용한다.
  4. 파라미터 갱신(Gradient Descent): 계산된 gradient의 반대 방향으로 파라미터를 조금씩 이동시킨다.
    (   θ = θ - α · ∇L(θ) ) : α는 학습률(learning rate), ∇L(θ)는 loss에 대한 gradient다. 
  5. 반복: 이 과정을 수천~수백만 번(epoch/iteration) 반복하면 모델은 점점 더 나은 예측을 하게 된다.

역전파? gradient?

더보기

역전파(Backpropagation)

- 신경망의 예측 오차를 뒤에서부터 전달하여 각 가중치가 얼마나 수정되어야 하는지 계산하는 알고리즘

파라미터 A → 노드 B → 노드 C → 최종 오차

파라미터 A가 오차에 얼마나 영향을 줬는지 알려면
C에 대한 영향 × B에 대한 영향 × A에 대한 영향을 차례로 곱하며 역으로 추적

 

gradient

- 어느 방향으로 얼마나 수정해야 하는지"를 알려주는 값

- gradient가 크면 "이 파라미터 많이 틀렸으니 크게 수정해" / gradient가 작으면 "이 파라미터 조금 틀렸으니 살짝만 수정해"

 

5. 왜 "학습"이라고 부르는가

단순한 최적화 문제라면 그냥 "파라미터 튜닝"이라고 부를 수도 있다. 그런데 굳이 "학습"이라는 단어를 쓰는 이유가 있다.

모델은 훈련 데이터에서 본 적 없는 새로운 데이터에도 작동해야 한다. 이를 일반화(generalization)라고 한다. 단순히 훈련 데이터를 암기(memorization)하는 것이 아니라, 데이터 속에 숨겨진 패턴과 구조를 추출해내기 때문에 "학습했다"고 말할 수 있다.

고양이 사진 100만 장으로 훈련한 모델이 처음 보는 고양이 사진을 맞히는 것, 그것이 학습이 단순한 암기와 다른 이유다.

6. 핵심 정리

학습 = 데이터로 모델 파라미터를 최적화하는 과정
     = 훈련 데이터의 패턴을 파라미터에 압축·인코딩하는 과정
     = 보지 못한 데이터에도 일반화될 수 있는 규칙을 귀납하는 과정

결국 AI가 "학습한다"는 것은, 
수백만 개의 숫자를 조금씩 조정하는 반복 계산을 통해 인간이 명시하지 않은 규칙을 데이터로부터 스스로 발견하는 것이다.

블로그의 정보

우와한개발자 님의 블로그

우와한개발자

활동하기