Lasiyan
Tech

딥러닝 용어정리 1 : 예시로 이해하는 기본 개념

#DeepLearning#YOLO#Tensor

딥러닝을 처음 공부하면 텐서, TensorFlow, YOLO, 모델, 알고리즘, 학습, 추론 같은 용어가 한꺼번에 쏟아져 헷갈리기 쉽습니다. 이 글에서는 카메라 영상에서 차량을 탐지하는 시스템을 하나의 예시로 삼아, 딥러닝의 전체 흐름과 핵심 개념을 순서대로 정리합니다.

다루는 개념은 다음과 같습니다.

  • 텐서, 데이터셋, 라벨, 바운딩 박스
  • 모델, 학습, 손실값, 가중치, 추론
  • 학습/검증/테스트 데이터 분리
  • TensorFlow(프레임워크) vs YOLO(모델 구조) vs 알고리즘(학습 방법)
  • 모델 종류, 과적합, 성능 지표

큰 그림부터

도로에 설치된 카메라가 있고, 이 영상에서 차량을 자동으로 찾는 프로그램을 만들고 싶다고 하겠습니다.

사람은 영상을 보고 “오른쪽에 차량이 있다”고 바로 말할 수 있습니다. 하지만 컴퓨터가 보는 이미지는 결국 숫자입니다. 카메라 이미지 한 장은 보통 다음과 같은 숫자 배열로 바뀝니다.

480 x 640 x 3

480은 세로 픽셀 수, 640은 가로 픽셀 수, 3은 RGB 색상 채널을 의미합니다. 딥러닝에서는 보통 이미지 데이터를 높이 x 너비 x 채널, 즉 H x W x C 형태로 표현합니다.

이처럼 딥러닝에서 다루는 숫자 배열 형태의 데이터를 텐서(tensor) 라고 합니다.

즉, 사람은 이미지를 눈으로 보지만 딥러닝 모델은 이미지를 텐서로 받아들입니다.


딥러닝은 규칙을 직접 만들지 않습니다

일반적인 프로그래밍으로 차량을 찾는다면, 개발자가 직접 규칙을 작성하게 됩니다.

예를 들면 다음과 같습니다.

바퀴가 있으면 차량입니다.
번호판이 있으면 차량입니다.
차체 모양이 있으면 차량입니다.

하지만 실제 도로 영상은 변수가 너무 많습니다.

차량이 멀리 있을 수도 있고, 밤이라 어두울 수도 있습니다. 비가 오거나, 다른 차량에 가려질 수도 있습니다. 이 모든 상황을 사람이 규칙으로 일일이 작성하는 것은 현실적으로 어렵습니다.

딥러닝은 접근이 다릅니다.

차량 이미지와 정답을 대량으로 보여주면, 모델이 차량의 특징을 스스로 학습하고 새로운 이미지에서도 차량을 찾아냅니다.

핵심은 사람이 규칙을 만드는 것이 아니라, 데이터를 통해 모델이 규칙을 배우게 한다는 점입니다.


데이터셋: 모델이 공부하는 재료

차량 탐지 모델을 만들려면 먼저 데이터가 필요합니다.

예를 들어 다음과 같은 이미지들을 모을 수 있습니다.

도로 위 차량 이미지
주차장 차량 이미지
고속도로 차량 이미지
CCTV 차량 이미지

이처럼 학습에 사용할 이미지들의 모음을 데이터셋(dataset) 이라고 합니다.

다만 이미지만 많이 모은다고 학습이 되는 것은 아닙니다. 모델이 배우려면 정답도 함께 있어야 합니다.


라벨: 데이터에 붙은 정답

객체 탐지에서 모델에게 알려줘야 하는 정답은 두 가지입니다.

  1. 무엇인가
  2. 어디에 있는가

차량 탐지라면 라벨은 다음과 같습니다.

class: car
bbox: x, y, width, height

단순히 “이 이미지에 차량이 있다”가 아니라, 차량이 이미지 안 어디에 있는지까지 표시해야 합니다.

이 위치 정보는 보통 사각형으로 표현하며, 이를 바운딩 박스(bounding box) 라고 합니다.


모델: 입력을 받아 결과를 예측하는 구조

딥러닝에서 모델은 입력을 받아 결과를 예측하는 구조입니다.

차량 탐지 모델의 입출력은 다음과 같습니다.

입력: 카메라 이미지(텐서)
출력: 차량 위치 + 차량일 확률

예측 결과는 이런 형태가 됩니다.

confidence: 0.93
bbox: x=120, y=80, w=200, h=100

처음부터 모델이 차량을 잘 찾는 것은 아닙니다. 초기 모델은 거의 아무것도 모르는 상태입니다. 그래서 많은 이미지와 정답 라벨로 학습시켜야 합니다.


학습: 틀린 것을 고쳐가는 과정

학습은 모델이 데이터를 보며 점점 더 잘 예측하도록 만드는 과정입니다.

예를 들어 모델이 차량 위치를 “화면 왼쪽, 확률 60%”로 예측했다고 하겠습니다. 그런데 정답 라벨은 “차량이 화면 중앙에 있다”입니다.

