ML&DL(14)
-
심층 신경망 훈련하기 - Gradient 소실과 폭주 문제 해결 방법
본 글은 핸즈온 머신러닝 Part2-11장(심층 신경망 훈련하기)를 공부한 후 정리한 내용입니다. ✅ 보다 깊은 심층 신경망을 학습시켜 아주 복잡한 문제를 다룰 때 발생할 수 있는 문제들 Gradient 소실 or gradient 폭주 문제에 직면. 심층 신경망의 아래쪽으로 갈수록 gradient가 점점 더 작아지거나 커지는 현상 하위층을 학습하기 매우 어렵게 만듦. 대규모 신경망을 위한 학습 데이터가 충분하지 않거나 레이블을 만드는 작업에 비용이 많이 들 수 있음. 학습이 극단적으로 느려질 수 있음. 수백만 개의 파라미터를 가진 모델은 학습 할 때 과대적합 될 위험이 큼. 특히, 학습 샘플이 충분하지 않거나 잡음이 많은 경우 그 중 Gradient 소실 or gradient 폭주 문제를 해결하는 방법에..
2020.12.29 -
[DL] 06. 새로운 데이터를 생성하는 법, GAN?
순천향대학교 빅데이터 공학과 김정현 교수님의 강의를 바탕으로 정리한 글이며 수업 자료의 저작권 문제로 인해 수업 자료를 직접 이용하지 않았음을 먼저 밝힙니다. 문제가 될 시 바로 삭제하겠습니다. 이번 글은 새로운 데이터를 만들어내는 Generative Adversarial Network 모형에 대해 알아보겠습니다. 순서 1. Generative Model 학습 방법 2. GAN? 3. GAN 학습 방법 4. GAN 코드(Tensorflow) Generative Model 학습 방법 GAN 모델에 대해 알아보기 전 Generative Model에 대해 알아보겠습니다. Generative Model은 랜덤 한 latent code를 입력으로 넣으면 출력으로 새로운 데이터가 나오는 학습 방법입니다. 그럼 la..
2020.12.08 -
[DL] 05. 데이터를 압축하고 생성하는 AutoEncoder?
순천향대학교 빅데이터공학과 김정현 교수님의 강의를 바탕으로 정리한 글이며 수업 자료의 저작권 문제로 인해 수업 자료를 직접 이용하지 않았음을 먼저 밝힙니다. 문제가 될 시 바로 삭제하겠습니다. 이번 글은 입력 데이터를 압축하기도 하고 입력 데이터로부터 새로운 데이터를 생성하기도 하는 AutoEncoder에 관한 글입니다. 순서 1. Autoencoder 1.1 활용사례 2. PCA vs. AutoEncoder 3. Stacked AutoEncoder 4. Denoising AutoEncoder 5. Variational AutoEncoder 1. Autoencoder Autoencoder는 입력 데이터를 작은 단위의 대푯값들만 남겨 압축시킨 후 다시 확장시켜 출력 데이터를 입력 데이터와 동일하게 하는 뉴..
2020.12.08 -
[DL] 음성 신호 모델링하는 방법, Wavenet 알아보기 - A Generative Model for Raw Audio
Wavenet은 음성 신호 Wave 자체를 모델링하여 음성을 생성하는 방법으로 2016년 구글 딥마인드에서 신경망을 이용하여 보다 자연스러운 TTS(Texts to Speech)를 개발한 것입니다. TTS란 텍스트를 음성으로 변환하는 것으로 오디오 북, 언어 교육 서비스, 외국어 더빙 등에 활용됩니다. TTS Wavenet이 나오기 전인 2015년 전통적인 TTS 모델들은 unit-selection speech synthesis 방법과 Statistical parameter speech synehesis 방법이 대표적이었습니다. unit-selection speech synthesis 방법은 방대한 양의 DB가 있다고 가정하고 어떤 기준(음소 정보)에 따라 데이터를 불러온 후 작게 쪼갠 데이터를 conc..
2020.11.13 -
[ML] 수식과 함께 SVM 이론 파헤치기
이번 글은 SVM에 대한 내용입니다. 이 강의는 순천향대학교 정영섭 교수님의 강의와 핸즈온 머신러닝을 참고하여 정리했음을 먼저 밝힙니다. 순서 1. SVM Motivation 2. 특징 3. 비선형 SVM 4.1. 수식으로 보는 SVM 4.2. Lagrangian multiplier method 4.3. Dual 문제로 변환 5. 장단점 1. SVM Motivation SVM은 Support Vector Machine의 줄임말입니다. 이 모델은 매우 강력하고 선형, 비선형 분류, 회귀, 이상치 탐색에 사용할 수 있습니다. 아래 그림에서 +,- 두 범주를 나누는 분류 문제를 푼다고 가정할 때 가장 잘 분류하는 선을 긋는다면 빨간색 선을 그을 수 있을 것입니다. 이렇게 두 범주를 나누는 선을 decision..
2020.11.12 -
[ML] 하나의 class만 학습시켜서 불균형 데이터 예측하기
Binary classification을 할 때 class의 데이터가 매우 불균형하거나 class에 한 개의 데이터만 있고 나머지 데이터가 없는 경우들이 있습니다. 이런 경우는 하나의 class만 학습시켜서 분류를 할 수 있는데 그 중 사용되는 방법 중 하나가 OCSVM입니다. OCSVM OCSVM은 One-class SVM의 줄임말로 SVM(Support vector machine)과 달리 비지도 학습(unsupervised learning)입니다. 주어진 데이터를 잘 설명할 수 있는 최적의 support vector를 구하고 이 영역 밖의 데이터들은 outlier로 간주하는 방식으로 이상치 탐지, 이미지 검색, 문서/ 텍스트 분류 등에 사용되었습니다. 위 그림과 같이 알고리즘은 초록색 원의 샘플 데이..
2020.11.12