1. TensorFlow의 본질적 정의와 핵심 아키텍처 원리
텐서플로 (TensorFlow)는 구글의 대규모 제품군과 첨단 AI 연구를 위해 구글 브레인(Google Brain) 팀이 설계하여 2015년 11월 9일 아파치(Apache) 2.0 오픈소스 라이선스로 전 세계에 공개한 머신러닝·딥러닝 소프트웨어 라이브러리입니다. 구글의 1세대 분산 딥러닝 시스템이었던 디스트빌리프(DistBelief)의 한계를 전면 극복하고, 단일 스마트폰 모바일 기기(안드로이드, iOS)부터 64비트 리눅스/macOS 서버, 수만 개의 분산 CPU, GPU(NVIDIA CUDA 가속), 그리고 구글 전용 AI 칩셋인 TPU(Tensor Processing Unit) 클러스터에 이르기까지 일관된 수식과 구조로 고속 연산을 구동할 수 있도록 구현되었습니다.
모든 인공신경망의 데이터는 '텐서(Tensor)'라는 다차원 수치 배열로 표현되며, 신경망 모델의 연산 과정은 노드(연산)와 엣지(데이터)로 이루어진 '상태를 가지는 유향 데이터플로우 그래프(Stateful Dataflow Directed Graph)'를 따라 순차적·병렬적으로 '흘러가기(Flow)' 때문입니다.
📦 다차원 데이터 구조: 텐서 (Tensor)
텐서는 동적 다차원 배열로, 모든 딥러닝 연산의 기본 단위입니다.
• Rank 0 (스칼라, Scalar): 단일 수치값 (예: 손실값 Loss = 0.042)
• Rank 1 (벡터, Vector): 1차원 데이터 (예: 단어 임베딩 차원 [768])
• Rank 2 (행렬, Matrix): 2차원 표/가중치 (예: Dense Layer 가중치 [512, 256])
• Rank 3 (3D 텐서): 시계열·텍스트 배치 (예: [Batch, Sequence_Length, Feature])
• Rank 4 (4D 텐서): 이미지 미니배치 (예: [Batch, Height, Width, Channels])
🔄 데이터플로우 그래프 (Dataflow Graph)
수학적 계산을 방향성 그래프(DAG)로 추상화한 아키텍처입니다.
• 노드 (Node / Operation): 행렬 곱셈(MatMul), 편향 추가(BiasAdd), 활성화 함수(ReLU, GELU) 등 실제 계산 단위입니다.
• 엣지 (Edge / Tensor): 노드 사이를 오가는 입출력 텐서입니다.
• 그래프 최적화: 실행 전 불필요한 연산을 가지치기(Pruning)하고, 연속된 메모리 복사를 제거하며, 다수의 연산자를 하나의 하드웨어 커널로 통합(Operator Fusion)합니다.
⚡ 즉시 실행 (Eager Execution) vs 정적 그래프
• 과거 TF 1.x: 연산 그래프를 먼저 선언(`tf.placeholder`)한 뒤, 세션(`tf.Session().run()`)을 열어야만 결과가 계산되는 복잡한 정적 그래프 방식이었습니다.
• 현대 TF 2.x: 파이썬 고유의 직관적 코드처럼 즉시 결과를 확인하는 즉시 실행(Eager Execution)이 기본 활성화되어 디버깅이 극도로 쉬워졌습니다.
• @tf.function (AutoGraph): 고성능 배포가 필요할 때는 파이썬 함수 위에 데코레이터 한 줄만 붙이면 자동으로 C++ 최적화 정적 연산 그래프로 JIT 컴파일됩니다.
🧮 자동 미분 테이프 (tf.GradientTape)
역전파(Backpropagation) 신경망 학습의 핵심 엔진입니다.
• 컨텍스트 매니저 안에서 일어나는 모든 순방향 연산을 카세트 테이프처럼 기록합니다.
• 테이프에 기록된 그래프 역추적을 통해 연쇄 법칙(Chain Rule)에 입각한 편미분값(Gradients)을 오차 역방향으로 정밀하게 산출합니다.
• 고계 도함수(Higher-order derivatives) 및 커스텀 그래디언트 제어가 완벽히 지원됩니다.