이때 모델의 예측과 정답 사이에는 차이가 있습니다. 이 차이를 수치화한 것이 손실값(loss) 입니다. 손실값은 모델이 얼마나 틀렸는지를 나타냅니다.

학습은 다음 과정을 반복합니다.

이미지 입력 → 예측 → 정답과 비교 → 손실값 계산 → 내부 값 수정 → 다시 예측

이 과정을 수천, 수만 번 반복하면서 모델은 점점 차량을 잘 찾게 됩니다.


가중치: 모델 안에 저장되는 학습 결과

모델이 학습하면서 내부 숫자값이 계속 바뀌는데, 이 값을 가중치(weights) 라고 합니다.

학습 전 모델은 차량 특징을 모르는 상태입니다. 하지만 차량 이미지를 많이 학습하면 모델 내부에 차량을 구분하기 위한 숫자값들이 자리 잡습니다.

즉, 가중치는 모델이 학습한 결과 그 자체라고 볼 수 있습니다.

실제 서비스를 만들 때는 이렇게 학습된 가중치를 파일로 저장한 뒤, 실제 프로그램에 불러와 사용합니다.


학습 / 검증 / 테스트 데이터는 다릅니다

딥러닝에서는 데이터를 보통 세 종류로 나눕니다.

구분역할비유
학습 데이터모델이 직접 공부문제집
검증 데이터학습 중간 점검, 설정 조정모의고사
테스트 데이터최종 성능 평가최종 시험

검증 데이터는 학습이 잘 되고 있는지 확인하고, 학습 횟수·학습률·모델 구조·데이터 양 같은 설정을 조정하는 근거가 됩니다.

테스트 데이터는 모델을 고치는 용도가 아닙니다. 마지막 시험지처럼, 모델이 실제로 얼마나 잘하는지 평가하는 데만 씁니다. 테스트 데이터로 모델을 다시 손대기 시작하면 평가의 의미가 사라집니다.


추론: 학습된 모델을 실제로 사용하기

학습이 끝나면 모델을 실제 프로그램에 넣어 사용합니다. 실제 카메라 영상이 들어오면 모델이 차량을 찾아냅니다. 이 과정을 추론(inference) 이라고 합니다.

카메라 영상 → 텐서 변환 → 모델 입력 → 차량 위치·확률 출력

이미지를 텐서로 변환하는 과정은 학습과 추론 모두에서 동일하게 일어납니다. 차이는 그다음입니다.

학습은 출력을 정답과 비교해 가중치를 수정합니다. 반면 추론은 출력을 그대로 결과로 사용합니다.

정리하면, 학습은 모델을 만드는 과정이고 추론은 만든 모델을 사용하는 과정입니다.


도구 · 모델 · 방법 구분하기

입문자가 가장 많이 헷갈리는 지점이 TensorFlow, YOLO, 알고리즘의 관계입니다. 이 셋은 서로 다른 범주에 속합니다.

TensorFlow — 딥러닝 프레임워크(도구)

TensorFlow는 딥러닝 모델을 만들고, 학습시키고, 실행하는 데 쓰는 프레임워크입니다. 텐서 계산, 모델 구성, 학습 실행, 손실값 계산, 가중치 수정, 모델 저장·배포까지 도와줍니다.

비유하자면 공장 또는 작업 도구입니다.

같은 범주의 도구로 PyTorch, JAX 등이 있습니다.

YOLO — 객체 탐지 모델(설계도/구조)

YOLO는 이미지나 영상에서 객체의 종류와 위치를 찾는 대표적인 객체 탐지 모델입니다.

차량 탐지 예시에서는 이미지를 받아 차량 유무를 판단하고, 위치 박스를 그리고, 확률을 출력합니다.

비유하자면 차량을 찾아내는 기계의 설계도에 해당합니다.

같은 범주의 모델로 Faster R-CNN, DETR 등이 있습니다.

YOLO가 반드시 TensorFlow에서만 동작하는 것은 아닙니다. YOLO는 PyTorch 같은 다른 프레임워크에서도 구현·실행할 수 있습니다. 실무 예제에서는 YOLO가 PyTorch 기반으로 제공되는 경우도 많습니다.

중요한 것은 프레임워크와 모델 구조를 구분하는 것입니다.

공장(TensorFlow)에서 기계(YOLO)를 만들 수 있습니다.
하지만 기계(YOLO)는 다른 공장(PyTorch)에서도 만들 수 있습니다.

알고리즘 — 모델이 학습하는 방법

딥러닝에서 알고리즘이라는 말은 문맥에 따라 넓게 쓰이기도 하고 좁게 쓰이기도 합니다.

좁은 의미에서 학습 알고리즘은 손실값을 줄이기 위해 가중치를 어떻게 수정할지 정하는 방법입니다. 예를 들어 경사하강법(gradient descent), 역전파(backpropagation), Adam 같은 최적화 방법이 여기에 속합니다.

넓은 의미에서는 YOLO처럼 객체를 탐지하는 전체 방식도 알고리즘이라고 부르기도 합니다.

다만 이 글에서는 헷갈리지 않도록 다음과 같이 구분하겠습니다.

