본 포스팅은 “케라스 창시자에게 배우는 딥러닝” - (길벗출판사, 프랑소와 숄레 지음, 박해선 옮김)을 바탕으로 공부한 내용을 정리한 것입니다.
- 딥러닝에서 ‘딥’은?
- 딥러닝의 특징
- 텐서플로우, 케라스 설치
- 가상환경 생성
- Tensorflow, Keras 등 설치
1. 딥러닝에서 ‘딥’은?
머신러닝은 데이터로부터 많은 입력과 타깃의 샘플을 관찰하여 타깃에 매핑하는 것.
데이터로부터 모델을 만들 때 얼마나 많은 층 (layer)을 사용했는지가 그 모델의 깊이라고 한다.
층 기반 표현 학습 (layered representations learning) 또는 계층적 표현 학습 (hierarchical representations learning)이라 표현하기도 한다. 딥러닝 모델은 이 층이 많은 것.
딥러닝과 비교하여 머신러닝은 1~2개의 데이터 표현 층만을 학습하는 경향이 있어서 얕은 학습 (shallow kearning)이라 부르기도한다.
딥러닝에서는 기본 층을 겹겹이 쌓아 올린 신경망 (neural network)라는 모델을 사용하여 표현 층을 학습한다.
층에서 입력 데이터가 처리되는 내용은 가중치 (weight)에 저장되고, 그 층에서 일어나는 변환은 이 가중치를 파라미터 (parameter)로 가지는 함수로 표현된다.
출력이 기대하는 것보다 얼마나 벗어나는지를 측정하는 신경망의 손실 함수 (loss function), 목적 함수 (objective function), 비용 함수 (cost function).
비용 함수는 모든 훈련 데이터에 대한 손실 함수의 합, 목적 함수는 최적화하기 위한 대상 함수. 보통 구분 짓지 않고 혼용해서 사용한다.
손실 함수는 예측의 정확도를 손실 점수로 측정, 이를 피드백 신호로 사용하여 손실 점수가 감소되는 방향으로 가중치 값을 수정해 나간다.
역전파 (backpropagation) 알고리즘을 구현한 옵티마이저 (optimizer)가 이 수정 과정을 담당한다.
초기에는 네트워크의 가중치가 랜덤한 값, 훈련 반복 (training loop)을 통해 가중치와 손실 점수가 조정되며 타깃에 가장 가까운 출력을 만드는 모델이 된다.
2. 딥러닝의 특징
머신 러닝에서 처리하기 용이하게, 데이터의 좋은 표현을 수동으로 만들어가는 것을 특성 공학 (feature engineering)이라 한다.
딥러닝은 이 과정을 자동화 한다. 또한 모든 표현 층을 동시에 공동 학습한다. 각 층은 상위 층과 화위 층의 표현이 변함에 따라 함께 바뀐다.
- 층을 거치면서 점진적으로 더 복잡한 표현이 만들어진다.
- 점진적인 중간 표현이 공동으로 학습된다.
3. 텐서플로우, 케라스 설치
윈도우에 CPU 버전의 텐서플로우를 설치하는 방법이다.
범용적으로 가장 인기 있는 파이썬 배포판인 Anaconda에 설치해보자.
가상환경 생성
독립적인 환경을 생성할 수 있어서, 코드 마다 다른 dependency 문제를 해결 할 수 있다.
Anaconda prompt에서 원하는 경로로 위치를 바꾸고 다음과 같이 입력하면 생성할 수 있다.
1
2
$ conda update conda
$ conda create -n py38 python=3.8
Python 3.8 버전으로 py38이라는 이름으로 Anaconda 가상환경을 생성해주었다.
해당 가상환경을 활성화하기 위해서는 해당 경로에서 conda activate py38
이라 입력하면 된다.
경로 상관없이 conda activate py38
이라 입력하면 된다.
Tensorflow, Keras 등 설치
1
2
3
4
5
6
$ pip install numpy pandas matplot jupyter
$ pip install tensorflow==2.4
$ conda install -c anaconda pywin32
$ pip install keras==2.2.2
$ pip uninstall keras-preprocessing
$ pip install keras-preprocessing==1.1.2
GPU 버전의 tensorflow를 설치하려면 다르게 입력해주어야한다.
본인의 노트북 GPU는 내장 그래픽 수준의 스펙이기에 CPU 버전으로 설치했다.
Tensorflow와 Keras를 설치할 때 가장 중요한 점은 서로 호환이 되도록 Dependency 문제를 해결하기 위해서 버전을 맞춰주는 것이다.
버전이 맞지 않으면 실행이 되지않는다.
또한 정확히 기억나지 않지만 2.4 버전 전후쯤으로 import 하는 법이 바뀌었기에 코드가 사용된 환경도 확인해주어야한다.
다음과 같이 Jupyter notebook에서 import가 성공하면 tensorflow 2.4 버전의 설치가 성공적으로 완료된 것이다.
참고
“케라스 창시자에게 배우는 딥러닝” - (길벗출판사, 프랑소와 숄레 지음, 박해선 옮김)
- 깃허브: http://github.com/gilbutITbook/006975
- 길벗출판사 홈페이지: http://www.gilbut.co.kr
- tensorflow 2.4 버전 호환 코드 https://github.com/rickiepark/deep-learning-with-python-notebooks/tree/tf2