- 변수 : 값을 저장하는 장소, 변수는 메모리 주소를 가지고 있으며 값은 해당 주소에 할당 됨
- 폰 노이만 아키텍처 : 사용자가 컴퓨터에 값을 입력하거나 프로그램을 실행할 경우 그 정보를 먼저 메모리에 저장시키고 CPU가 순차적으로 그 정보를 해석하고 계산하여 사용자에게 결과값을 전달
- 컴퓨터의 반올림 오차 : 단순한 실수도 이진수(반도체)로 변환하면 무한소수가 되기에
- 경사하강법은 미분가능하고 볼록(convex)한 함수에 대해선 적절한 학습률과 학습횟수를 선택했을 때 수렴이 보장된다
- 몬테카를로 샘플링 : 확률분포를 모를 때 데이터를 이용하여 기대값을 계산하려면 몬테카를로 샘플링 방법을 활용
- 모수적 방법론 : 데이터가 특정 확률분포를 따른다고 선험적으로 가정한 후 그 분포를 결정하는 모수 추정 방법
- 비모수적 방법론 : 특정 확률분포를 가정하지 않고 데이터에 따라 모델의 구조 및 모수의 개수가 유연하게 바뀌면 비모수 방법론
- MLE : 표집한 값들을 토대로 그 확률변수의 모수를 구하는 방법
- TensorFlow vs PyTorch : Define and Run, Define by Run
- Define and Run : 그래프 먼저 정의 -> 실행시점에 데이터 feed
- Define by Run : 실행을 하면서 그래프를 생성
- 이 외에도 NHWC, NCHW 등의 차이가 있음
- Transformer : 순차적으로 처리해 뒤의 정보를 활용하지 못하는 RNN의 한계를 극복
- Self-attention : 하나의 Z 벡터를 임베딩할 때 해당 X 벡터만을 사용하는 것이 아닌 모든 input 값을 사용한다.
- Self-Attention : Queries, Keys, Values vectors are computed per each word(=embedding)
- Q,K,V를 통해 Score vector를 구한다.
- Joint Probability Distribution : 두 개 이상의 사건이 동시에 일어날 확률 분포
- Marginal Probability : 결합확률 분포를 전제, 하나의 확률 변수에 대한 확률 함수
- Coditional Probability : 주어진 사건이 일어났을 때 다른 한 사건이 일어날 확률
- 베이즈 정리 : P(A∣B)=P(B)P(B∣A)P(A)
- P(A∣B) : 사후확률, 사건 B가 발생한 후 갱신된 사건 A의 확률
- P(A) : 사전확률, 사건 B가 발생하기 전에 가지고 있던 사건 A의 확률
- P(B∣A) : 가능도, 사건 A가 발생할 경우 사건 B의 확률
- P(B) : 정규화 상수 or 증거, 확률의 크기 조정
- 즉 베이즈 정리란 데이터라는 조건이 주어졌을 떄의 조건부 확률을 구하는 공식
- 사전 확률에 가능도를 정규화 상수로 나눈 값을 곱한다.
- Word2Vec : An algorithm for training vector representation of a word from context words
- 분산표현방식
- CBOW : 주변단어를 통해 중심단어를 예측
- Skip-gram : 중심단어로 주변단어를 예측
- Vanishing / Exploding Gradient Problem
- Sigmoid activation function + Random initialization -> 출력의 분산이 입력의 분산보다 커짐 -> 신경망의 더 깊은 층으로 갈 수록 분산이 커지기에 0 or 1으로 수렴 즉 Vanishing or Exploding
- Sigmoid -> not Zero-centered + 미분 값이 약 0.3보다 작기에 더 영향이 큼
- tanh -> Sigmoid 보다는 덜하지만 미분의 최대값이 1이기에 결국 계속 작아짐
- LSTM(Long Short-Term Memory) : pass cell state information
- Solving long-term dependency problem
- i,f,o,g : input, forget, output, gate gate
- GRU : Gated Recurrent Unit
- 게이트를 하나 줄여서 효율적인 LSTM을 만들었다.
- Seq2Seq
- it takes a sequence of words as input and gives a sequence of words as output
- it composed of an encoder and a decoder
- encoder를 지나며 생성된 h0이 Decoder에 들어간다.
- Seq2Seq with attention
- Decoder의 첫 hidden state vector인 h0은 Encoder를 통해 얻고 이와 각 Encoder vector의 내적을 통해 Attention Score를 얻는다. 이후 Softmax 연산을 통해 Attention Distribution을 만들고 이를 통해 Attention output을 얻는다.
- 그 후 Decoder의 ht는 xt(input_data)와 이전 hidden state vector를 통해 얻는다.
- Attention의 장점
- Improves NMT performance
- Solves the bottlenect problem : allow the decoder to look directly at source
- Helps with vanishing gradient problem : Provides a shortcut to far-away states
- Provides some interpretability
- Beam-search : Beam size 개수만큼 단어를 생성하여 가장 가능성 높은 문장을 만든다.
- BLEU score
- Precision = length_of_predictioncorrect_words
- recall = length_of_referencecorrect_words
- F-measure = 21(precision+recall)precision×recall
- (산술)278+70 ≥ (기하)(78×70)21 ≥ (조화)2781+7011
- Precision and Recall : no penalty for reordering

- 기하 평균
- reference 길이보다 짧은 prediction을 생성할 경우 min 연산으로 인해 작은 값이 들어가 짧은 prediction에 대한 penalty를 부여 (brevity penalty)

- Macro : 모든 label을 고려, 각 라벨별 결과를 도출 후, 이에 대한 평균 계산
- Weighted Macro : label frequency를 weight로 사용
- Micro : 전체를 본다
- Convolution 연산
- 신호를 커널을 이용해 국소적으로 증폭 또는 감소시켜서 정보를 추출 또는 필터링
- 활성화 함수를 제외한 Convolution 연산도 선형변환에 속한다.
- CNN에 사용하는 연산은 사실 convolution이 아니고 cross-correlation이다.
- Cross-correlation 설명