프레임워크(도구)    = TensorFlow, PyTorch, JAX
모델 구조(설계)     = YOLO, Faster R-CNN, DETR
학습 알고리즘(방법) = 경사하강법, 역전파, Adam 등
텐서(재료)          = 모델에 들어가는 숫자 데이터

실제 개발에서는 알고리즘과 모델 구조를 처음부터 새로 만드는 경우는 드뭅니다. 대부분 이미 검증된 모델과 학습 알고리즘을 가져와, 자신의 데이터와 설정에 맞게 조정합니다.

YOLO 모델 선택 → 차량 데이터셋 준비 → 라벨링
→ 학습 → 성능 확인 → 실제 카메라 프로그램에 적용

객체 탐지 외에도 모델 종류는 많습니다

객체 탐지는 딥러닝 모델의 한 종류일 뿐입니다. 차량 예시로 대표적인 세 가지를 비교하면 다음과 같습니다.

모델 종류하는 일차량 예시
분류(Classification)이미지 전체가 무엇인지 판단“이 이미지는 차량입니다 / 아닙니다”
객체 탐지(Detection)이미지 안 객체의 위치와 종류 판단“오른쪽에 차량, 확률 94%”
분할(Segmentation)픽셀 단위로 영역 구분“이 픽셀들은 차량, 나머지는 배경”

객체 탐지가 사각형 박스로 차량을 찾는 방식이라면, 분할은 차량의 윤곽을 픽셀 단위로 더 정밀하게 따냅니다.


과적합(overfitting)

과적합은 모델이 학습 데이터에는 너무 잘 맞지만, 새로운 데이터에는 잘 동작하지 못하는 상태입니다.

예를 들어 특정 주차장 이미지로만 학습했다고 하겠습니다. 그러면 그 주차장에서는 차량을 잘 찾지만 실제 도로 영상에서는 잘 찾지 못할 수 있습니다. 학습 환경에 과도하게 맞춰진 것입니다.

이를 피하려면 다양한 환경의 데이터가 필요합니다.



비 오는 날
흐린 날
도로
주차장
고속도로

다양한 데이터를 학습해야 실제 환경에서도 잘 동작합니다.


성능 평가는 정확도만 보지 않습니다

객체 탐지의 성능은 단순히 “맞았다/틀렸다”로만 따지지 않습니다. 다음 질문들이 함께 중요합니다.

  • 차량을 놓치지 않았는가?
  • 차량이 아닌 것을 차량이라 잘못 판단하지 않았는가?
  • 차량 위치 박스가 정확한가?

그래서 다음 지표를 사용합니다.

  • Precision(정밀도): 차량이라고 판단한 것 중 실제 차량의 비율
  • Recall(재현율): 실제 차량 중 모델이 찾아낸 비율
  • mAP(mean Average Precision): Precision–Recall 곡선을 기반으로 산출하는 객체 탐지 종합 지표

Precision과 Recall은 보통 한쪽을 올리면 다른 쪽이 내려가는 트레이드오프 관계입니다. mAP는 이 둘을 곡선으로 종합해 하나의 점수로 만든 것이라고 이해하면 됩니다.


전체 흐름 정리

차량 탐지 딥러닝 시스템의 전체 흐름은 다음과 같습니다.

1. 차량 이미지 데이터를 모읍니다.
2. 이미지 안 차량 위치를 라벨링합니다.
3. YOLO 같은 객체 탐지 모델을 선택합니다.
4. TensorFlow / PyTorch 같은 프레임워크로 학습합니다.
5. 예측과 정답을 비교하며 손실값을 줄입니다.
6. 학습 결과는 가중치로 저장됩니다.
7. 검증 데이터로 성능을 확인하고 개선합니다.
8. 테스트 데이터로 최종 평가합니다.
9. 학습된 모델을 실제 프로그램에 배포합니다.
10. 카메라 영상이 들어오면 모델이 차량을 탐지합니다.

마무리

딥러닝은 데이터를 통해 모델이 스스로 규칙을 배우는 방식입니다. 차량 탐지 예시에서는 차량 이미지와 위치 정답을 대량으로 보여주며 모델을 학습시킵니다.

핵심 개념을 한 표로 정리하면 다음과 같습니다.

개념의미비유
텐서딥러닝에서 쓰는 숫자 배열 데이터재료
TensorFlow모델을 만들고 실행하는 프레임워크공장
YOLO객체를 찾는 객체 탐지 모델 구조기계 설계도
알고리즘모델이 학습하는 방법 또는 문제 해결 방식작업 방식
모델입력을 받아 결과를 예측하는 구조기계
학습모델을 훈련시키는 과정공부
추론학습된 모델을 실제로 사용하는 과정실무
가중치학습 결과로 저장된 내부 숫자값숙련도
손실값모델이 얼마나 틀렸는지 나타내는 값오답 정도
라벨데이터에 붙은 정답정답지

결국 딥러닝의 흐름은 한 문장으로 요약됩니다.

데이터를 텐서로 바꾸고, 모델이 그 데이터를 학습해, 새로운 입력에 대해 예측하게 만드는 것입니다.

댓글