ML

머신러닝 / 딥러닝 스터디 정리
ML/딥 러닝을 이용한 자연어 처리

[딥 러닝을 이용한 자연어 처리 입문] 07. 딥 러닝 개요 - 케라스 훑어보기

케라스 딥 러닝을 쉽게 할 수 있는 파이썬 라이브러리 유저가 손 쉽게 딥 러닝을 구현할 수 있도록 도와주는 상위 레벨의 인터페이스로 딥 러닝을 쉽게 구현할 수 있도록 해줌 전처리 Tokenizer() 토큰화와 정수 인코딩을 위해 사용 훈련 데이터로부터 단어 집합을 생성하고 해당 단어 집합으로 임의의 문장을 정수 인코딩을 함 from tensorflow.keras.preprocessing.text import Tokenizer tokenizer = Tokenizer() train_text = "The earth is an awesome place live" # 단어 집합 생성 tokenizer.fit_on_texts([train_text]) # 정수 인코딩 sub_text = "The earth is an..

ML/딥 러닝을 이용한 자연어 처리

[딥 러닝을 이용한 자연어 처리 입문] 07. 딥 러닝 개요 - 기울기 소실과 폭주

기울기 소실과 폭주 인공 신명망을 학습하다보면 역전파 과정에서 입력층으로 갈수록 기울기가 점차적으로 작아지는 현상이 발생하고 입력층에 가까운 층들에서 가중치들의 업데이트가 제대로 되지 않아 결국 최적의 모델을 찾을 수 없는 것을 기울기 소실이라고 함 반대로 기울기가 점차 커지더니 가중치들이 비정상적으로 큰 값이 되면서 발산하는 경우를 기울기 폭주라고 함 ReLU와 ReLU의 변형들 시그모이드 함수를 사용하면 입력의 절대값이 클 경우에 출력값이 0 또는 1에 수렴하면서 기울기가 0에 가까워지므로 역전파 과정에서 전파 시킬 기울기가 점차 사라져 입력층 방향으로 갈수록 제대로 역전파가 되지 않는 기울기 소실 문제 발생 그러므로 기울기 소실을 완화하기 위해서는 은닉층의 활성화 함수로 시그모이드나 하이퍼볼릭탄젠트..

ML/딥 러닝을 이용한 자연어 처리

[딥 러닝을 이용한 자연어 처리 입문] 07. 딥 러닝 개요 - 과적합을 막는 방법들

과적합 학습 데이터에 모델이 과적합되는 현상은 모델의 성능을 떨어트리는 주요 이슈로 모델이 학습 데이터를 불필요할 정도로 과하게 암기하여 훈련 데이터에 포함된 노이즈까지 학습한 상태를 뜻함 모델이 과적합되면 훈련 데이터에 대한 정확도는 높을지라도, 새로운 데이터(검증 데이터, 테스트 데이터)에 대해서는 제대로 동작하지 않음 데이터의 양을 늘리기 모델은 데이터의 양이 적을 경우, 해당 데이터의 특정 패턴이나 노이즈까지 쉽게 암기하게 되어 과적합 현상 발생 확률이 높아짐 그러므로 데이터의 양을 늘리수록 모델은 데이터의 일반적인 패턴을 학습하여 과적합을 방지할 수 있음 이때 의도적으로 기존의 데이터를 조금씩 변형하고 추가하여 데이터의 양을 늘리는 데이터 증식(증강)이라고 함 이미지의 경우에는 데이터 증식이 많..

ML/딥 러닝을 이용한 자연어 처리

[딥 러닝을 이용한 자연어 처리 입문] 07. 딥 러닝 개요 - 딥 러닝의 학습 방법

