프로그래밍61 RNN이 쓰이는 어플리케이션(분야)은 어떤게 있을까? 우선 RNN의 입력과 출력에 따른 모델을 한번 살펴보자. 입력이 여러개이고 출력이 한개인 경우(Many to One), 텍스트 분류에 쓰인다고 한다. 즉, 이 텍스트가 뉴스 카테고리인지 연예 카테고리인지 자기계발인지 하는 텍스트가 속한 카테고리를 정해주는 것이라고 생각하시면 될 것 같다. 최종 출력만 필요하고 나머지 이전의 출력값은 다 버린다. 일대다(One to Many)의 모델의 경우에는 NLG와 Machine Translation이 있다. NLG는 Natural Language Generation 즉, 자연어 생성을 뜻한다. 예를 들어 '나는 멍멍이와 뛰고 싶다'라는 문장이 있을 때 '나는'이라는 단어를 입력하면 뒤에 '멍멍이와'라는 단어가 생성되고, 그 '멍멍이와'라는 출력이 다시 입력으로 들어가.. 2020. 7. 3. Vanilla RNN(Recurrent Neural Network)이란? 보통의 딥러닝은 다음과 같은 입출력을 보인다. 즉, 입력 x가 들어가면 출력 y가 나오는 식이다. 그런데, RNN 또는 Vanilla RNN의 경우는 다음과 같다.(RNN과 Vanilla RNN은 같은 말이라고 생각하면 된다.) 입력 x가 들어가면 출력 h가 나오는데, 그 출력이 다시한번 입력과 결합되는 방식이다. 이런 RNN 모델에는 어떤 입력 x가 적합할까? 김기현 강사님에 따르면, Sequential Data에 적합하다고 한다. Sequential Data란 말 그대로 순차적인 데이터를 뜻하는데, 예를 들어보면 내가 지금 쓰고 있는 텍스트나 샘플링 주기가 일정한 영상 또는 음성 등이 있다. 이러한 Sequantial Data의 경우에는 데이터의 순서정보가 중요하다고 한다. 텍스트의 경우에는 단어의 .. 2020. 7. 2. Maximum Likelihood Estimation(MLE)과 Cross Entropy(CE)와의 관계. 결국 같은것이었다. MLE에 대한 내용은 아신다고 가정하고 진행해보겠습니다. 확률분포 내에서 데이터(D)에 대한 N개의 샘플을 먼저 추출하구요. 입력 x를 넣었을 때 출력 y값을 다 더한값이 최대가 되게하는 세타 햇 즉, 랜덤변수를 찾는 것이 MLE의 목표였습니다. 이걸 Negative Log Likelihood(NLL)로 변환하면 식이 다음과 같이 바뀌죠. 그리고 딥 뉴럴 네트워크로 가서 한번 살펴보겠습니다. 가장 왼쪽이 입력 x죠. 그리고 softmax를 거친 y햇이 나옵니다. 이걸 식으로 나타내면 다음과 같습니다. 그리고 Cross Entropy를 볼까요? 앞에 1/N을 제외한 나머지는 똑같습니다. 1/N은 미분하면 사라지게 되구요. 결국 최대의 확률 분포를 찾는 것. 즉, 최소의 Negative Log Likelih.. 2020. 7. 1. Maximum Likelihood Estimation(MLE)를 프로그래밍에 적용하는 방법. Negative Log Likelihood(NLL) 확률 표현에서 다음은 모두 같은 식이다. 여기서 세타는 랜덤 변수(Random Variable)이다. MLE의 목표는 우리가 확률 분포로 부터 샘플링하여 데이터를 넣었을 때, 확률 분포를 반환하는 가상의 함수를 모사하는 것이다. 그래서 우리는 가상의 확률분포를 모사하는 확률분포 파라미터 세타값을 찾는 것이 목표이다. 이걸 딥 뉴럴 네트워크에 대입하면 다음과 같이 가중치 W와 편향 b를 찾는 것이 된다. 여기서 문제는 이걸 찾기 위해 적용되는 기법은 Gradient Ascent라는 것이다. 그러나, 프로그래밍에서는 보통 Gradient Descent를 지원한다. 그렇기에 우리는 MLE에 마이너스(-)를 붙여서 Negative Log Likelihood(NLL)로 표현한다. 그리고 마이너스가 붙음으로써 Ma.. 2020. 6. 30. 이전 1 ··· 7 8 9 10 11 12 13 ··· 16 다음