본문 바로가기
  • You find inspiration to create your own path !
업무 자동화/AI

'개와 고양이 분류' 프로젝트 #1

by ToolBOX01 2026. 5. 13.
반응형

■ TensorFlow/Keras로 배우는 “개 vs 고양이 분류” 로드맵

딥러닝을 처음 배울 때는 “수학 → 이론 → 논문” 순서보다, 작동하는 것을 먼저 만들고 → 결과를 보고 → 왜 그런지 이해하는 방식이 훨씬 빠르다고 합니다. 텐서플로우(TensorFlow)와 그 상위 API인 Keras를 활용하면 복잡한 수학 공식 없이도 코딩 몇 줄로 모델을 만들 수 있습니다.


※ 텐서플로우(TensorFlow)란 무엇인가?

'인공지능(AI) 모델을 만들고 훈련시키는 데 사용하는 도구 상자(라이브러리)'입니다. 구글에서 만들어서 공개했기 때문에 전 세계적으로 가장 많이 쓰이는 도구 중 하나입니다.

1. 텐서(Tensor) + 플로우(Flow)의 의미

  • 텐서(Tensor): 복잡한 수치 데이터를 담는 '다차원 숫자 배열'을 말합니다. 딥러닝에서 데이터(이미지, 텍스트 등)는 모두 숫자로 변환되어 처리되는데, 이 숫자 묶음이 텐서입니다.
  • 플로우(Flow): 이 데이터(텐서)들이 여러 계산 단계를 거치며 '흐르는 과정'을 뜻합니다.

즉, 데이터가 계산 과정을 거치며 흘러가서 결과(예: 개인지 고양이인지 판별)를 만들어내는 시스템 입니다.

텐서(Tensor)  이미지 텐서(Tensor)  이미지 설명
텐서(Tensor)
  • 데이터의 변환: 고양이 이미지나 텍스트 데이터가 어떻게 숫자로 인코딩되어 텐서 구조로 들어가는지 보여줍니다.
  • 3D 이미지 텐서: 이미지 데이터가 높이, 너비, 채널(색상)이라는 세 가지 차원을 가진 입체적인 숫자 배열로 구성되는 모습을 구체적으로 시각화했습니다.
  • 차원의 개념: 아래쪽에는 스칼라(0D), 벡터(1D), 행렬(2D)을 거쳐 다차원 텐서(3D+)로 확장되는 개념을 단계별로 보여주어 텐서의 구조를 이해하기 쉽게 표현했습니다.

 

2. 왜 텐서플로우를 쓰나요?

직접 복잡한 수학 공식(미분, 행렬 계산 등)을 코딩하려면 엄청난 시간이 걸리지만, 텐서플로우는 이를 미리 구현해 두었습니다.

  • 편의성: 레고 블록을 쌓듯이 층(Layer)을 쌓아 모델을 만들 수 있습니다. 특히 Keras라는 쉬운 도구가 포함되어 있어 초보자도 접근하기 좋습니다.
  • 유연성: PC, 서버는 물론 스마트폰(TensorFlow Lite)이나 웹브라우저(TensorFlow.js)에서도 AI를 실행할 수 있습니다.
  • 강력한 성능: 많은 양의 데이터를 학습시킬 때 그래픽 카드(GPU)나 AI 전용 칩(TPU)을 아주 효율적으로 사용합니다.

 

3. 자주 마주하게 될 개념

  • 모델(Model): 입력을 받아 출력을 내보내는 신경망 구조.
  • 학습(Training): 데이터를 반복해서 입력하며 모델이 정답을 맞히도록 정교하게 다듬는 과정.
  • 추론(Inference): 학습된 모델에 새로운 데이터를 넣어 결과를 예측하는 과정.

 


※ 케라스(Keras)란 무엇인가?

케라스는 파이썬으로 작성된 고수준 신경망 API입니다. 핵심 특징은 "인간 중심"으로 설계되었다는 점입니다. 딥러닝 모델을 만드는 과정은 원래 매우 복잡한 수학 연산의 연속입니다. 하지만 케라스는 사람이 이해하기 쉬운 일상 언어에 가까운 명령어를 사용합니다.

  • 기존 방식: "행렬 A와 B를 곱하고 편향치를 더한 뒤 활성화 함수를 통과시켜라..." (복잡한 수학)
  • 케라스 방식: "여기에 층(Layer) 하나 추가해줘. 출력은 10개로 하고 이름은 Dense라고 하자." (직관적 설명)

 

케라스(Keras)는 우리가 기계(딥러닝 모델)를 학습시킬 때 사용하는 '조종 장치'라고 보시면 됩니다. 기계를 학습시킨다는 것은 결국 "데이터 속에서 규칙을 찾아내도록 만드는 과정"인데, 케라스가 돕는지 API (정해진 동작 메누얼)입니다.

 

케라스가 학습을 시키는 과정 (3단계)

케라스를 이용하면 아래와 같은 흐름으로 기계를 학습시킵니다.

  • 모델 설계 (준비): "이 기계는 뇌 세포가 몇 개고, 어떤 구조로 연결할까?"를 결정합니다. (예: Sequential, layers.Dense)
  • 컴파일 (학습 방식 결정): "기계가 틀렸을 때 얼마나 혼낼지(Loss), 그리고 어떤 방식으로 개선하게 할지(Optimizer)"를 정합니다.
  • 학습 실행 (fit): 데이터를 기계에 쏟아붓습니다. 기계는 수만 번 반복해서 데이터를 보며 스스로 규칙을 깨우칩니다.

 

by korealionkk@gmail.com

 

반응형