2018의 게시물 표시

경사소실 문제 해결

이미지
1. 경사 소실 문제 출력층으로부터 되돌아가면 각 층의 가중치를 수정하려면 미분 값, 즉 기울기가 필요하다. 그런데 층이 늘어나면서 기울기가 중간에 0이 되어버리는 경사 소실(vanishing gradient) 문제가 발생한다. 이는 시그모이드 함수의 미분 최대치는 0.3, 즉 1보다 작은 값이기 때문이다. 은닉층이 많아질수록 기울기는 점점 0에 가까워지게 된다. 이를 해결하기 위해서 시그모이드 함수를 대체할 수 있는 활성화 함수를 사용하려면 시그모이드 함수와 모양이 비슷하고 경사가 소실되지 않는 함수를 사용한다.  1.1 쌍곡탄젠트 함수(Hyperbolic Tangent Function) tanh(x) tanh(x) 함수 정의와 그래프이다.  * 시그모이드 함수 : 입력값 − ∞ <x< ∞에 대하여 함수값의 범위는 0<σ(x)<1   * 쌍곡탄젠트 함수 : 입력값 − ∞ <x< ∞에 대하여 함수값의 범위는 − 1<tanh(x)<1     다음은 쌍곡탄젠트 함수의 경사를 구하기 위해 필요한 tanh(x) 의 도함수를 구하는 과정이다. 아래는 tanh′(x) 와 σ′(x) 의 그래프를 비교한 그림이다.  σ′(x) 의 최대값은 σ′(0)=0.3 이고 tanh′(x) 의 최대값은 tanh′(0)=1 이기 때문에 시그모이드 함수와 비교했을 때 경사가 소실되기 힘들다는 것을 알 수 있다 . * TensorFlow에서 구현은 tf.nn.tanh() 이다.  1.2 ReLU(Rectified Linear Unit) 함수 tanh(x) 함수를 사용하면 미분값의 범위가 확장된다. 그러나 고차원 데이터를 다룰 경우에는 값이 커질 수 있어 다시 경사가 소실될 수 있다. 복잡한 데이터일 수록 고차원일 경우가 많은데 이를 회피할 수 있는

Tensorflow GPU 설치

이미지
반드시 tensorflow 공식 문서를 확인해야한다 !!! 추천 CUDA 버전 , cudnn 버전 , anaconda 일때 파이썬 버전 , native pip 일때 파이썬 버전을 확인한 후 설치하자 . 자신의 환경에 맞춰서 공식 문서를 보고 파이썬 버전을 잘 선택해야 한다 . 또한 , 선택하는 운영 체제에 따라서도 버전이 다르다 . 아래 링크에서 확인하자 . https://www.tensorflow.org/install/gpu 2018년 기준 조건은 아래와 같다.  가장 먼저 GPU 설치가 가능한 지 먼저 확인 해야 한다 . 위 링크에 보면 CUPA Compute Capability 3.5 이상 이 필요하다고 되어 있다 . 현재 회사 노트북 그래픽 카드 (GeForce 820M) 의 Compute Capability 는 2.1 이니까 GPU 버전 설치가 불가능한데 멀쩡히 설치했던 CPU 버전을 지우고 시간을 낭비했다 . 1. CUDA Toolkit 설치 현재 추천 버전은 9.0 이상이다. 설치파일을 한번에 받기 위해 local을 선택하는 것이 좋다. CUDA 추천 버전 설치가 완료 되고 재부팅한다음에 환경변수 가 제대로 설치 되었나 확인해야한다 . 시스템 환경변수 편집 -> 고급 -> 환경변수 클릭 위와 같이   CUDA_PATH  가 추가되어있으면  OK 이다 ! 만약에  CUDA 버전을 여러개 설치한다면  CUDA_PATH_V9_0 과 같이 구분되며 최근 설치한 버전이  CUDA_PATH 로 들어간다고 한다 . 2. cuDNN 설치 현재 추천 버전은 7.2 이상이다.  cuDNN 을 받으려면 DEVELOPER 홈페이지에 가입이 필요하다 . 먼저 가입을 하고 다운로드 받는다 . 위에 설치된 CUDA 버전을 참고해서 cuDNN 버전을 선택하고 해당하는 OS 버전 압축파일을 다운 받는다. cuDNN 추천 버전

윈도우즈에 아나콘다, 텐서플로 설치하기

이미지
윈도우즈에 아나콘다와 텐서플로우 설치과정을 정리하였다. 1. 아나콘다 구글에서 만든 Tensorflow 는 딥러닝을 하기 위해서 가장 많이 사용되는 패키지 중 하나이다 . Tensorflow 를 사용하기 위해서는 Python 을 설치해야 된다 . 공식 사이트를 이용해서 설치하고 필요에 따라 여러 패키지를 따로 설치할 수도 있지만 머신러닝에 자주 사용되는 패키지들을 모아 놓은 Python 배포판 인 아나콘다 (Anaconda) 를 설치하면 여러 가지 도구를 한 번에 설치해서 편리하게 사용 가능하다 . < 파이썬과 아나콘다 환경 비교 , 출처 링크 > 1.1 아나콘다 설치 2018년 12월 기준 아나콘다 다운로드 페이지에 접속하면 윈도우즈용 Anaconda 5.3.1 버전이 존재한다.  아나콘다 5.3 버전부터는 파이썬 3.7 버전을 사용하도록 바뀌었는데 텐서플로는 파이썬 3.7 버전의 패키지를 제공하지 않기 때문에 파이썬 3.6을 사용하는 아나콘다 5.2 버전을 아래 링크에서 다운받아 설치한다.  –  https://repo.anaconda.com/archive/Anaconda3-5.2.0-Windows-x86_64.exe * ps1. 텐서플로 바이너리는 64비트용이므로 컴퓨터의 비트 확인이 필요하다. 컴퓨터가 32비트라면 텐서플로 소스를 직접 컴파일하여 설치해야 한다고 한다. * ps2. 사용하는 윈도우즈 컴퓨터가 32비트인지 64비트인지 확인은 파일 탐색기에서 "컴퓨터" 선택 후 우클릭 -> 팝업 창에서 속성 클릭 -> 제어판>모든 제어판 항목>시스템 창에서 시스템 항목의 시스템 종류 확인 ps3.  TensorFlow 1.6 버전부터 CPU 버전 바이너리는 AVX( 고급 벡터 확장 ) 명령을 지원하도록 컴파일 되었기 때문