본문 바로가기
728x90
반응형

코딩/데이터 분석 이론 & 응용

[19] Deep Learning - How to use Tensorflow [19] Deep Learning - How to use Tensorflow Tensorflow 안에는 다양한 함수들과 다양한 클래스 , 메소드 들이 존재한다. 이번 글에서는 이러한 Tensorflow의 요소들을 사용하여 사용자가 직접 정의하여 사용할 수 있는 손실 함수 , 모델 , 초기화 , 제한 , 규제 등과 모델의 저장 및 불러오기 방법에 대해서 살펴본다. 관련 코드 및 정리 ref. "Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd Edition" 더보기
[18] Deep Learning - Tensorflow [18] Deep Learning - Tensorflow Tensorflow TensorFlow , 텐서플로우는 많은 계산을 빠르게 처리할 수 있는 파이썬 라이브러리다. 딥러닝이나 머신러닝의 과정 속에서 대규모 계산이 필요하다는 것을 생각해보면 , 텐서플로우가 딥러닝과 머신러닝에 왜 사용되는지 그 이유를 알 수 있다. 대규모 고속 계산이 가능한 텐서플로우를 통해 우리는 다양한 머신러닝 , 딥러닝 작업들을 수행할 수 있다. 텐서플로우의 특징은 다음과 같다. 분산 컴퓨팅 / GPU 지원 JIT (just-in-time) 컴파일러를 포함 플랫폼과 환경에 구애받지 않고 모델을 실행할 수 있다. 자동 미분 , RMSProp , Nadam 같은 Optimizer 등 딥러닝 / 머신러닝과 관련한 다양한 편의를 제공 .. 더보기
[17] Deep Learning - Regularization [17] Deep Learning - Regularization Regularization DNN에는 다양한 parameter들이 존재한다. parameter들이 많아질수록 모델은 유연해지고 , training data에 overfitting 되기 좋아진다. overfitting을 막기 위해 다양한 Regularization, 규제 기법들이 존재한다. 앞선 글에서 다루었던 배치 정규화도 규제 기법으로 사용할 수 있는 하나의 예시이다. [12] Deep Learning - Batch normalization (tistory.com) [12] Deep Learning - Batch normalization [12] Deep Learning - Batch normalization Batch normalizat.. 더보기
[16] Deep Learning - Learning Rate Scheduling [16] Deep Learning - Learning Rate Scheduling Learning Rate Scheduling 학습률 lr 은 모델을 학습하는 데에 있어 중요한 parameter다. lr은 성능과 훈련 시간 사이를 저울질한다. 너무 낮은 lr은 훈련 시간이 매우 오래 걸리게 만들지만 , 너무 높은 lr은 도착한 최적점에 대해 신뢰를 주지 못할 수 있다. 언제나 유한한 컴퓨팅 자원을 통해 모델을 만드므로 , 적절한 lr을 찾는 것은 언제나 중요하다. 일반적으로 알려진 좋은 lr을 선택하는 방법은 모델 학습을 반복하면서 lr을 지수적으로 증가시킨 후 , 곡선을 확인하고 , 곡선의 상승보다 낮춰서 선택한 lr로 다시 훈련하는 방식이 알려져 있다. 즉 lr을 점차적으로 낮춰갈 텐데 , 이때 사용.. 더보기
[15] Deep Learning - Optimizer [15] Deep Learning - Optimizer Optimizer network에 사용할 수 있는 optimizer의 종류는 다양하다. 기본적으로 알려져 있는 경사 하강법이 그 예다. 경사 하강법 이외에도 모멘텀 최적화 , 네스테로프 가속 경사 , AdaGrad , RMSProp , Adam , Nadam 등 다양한 optimizer가 존재한다. 모멘텀 최적화 (Momentum Optimization) 공이 경사를 따라 내려갈 때 , 가속도에 의해 종단 속도에 도달할 때까지 속도는 빠르게 가속될 것이다. 모멘텀 최적화는 이러한 원리를 이용한다. 기존의 경사 하강법에서는 한 스텝 한 스텝씩 차근차근 경사를 내려갔다면 , 모멘텀 최적화의 경우는 경사에 공을 굴리는 것과 같이 경사를 내려간다. 모멘텀 .. 더보기
[14] Deep Learning - Transfer Learning & Pre-training [14] Deep Learning - Transfer Learning & Pre-training Transfer Learning 큰 규모의 Network를 학습할 때 , 모든 weight를 처음부터 새로 훈련하려 하면 속도도 느리고 , 시간도 오래 걸릴 것이다. 비슷한 문제를 해결한 Network가 이미 존재한다면 그 Network의 layer를 재사용해서 시간을 단축시킬 수 있다. 이러한 방법이 바로 Transfer Learning , 전이 학습이다. 전이 학습은 훈련속도를 보다 빠르게 해 줄 뿐만 아니라 훈련에 필요한 데이터 수도 줄여준다. 당연하게도 재사용하는 Network의 문제가 새로 해결해야하는 문제와 비슷할수록 더 많은 layer를 재사용할 수 있다. 또한 재사용할 layer의 개수 역시 생.. 더보기
[13] Deep Learning - Gradient clipping [13] Deep Learning - Gradient clipping Gradient clipping Gradient clipping 이란 , 경사 폭주 문제를 해결하는 한 가지 방법이다. Gradient clipping은 Backpropagation 과정에서 경사값이 특정 임계값을 넘으면 그 이상의 경사 값을 잘라내는 것을 의미한다. 대부분의 Network 구조에서는 배치 정규화 만을 사용해도 충분하지만 , Network의 구조에 따라 배치 정규화를 사용하기 어려운 경우들이 존재한다. 그런 경우 Gradient clipping을 통해 경사 폭주 문제를 해결할 수 있다. [12] Deep Learning - Batch normalization [12] Deep Learning - Batch normali.. 더보기
[12] Deep Learning - Batch normalization [12] Deep Learning - Batch normalization Batch normalization 이전 글에서는 경사 소실 문제와 폭주 문제를 해결하기 위한 activation function들과 initialization 방법들을 살펴보았다. [11] Deep Learning - Initialization & Activation function (tistory.com) [11] Deep Learning - Initialization & Activation function [11] Deep Learning - Initialization & Activation function 복잡한 문제를 해결해야 할수록 , Network는 점점 더 복잡하고 깊어져야 할 것이다. Network가 점점 더 깊어지.. 더보기
반응형