본문 바로가기

파이썬406

[딥러닝을이용한 자연어 처리 입문] 0807 케라스의 함수형 API(Keras Functional API) 1. Sequential API로 만든 모델 - 직관적이고 편지하지만 여러층을 공유하거나 다양한 종류의 입력과 출력을 사용하는 등의 복잡한 모델을 만드는 일에는 한계가 있음 2. Functional API로 만든 모델 - 각 층을 일종의 함수(function)로 정의 - 입력 데이터의 크기(shape)를 인자로 입력층에 정의해 주어야 함 1) 전결합 피드 포워드 신경망(Fully-connected FFNN) 2) 선형회귀(Linear Regression) 3) 로지스틱 회귀(Logistic Regression) 4) 다중 입력을 받는 모델(model that accepts multiple inputs) 5) RNN(Recurrence Neural Network) 은닉층 사용하기 - 출처 : [딥러닝을이용.. 2021. 5. 19.
[딥러닝을이용한 자연어 처리 입문] 0805 기울기 소실(Gradient Vanishing)과 폭주(Exploding)를 막는 방법 1. ReLU와 ReLU의 변형들 - Leaky ReLU를 사용하면 모든 입력값에 대해서 기울기가 0에 수렴하지 않아 죽은 ReLU 문제를 해결 - 은닉층에서는 ReLU나 Leaky ReLU와 같은 ReLU 함수의 변형들을 사용 2. 그래디언트 클리핑(Gradient Clipping) - 기울기 폭주를 막기 위해 임계값을 넘지 않도록 임계치만큼 크기를 감소 3. 가중치 초기화(Weight initialization) - 가중치가 초기에 어떤 값을 가졌느냐에 따라서 모델의 훈련 결과가 달라지기도 함. 따라서 가중치 초기화만 적절히 해줘도 기울기 소실 문제과 같은 문제를 완화 시킬 수 있음 세이비어 초기화(Xavier Initialization) He 초기화(He initialization) 4. 배치 정규.. 2021. 5. 18.
[딥러닝을이용한 자연어 처리 입문] 0804 과적합(Overfitting)을 막는 방법들 1. 데이터의 양을 늘리기 - 데이터의 양을 늘릴 수록 모델은 데이터의 일반적인 패턴을 학습하여 과적합을 방지할 수 있음 - 의도적으로 기존의 데이터를 조금씩 변형하고 추가하여 데이터의 양을 늘리기도 함(데이터 증강 Data Augmentation) 2. 모델의 복잡도 줄이기 - 인공 신경망의 복잡도는 은닉층(hidden layer)의 수나 매개변수의 수 등으로 결정되므로 이 수를 조절함 3. 가중치 규제(Regularization) 적용하기 - L1 규제 : 가중치 w들의 절대값 합계를 비용 함수에 추가 (L1 노름) - L2 규제 : 모든 가중치 w들의 제곱합을 비용 함수에 추가 (L2 노름) 4. 드롭아웃(Dropout) - 학습 과정에서 신경망의 일부를 사용하지 않는 것 - 신경망 학습 시에만 사.. 2021. 5. 18.
[딥러닝을이용한 자연어 처리 입문] 0803 딥 러닝의 학습 방법 1. 순전파(Forward Propagation) - 입력층에서 출력층 방향으로 예측값의 연산이 진행되는 과정 2. 손실 함수(Loss function) - 실제값과 예측값의 차이를 수치화해주는 함수 - 오차가 클 수록 손실 함수의 값은 크고 오차가 작을 수록 손실 함수의 값은 작아짐 - 손실 함수의 값을 최소화하는 두 개의 매개변수인 가중치 W와 편향 b를 찾아가는 것이 딥 러닝의 학습 과정이므로 손실 함수의 선정은 매우 중요 3. 옵티마이저(Optimizer) - 손실 함수의 값을 줄여나가면서 학습하는 방법은 어떤 옵티마이저를 사용하느냐에 따라 달라짐 배치 경사 하강법(Batch Gradient Descent) 확률적 경사 하강법(Stochastic Gradient Descent, SGD) 미니 배치.. 2021. 5. 18.