손실 함수 손실 함수는 실제값과 예측값의 차이를 수치화해주는 함수로 이 두 값의 차이인 오차가 클수록 손실 함수의 값은 크고 오차가 작을수록 손실 함수의 값은 작아지게 됨 손실 함수의 값을 최소화하는 두 개의 매개변수인 가중치 w와 편향 b를 찾는 것이 딥 러닝의 학습 과정이므로 손실 함수의 선정은 매우 중요함 MSE 평균 제곱 오차는 선형 회귀를 학습할 때 사용하는 손실 함수로 연속형 변수를 예측할 때 사용됨 딥 러닝 자연어 처리는 대부분 분류 문제이므로 평균 제곱 오차를 자주 사용하지는 않음 model.compile(optimizer='adam', loss='mse', metrics=['mse']) model.compile(optimizer='adam', loss=tf.keras.losses.Mean..

ML/딥 러닝을 이용한 자연어 처리

[딥 러닝을 이용한 자연어 처리 입문] 07. 딥 러닝 개요 - 행렬곱으로 이해하는 신경망

순전파 인공 신경망에서 입력층에서 출력층 방향으로 연산을 진행하는 과정을 순전파라고 함 다르게 말하면 주어진 입력이 입력층으로 들어가서 은닉층을 지나 출력층에서 예측값을 얻는 과정 행렬곱으로 순전파 이해하기 입력의 차원이 3, 출력의 차원이 2인 인공 신경망을 구현할 때 즉, 소프트맥스 회귀를 한다고 가정하고 활성화 함수를 소프트맥스 함수로 임의로 기재한 후 출력 벡터의 차원을 2로 두어 이진 분류를 수행하는 모델을 만들 때 케라스에서 .summary()를 사용해 해당 모델에 존재하는 모든 매개변수(가중치 w와 편향 b의 개수)를 확인하면 매개변수인 w와 b의 개수가 총 합해서 8개라고 나오게 됨 위 신경망을 행렬의 곱셈 관점에서 이해하기 위 모델은 입력의 차원이 3, 출력의 차원이 2이므로 입력층의 뉴..

ML/딥 러닝을 이용한 자연어 처리

[딥 러닝을 이용한 자연어 처리 입문] 07. 딥 러닝 개요 - 인공 신경망 훑어보기

피드 포워드 신경망 오직 입력층에서 출력층 방향으로 연산이 전개되는 신경망인 피드 포워드 신경망 (Feed-Forward Neural Network, FFNN) 예) 다층 퍼셉트론 이와 반대로 FFNN에 속하지 않는 RNN은 은닉층의 출력값을 출력층으로도 값을 보내지만, 동시에 은닉층의 출력값이 다시 은닉층의 입력으로 사용됨 전결합층 어떤 층의 모든 뉴런이 이전 층의 모든 뉴런과 연결되어 있는 층을 전결합층(Fully-connected layer, FC) 또는 완전연결층이라하며 동일한 의미로 밀집층(Dense layer)이라고도 부르기도 함 예) 은닉층과 출력층에 있는 모든 뉴런이 바로 이전 층의 모든 뉴런과 연결되어 있는 다층퍼셉트론 활성화 함수 은닉층과 출력층의 뉴런에서 출력값을 결정하는 함수를 활성..

ML/딥 러닝을 이용한 자연어 처리

[딥 러닝을 이용한 자연어 처리 입문] 07. 딥 러닝 개요 - 퍼셉트론

퍼셉트론 초기 형태의 인공 신경망으로 다수의 입력으로부터 하나의 결과를 내보내는 알고리즘 x는 입력값을 의미하며, w는 가중치, y는 출력값으로 각각의 인공 뉴런에서 보내진 입력값 x는 각각의 가중치 w와 함께 종착지인 인공 뉴런에 전달되게 되며 각각의 입력값에는 각각의 가중치가 존재하고, 이때 가중치의 값이 크면 클수록 해당 입력 값이 중요하게 됨 각 입력값이 가중치와 곱해져서 인공 뉴런에 보내지고, 각 입력값과 그에 해당되는 가중치의 곱의 전체 합이 임계치를 넘으면 종착지에 있는 인공 뉴런의 출력 신호로서 1을 출력하고, 그렇지 않을 경우 0을 출력 이러한 함수를 계단 함수라고 함 계단 함수에 사용된 임계치값을 수식으로 표현할 때는 보통 세타로 표현하고 이 식에서 임계치인 세타를 좌변으로 넘기고 편향..

ML/딥 러닝을 이용한 자연어 처리

[딥 러닝을 이용한 자연어 처리 입문] 07. 딥 러닝 개요 - 딥 러닝 개요

딥 러닝 머신 러닝의 특정한 한 분야로서 인공 신경망의 층을 연속적으로 깊게 쌓아올려 데이터를 학습하는 방식 기계에 학습을 시키는 인공 신경망이 심층 신경망일 경우를 뜻함