본문 바로가기

전체 글

(37)
통계학의 이해 1 - week5 : 확률의 기본 개념과 원리 1. 확률이란? 개념 확률이 발생하는 상황 주사위 던지기 앞면이 나올 때까지 동전 던지기 휴대전화의 수명 실험을 시행하기 전에 발생할 수 있는 모든 결과는 알 수 있음 {1,2,3,4,5,6} {앞, 뒤앞, 뒤뒤앞 ....} {x|0 ≤ x } 실험을 하기 전까지 이들 결과 중 어떤 것이 발생할 것인지에 대해 확실하게 예측할 수 없음 => 불확실성 확률실험 (random experiment) : 확률이 발생하고 발생할 수 있는 모든 결과를 알 수 있는 실험 표본공간 (sample space : Ω) : 확률실험에서 발생 가능한 모든 결과들의 집 사건 (event) : 표본공간 내에서의 관심 부분집합 예) 3번 이하로 앞면이 나올 때까지 동전 던지는 경우 {앞, 뒤앞, 뒤뒤앞} 확률 : 어떤 사건이 발생할..
ch1. 벡터(Vectors) 1.1 공학과 수학에서의 벡터 : n-공간 스칼라 (scalar) : 크기만 주어지면 완전히 표시되는 양 (길이, 넓이, 질량, 온도) 벡터 (vector) : 크기뿐만 아니라 방향까지 지정하지 않으면 완전히 표현할 수 없는 양 (속도, 위치이동, 힘) 크기와 방향을 갖는 유향선분 - 2차원, 3차원 공간의 벡터는 화살표로 표현 가능 영벡터 : 시작점과 끝점이 같아서 크기가 0인 벡터 (크기가 0이므로 방향은 임의의 방향) 정의 - 벡터의 덧셈과 스칼라배 좌표평면에서 원점을 시작점으로 하는 모든 벡터는 끝점에 의해 크기와 방향이 결정됨 벡터는 크기와 방향이 같으면 시작점에 관계없이 항상 동일한 벡터로 간주 -> 모든 벡터는 점의 좌표를 이용하여 나타낼 수 있음 정의 - 벡터와 성분 정의 - 상등 시작점이..
8장 : 어텐션 8.1 어텐션의 구조 8.1.1 seq2seq의 문제점 seq2seq에서 Encoder의 출력은 고정 길이 벡터 고정 길이 벡터 - 입력 문장의 길이에 관계없이 항상 같은 길이의 벡터로 변환 -> 필요한 정보가 벡터에 다 담기지 못하게 됨 8.1.2 Encoder 개선 Encoder출력의 길이를 입력 문장의 길이에 따라 바꿔줌 -> 시각별 LSTM계층의 은닉 상태 벡터를 모두 이용 -> 입력된 단어와 같은 수의 벡터 각 시각의 은닉 상태에는 직전에 입력된 단어에 대한 정보가 많이 포함되어 있음 -> hs : 각 단어에 해당하는 벡터들의 집합 8.1.3 Decoder 개선 ① 기존 Decoder - Encoder의 LSTM 계층의 마지막 은닉 상태만을 이용 -> hs 전부를 활용할 수 있도록 Decoder..
7장 : RNN을 사용한 문장 생성 7.1 언어 모델을 사용한 문장 생성 7.1.1 RNN을 사용한 문장 생성의 순서 'I' 라는 단어를 입력으로 주면 다음에 출현하는 단어의 확률분포를 출력함 이 결과를 기초로 다음 단어를 새로 생성하려면 1) 확률이 가장 높은 단어를 선택하는 방법 - 결정적 결정적 : 결과가 일정하게 정해지는 것 2) 확률적으로 선택하는 방법 각 후보 단어의 확률에 맞게 선택하는 것, 확률이 높은 단어는 선택되기 쉽고, 낮은 단어는 선택되기 어려움 선택되는 단어(샘플링 단어)가 매번 다를 수 있음 7.1.2 문장 생성 구현 ##RnnlmGen 클래스 구현 class RnnlmGen(Rnnlm): def generate(self, start_id, skip_ids=None, sample_size=100): #statr_i..
6장 : 게이트가 추가된 RNN 6.1 RNN의 문제점 6.1.1 RNN 복습 6.1.2 기울기 소실 또는 기울기 폭발 기울기 소실 : 시간을 거슬러 올라갈수록 기울기가 작아짐 기울기 폭발 : 시간을 거슬러 올라갈수록 기울기가 커짐 6.1.3 기울기 소실과 기울기 폭발의 원인 역전파에서 차례로 tanh -> + -> MatMul 연산 통과 tanh - 미분값 그래프 : 1.0이하, x가 0으로부터 멀어질수록 작아짐 => 역전파에서 기울기가 tanh 노드를 지날 때마다 값이 계속 작아짐 MatMul - 시계열 데이터의 시간 크기만큼 매번 똑같은 Wh가중치가 행렬 곱에 사용됨 N = 2 #미니배치 크기 H = 3 #은닉 상태 벡터의 차원 수 T = 20 #시계열 데이터의 길이 dh = np.ones((N, H)) np.random.seed..
5장 : 순환 신경망(RNN) 지금까지의 신경망 - 피드포워드 (feed forward) 신경망 -> 시계열 데이터 다루지 못한다는 단점 => 순환 신경망 RNN 등장 5.1 확률과 언어 모델 5.1.1 word2vec을 확률 관점에서 바라보다 지금까지는 맥락을 좌우 대칭으로 생각해옴 -> 맥락을 왼쪽 윈도우만으로 한정 5.1.2 언어 모델 단어 나열에 확률 부여 특정한 단어의 시퀀스에 대해 그 시퀀스가 일어날 가능성을 확률로 평가 수식적 설명 W1,...,Wm이라는 m개 단어로 된 문장 단어 W1,...,Wm이라는 순서로 출현할 확률 : P(W1,...,Wm) -> 동시 확률 (여러 사건이 동시에 일어날 확률) 사후 확률을 사용하여 분해 가능 (확률의 곱셈정리에 의해) 파이 기호 : 모든 원소를 곱하는 총곱 -> 사후확률 : 타깃 ..
4장 : word2vec 속도 개선 앞 장의 단순한 word2vec에 두 가지 개선 추가 1) Embedding 계층 도입 2) 네거티브 샘플링이라는 새로운 손실 함수 도입 4.1 word2vec 개선 ① 거대한 말뭉치를 다루게 되면 두 계산의 병목 발생 -> 계산에 많은 시간 소요 1) 입력층의 원핫 표현과 가중치 행렬 W_in의 곱 계산 -> Embedding 계층으로 해결 2) 은닉층과 가중치 행렬 W_out의 곱 및 softmax 계층의 계산 -> 네거티브 샘플링 손실 함수로 해결 4.1.1 Embedding 계층 -> 결과적으로 행렬의 특정 행을 추출하는 것 => 단어ID에 해당하는 행을 추출하는 계층 (Embedding 계층) Embedding 계층에 단어 임베딩(분산 표현) 저장 단어의 밀집벡터 표현 : 단어 임베딩, 분산 표..
3장 : word2vec 추론 기반 기법 3.1 추론 기반 기법과 신경망 단어를 벡터로 표현하는 방법 - 통계 기반 기법, 추론 기반 기법 -> 모두 분포 가설이 배경 3.1.1 통계 기반 기법의 문제점 대규모 말뭉치를 다룰 때 문제 발생 SVD를 nxn 행렬에 적용하는 비용은 O(n^3) 통계 기반 기법은 1회의 처리만에 단어의 분산 표현 얻음 추론 기반 기법에서는 신경망을 이용해 미니배치로 학습 -> 학습 샘플씩 반복해서 학습하며 가중치 갱신 -> 계산량이 큰 작업 처리 가능, GPU 이용한 병렬 계산 가능 3.1.2 추론 기반 기법 개요 추론 : 주변 단어(맥락)가 주어졌을 때 ?에 무슨 단어가 들어가는지 추측하는 작업 추론 문제를 반복해서 풀면서 단어의 출현 패턴 학습 모델 - 맥락 정보를 입력받아 각 단어의 출현 확률을..