3.5 텐서플로 시작하기
이전 장에서 보았듯이 신경망 훈련은 다음과 같은 개념을 중심으로 진행됩니다.
• 첫째, 모든 현대적인 머신 러닝의 기초가 되는 인프라인 저수준 텐서 연산. 이는 다음과 같은 텐서플로 API로 변환됩니다.
▪︎ 텐서(신경망의 상태를 저장하는 특별한 텐서(변수)도 포함)
▪︎ 덧셈, relu, matmul 같은 텐서 연산
▪︎ 수학 표현식의 그레이디언트를 계산하는 방법인 역전파(텐서플로의 GradientTape 객체를 통해 처리됨)
• 둘째, 고수준 딥러닝 개념. 이는 다음과 같은 케라스 API로 변환됩니다.
▪︎ 모델을 구성하는 층
▪︎ 학습에 사용하는 피드백 신호를 정의하는 손실 함수
▪︎ 학습 진행 방법을 결정하는 옵티마이저
▪︎ 정확도처럼 모델의 성능을 평가하는 측정 지표
▪︎ 미니 배치 확률적 경사 하강법을 수행하는 훈련 루프
이전 장에서 이미 이에 관련된 텐서플로와 케라스 API를 가볍게 살펴보았습니다. 텐서플로의 Variable 클래스, matmul 연산, GradientTape를 간략히 사용해 보았습니다. 케라스 Dense 층을 초기화하여 이를 Sequential 모델로 만들고 fit() 메서드로 이 모델을 훈련했습니다.
이제 이런 모든 개념을 텐서플로와 케라스를 사용하여 실전에 어떻게 적용할 수 있는지 자세히 살펴보겠습니다.