loss function

• 머신러닝 모델의 성능을 평가하기 위해 사용되는 함수. • 모델의 예측값과 실제값 사이의 오차를 측정하고, 이를 최소화하는 방향으로 모델을 학습시킵니다. • loss function 예제  ◦ 평균 제곱 오차(Mean Squared Error, MSE): ▪ 회귀 문제에서 주로 사용되는 손실 함수입니다. ▪ 예측값과 실제값 사이의 제곱 오차를 평균한 값입니다. ▪ MSE = (1/N) * Σ(y_pred - y_actual)^2 ◦ 평균 절대 오차(Mean Absolute Error, MAE): ▪ 회귀 문제에서 사용되는 다른 손실 함수입니다. ▪ 예측값과 실제값 사이의 절대 오차를 평균한 값입니다. ▪ MAE = (1/N) * Σ|y_pred - y_actual| ◦ 교차 엔트로피 손실(Cross-Entropy Loss): ▪ 분류 문제에서 주로 사용되는 손실 함수입니다. ▪ 예측값의 확률 분포와 실제값의 원-핫 인코딩을 비교하여 오차를 계산합니다. ▪ 교차 엔트로피 손실은 예측값이 실제값과 일치할 때 최소값을 가지며, 오차가 클수록 손실 값이 증가합니다. ◦ 로그 손실(Log Loss) 또는 이진 교차 엔트로피 손실(Binary Cross-Entropy Loss): ▪ 이진 분류 문제에서 주로 사용되는 손실 함수입니다. ▪ 두 클래스에 대한 확률값을 비교하여 오차를 계산합니다. ▪ 로그 손실은 예측값이 실제값과 일치할 때 최소값을 가지며, 오차가 클수록 손실 값이 증가합니다.

optimizer

• 모델의 학습 과정에서 사용되는 알고리즘 또는 방법을 의미 • 모델의 가중치와 편향을 조정하여 손실 함수를 최소화하는 최적의 파라미터 값을 찾는 역할을 수행 • 옵티마이저의 선택은 학습의 속도와 결과에 큰 영향을 미칠 수 있으며, 적절한 옵티마이저를 선택하는 것이 중요 • optimizer 기능 ◦ 기울기 계산: 옵티마이저는 손실 함수의 기울기(경사)를 계산합니다. 이를 통해 현재 파라미터 값에서의 손실 함수의 변화를 알 수 있습니다. ◦ 파라미터 업데이트: 옵티마이저는 계산된 기울기를 사용하여 모델의 파라미터 값을 업데이트합니다. 이는 손실 함수를 최소화하는 방향으로 파라미터 값을 이동시킵니다. • 주요 optimizer 알고리즘 ◦ 확률적 경사 하강법 (Stochastic Gradient Descent, SGD): 각 학습 단계에서 무작위로 선택한 일부 데이터만을 사용하여 기울기를 계산하고 파라미터를 업데이트합니다. ◦ 모멘텀 최적화 (Momentum Optimization): 이전 업데이트에서의 기울기를 이용하여 업데이트를 진행하는 방식으로, 학습 속도를 빠르게 만들고 지역 최솟값에서 벗어나는 데 도움을 줍니다. ◦ 아다그라드 (Adagrad): 매개변수마다 학습률을 조정하여 학습을 진행하는 방식으로, 희소한 기울기에 대해서는 큰 학습률을 적용하고 자주 등장하는 기울기에 대해서는 작은 학습률을 적용합니다. ◦ RMSProp: 아다그라드의 단점을 보완한 알고리즘으로, 누적된 기울기 제곱값이 계속해서 커지는 문제를 해결합니다. ◦ 아담 (Adam): 모멘텀 최적화와 RMSProp을 결합한 알고리즘으로, 학습률을 자동으로 조절하면서 최적화 과정을 진행합니다.

data augmentation

• 데이터 전처리 기법 • 기존의 학습 데이터를 변형하거나 추가하여 데이터셋을 확장하는 방법으로, 모델의 성능을 향상시키고 과적합을 방지하는 데 도움을 줍니다. • 예제 ◦ 이미지 : 좌우 반전, 회전, 크기 조절, 밝기 조절 등의 변형 ◦ 텍스트 : 번역 후 재번역을 통해 새로운 데이터를 만들어내는 역번역(Back Translation)

capacity

• 모델이 학습할 수 있는 복잡성 또는 유연성 • 모델의 Capacity가 높을수록 더 복잡한 함수를 모델링할 수 있지만, 동시에 더 많은 데이터를 필요로 할 수 있고, 과적합(Overfitting)의 위험도 증가할 수 있습니다. • 모델의 Capacity는 모델 구조, 파라미터의 수, 히든 레이어의 수 등과 관련이 있습니다. 작은 Capacity를 가진 모델은 단순한 함수를 학습할 수 있지만, 복잡한 패턴을 학습하기 어려울 수 있습니다. 반면에 큰 Capacity를 가진 모델은 복잡한 함수를 학습할 수 있지만, 적은 데이터로도 모델이 데이터에 과적합될 수 있는 가능성이 높습니다. ◦ 인공 신경망에서는 모델에 있는 매개변수들의 수를 모델의 수용력(capacity)이라고 하기도 합니다. • 모델의 Capacity 선택은 학습 알고리즘의 목표와 데이터의 특성에 따라 달라집니다. 모델이 데이터에 잘 일반화되고 적절한 복잡성을 가질 수 있도록 Capacity를 조절하는 것이 중요합니다. 이를 위해서는 교차 검증과 같은 기법을 사용하여 모델의 성능을 평가하고 최적의 Capacity를 찾을 수 있습니다.

regularization

• 모델의 복잡성을 제어하여 과적합(Overfitting)을 방지하는 기법 • 복잡한 모델을 좀 더 간단하게 하는 방법 • loss function에 추가적인 항을 도입하여 모델의 가중치(weight)를 제한하거나 페널티를 부과함으로써 모델의 일반화 능력을 향상 • 예제( regularization의 강도를 정하는 hyperparameter 사용됨 )  ◦ L1 Regularization은 가중치의 절댓값에 비례하는 페널티를 부과합니다. 이로써 가중치 값 중 일부가 0이 되면서 특성 선택(feature selection)의 효과를 가져올 수 있습니다. ▪ 어떤 특성들이 모델에 영향을 주고 있는지를 정확히 판단하고자 할 때 유용 ◦ L2 Regularization은 가중치의 제곱에 비례하는 페널티를 부과합니다. 이로써 가중치 값들이 전반적으로 작아지고, 모든 특성들이 약간의 기여를 할 수 있게 됩니다. ▪ 인공 신경망에서 L2 규제는 weight decay라고도 부릅니다.

dropout

• 학습 과정에서 신경망의 일부를 사용하지 않는 방법 • 신경망 학습 시에만 사용하고, 예측 시에는 사용하지 않는 것이 일반적. • 학습 시에 인공 신경망이 특정 뉴런 또는 특정 조합에 너무 의존적이게 되는 것을 방지해주고, 매번 랜덤 선택으로 뉴런들을 사용하지 않으므로 서로 다른 신경망들을 앙상블하여 사용하는 것 같은 효과를 내어 과적합을 방지

gradient vanishing

• 역전파 알고리즘에서 gradient 값이 신경망의 하위 층으로 전달될 때 지수적으로 감소하여 사라지는 현상 • 주로 활성화 함수로 시그모이드 함수를 사용할 때 발생하는데, 시그모이드 함수의 미분값이 0에 가까워지는 영역에서 기울기가 소실되기 때문입니다. 따라서 깊은 신경망에서는 역전파 알고리즘이 잘 작동하지 않고, 학습이 어려워집니다. • 심층 신경망의 훈련에 영향을 주는 중요한 문제이며, 이를 극복하기 위해 연구와 개발이 계속 진행되고 있습니다. • 완화하기 위한 기법 ◦ ReLU(Rectified Linear Unit) 사용 ◦ 그래디언트 클리핑(Gradient Clipping) 방법을 사용하여 기울기 값을 제한하는 등의 전처리나 알고리즘적인 조치 ◦ regularization 기법을 사용하여 모델의 복잡성을 제어 ◦ 배치 정규화(Batch Normalization)와 같은 방법을 사용하여 그래디언트의 스케일을 조정하는 등의 기법.

gradient exploding

• 역전파 알고리즘에서 기울기(gradient) 값이 지수적으로 증가하여 발산하는 현상 • 완화하기 위한 기법 ◦ 활성화 함수로 시그모이드나 하이퍼볼릭탄젠트 함수 대신에 ReLU나 ReLU의 변형 함수와 같은 Leaky ReLU를 사용.  ◦ 그래디언트 클리핑(Gradient Clipping)이 사용 ◦ 가중치 초기화(xavier initialization, he initialization), 학습률 조정, 배치 정규화 등의 기법을 사용하여 Gradient Exploding을 완화 ◦ 모델 구조와 하이퍼파라미터 설정, 데이터 전처리 등을 조절

gradient clipping

• 기울기 값이 임계값을 넘지 않도록 제한하는 방법( 일반적으로 L2 노름을 사용하여 기울기 벡터의 크기를 제한 )

normalization

• 입력 데이터의 스케일을 조정하는 작업 • 데이터 전처리 단계에서 수행. • 모델의 학습과 일반화 능력을 향상. • 데이터의 분포를 변경하지 않으면서 데이터를 일정한 범위나 척도로 조정하여 학습 알고리즘이 더 잘 동작하도록 돕는 방법 • 목적 ◦ 스케일 조정: 입력 데이터의 범위가 크게 차이나는 경우, 학습 알고리즘이 스케일이 큰 특성에 치우쳐져서 학습을 제대로 수행하지 못할 수 있습니다. 정규화는 입력 데이터를 일정한 범위로 조정하여 이러한 문제를 해결합니다. ◦ 그래디언트 안정화: 일부 머신 러닝 알고리즘에서는 그래디언트의 크기에 민감하게 반응하는 경우가 있습니다. 입력 데이터의 스케일이 큰 경우 그래디언트의 크기도 커져서 학습이 불안정해질 수 있습니다. 정규화는 그래디언트의 크기를 조절하여 학습 과정을 안정화시키는 역할을 합니다. ◦ 과적합 방지: 정규화는 모델의 복잡도를 제어하여 과적합을 방지하는 데 도움을 줍니다. 과적합은 모델이 학습 데이터에 지나치게 적합되어 일반화 성능이 떨어지는 현상을 말합니다. 정규화는 모델의 가중치를 제한하거나 제약을 가하여 과적합을 완화시키는 효과를 얻을 수 있습니다. • normalization 주요 기법 ◦ 표준화(Standardization): 입력 데이터를 평균이 0, 표준 편차가 1인 정규 분포로 변환하는 방법입니다. ◦ 최소-최대 스케일링(Min-Max Scaling): 입력 데이터를 주어진 범위(minimum과 maximum)로 조정하는 방법입니다. ◦ 정규화(Normalization): 입력 데이터를 특정 분포로 변환하는 방법으로, 예를 들면 0과 1 사이로 조정하거나 단위 길이로 조정하는 방법 등이 있습니다.

batch normalization

• 인공 신경망의 각 층에 들어가는 입력을 평균과 분산으로 정규화하여 학습을 효율적으로 만듭니다. • 배치 정규화는 모델을 복잡하게 하며, 추가 계산을 하는 것이므로 테스트 데이터에 대한 예측 시에 실행 시간이 느려집니다. 그래서 서비스 속도를 고려하는 관점에서는 배치 정규화가 꼭 필요한지 고민이 필요합니다. • 동작 방식 ◦ 미니배치 내의 각 특성별로 평균과 분산을 계산합니다. ◦ 평균과 분산을 사용하여 각 특성을 정규화합니다. ◦ 정규화된 데이터를 스케일과 시프트 파라미터를 사용하여 조정합니다. ◦ 조정된 데이터를 출력으로 반환합니다. • 장점 ◦ 그래디언트의 전파 문제를 완화시킵니다. 입력 데이터가 평균이 0에 가까워지고 분산이 1에 가까워지므로, 그래디언트의 크기가 적절하게 조절됩니다. ◦ 학습 속도를 향상시킵니다. 정규화된 입력 데이터는 그래디언트를 보다 안정적으로 전달하므로, 모델이 더 빠르게 수렴할 수 있습니다. ◦ 모델의 일반화 성능을 향상시킵니다. Batch Normalization은 일종의 규제 역할을 수행하여 과적합을 완화시키고 일반화 능력을 향상시킵니다. ◦ 학습 과정에서 학습률을 더 높게 설정할 수 있습니다. 정규화된 입력 데이터는 학습률을 높일 때 발생할 수 있는 그래디언트 폭주 문제를 완화시킵니다. ◦ 가중치 초기화에 훨씬 덜 민감해집니다. ◦ 미니 배치마다 평균과 표준편차를 계산하여 사용하므로 훈련 데이터에 일종의 잡음 주입의 부수 효과로 과적합을 방지하는 효과도 냅니다. 다시 말해, 마치 드롭아웃과 비슷한 효과를 냅니다. 물론, 드롭 아웃과 함께 사용하는 것이 좋습니다. • 한계점 ◦ 작은 미니 배치에서는 배치 정규화의 효과가 극단적으로 작용되어 훈련에 악영향을 줄 수 있습니다( 배치 크기에 의존적 ) ◦ RNN에 적용하기 어렵다( RNN은 각 시점(time step)마다 다른 통계치를 가집니다. 이는 RNN에 배치 정규화를 적용하는 것을 어렵게 만듭니다 ) ▪ layer normalization 적용 • 주로 심층 신경망에서 사용되며, 합성곱 신경망(Convolutional Neural Network)과 완전 연결 신경망(Fully Connected Neural Network)에서 효과적으로 적용됩니다

layer normalization

• 배치 정규화(Batch Normalization)와 달리 배치 크기에 의존하지 않고 각 층 내의 데이터에 대해 적용. • 주어진 층의 입력 데이터의 평균과 분산을 계산하고, 평균과 분산을 사용하여 입력 데이터를 정규화합니다. 정규화된 데이터는 평균을 0으로, 분산을 1로 조정하여 특성 간의 스케일을 맞춥니다. • 층(layer)에서 입력 데이터의 평균과 분산을 정규화하여 모델의 학습을 안정화시키고 성능을 향상시키는 데 도움을 줍니다 • 층 정규화는 주로 딥 뉴럴 네트워크에서 사용되며, 이미지 분류, 자연어 처리 등 다양한 머신러닝 작업에 적용될 수 있습니다. • 장점 ◦ 학습 과정을 안정화시켜 학습 속도를 개선합니다. ◦ 그래디언트 소실 문제를 완화시켜 학습을 원활하게 진행합니다. ◦ 학습 과정에서 일어나는 내부 공변량 변화(Internal Covariate Shift)를 완화시켜 학습의 일관성을 향상시킵니다.

covariate

• 독립 변수(입력 변수) 중에서 예측을 위해 사용되는 변수. covariate의 선택은 도메인 지식과 데이터 분석의 목적에 따라 결정. • covariate의 선택은 데이터 전처리 단계에서 이루어지며, feature engineering 과정에서 변수들을 변환하거나 새로운 변수를 생성하는 등의 작업을 수행할 수도 있습니다  • ex : 주택 가격을 예측하는 문제에서는 주택의 크기, 위치, 시설 등이 covariate로 사용될 수 있습니다.

internal covariate shift

• 신경망의 각 레이어를 거칠 때마다 입력 데이터의 분포가 변화하여 학습 과정을 어렵게 만드는 문제 • 내부 공변량 변화는 학습 과정을 느리게 만들 수 있고, 신경망의 성능을 저하시킬 수 있습니다. • 공변량 변화는 훈련 데이터의 분포와 테스트 데이터의 분포가 다른 경우를 의미합니다. • 발생 이유 ◦ 학습하는 동안 각 레이어의 가중치가 업데이트되면서 입력 데이터의 분포가 변할 수 있습니다 ◦ 미니배치 단위로 학습을 진행하면서 각 미니배치의 데이터 분포가 다를 수 있습니다 • 해결안 ◦ batch normalization

overfitting

• 모델이 학습 데이터에 너무 과도하게 적합되어 일반화 성능이 저하되는 현상 • 원인 : 모델이 학습 데이터의 잡음(noise)이나 이상치(outlier)에 과도하게 반응하여 그에 맞게 학습되기 때문입니다. • 해결 방안 ◦ 더 많은 훈련 데이터 사용 ◦ 모델의 복잡도 감소 (예: 파라미터 수 줄이기, 특성 선택, hidden layer 줄이기) ▪ 인공 신경망의 복잡도는 은닉층(hidden layer)의 수나 매개변수의 수 등으로 결정됩니다. ◦ 데이터 정규화: 데이터의 스케일을 맞추거나 표준화하여 모델이 데이터의 크기나 분포에 영향을 덜 받도록 합니다. ◦ regularization 기법 적용 (예: L1, L2 규제) ◦ dropout(학습 과정에서 신경망의 일부를 사용하지 않는 방법). ◦ 교차 검증(cross-validation)을 통한 모델 평가 ◦ 조기 종료: 검증 데이터의 성능이 최적일 때 학습을 종료하여 모델이 과적합되는 것을 방지합니다. ◦ 앙상블: 여러 개의 다른 모델을 결합하여 예측 결과를 종합함으로써 일반화 성능을 향상시킵니다.

underfitting

• 모델이 학습 데이터에 대해 너무 단순하거나 제대로 학습하지 못해 새로운 데이터에 대해 부족한 성능을 보이는 현상. 즉, 모델이 데이터의 패턴을 충분히 학습하지 못해 예측력이 낮아지는 것을 의미 • 특징 ◦ Training 데이터에서의 성능이 낮음: 모델이 학습 데이터에서도 좋은 성능을 발휘하지 못하고, 오차가 크게 나타납니다. ◦ Validation 데이터에서의 성능도 낮음: 모델이 학습 데이터 외의 데이터에 대해서도 성능이 낮게 나타납니다. 즉, 일반화(generalization) 능력이 부족합니다. • underfitting 해결 방안 ◦ 모델의 복잡도 증가 (예: 더 많은 은닉층, 더 많은 유닛) ◦ 더 많은 특성(feature) 사용 ◦ Feature Engineering: 더 좋은 특성(feature)을 추출하거나 유용한 특성을 생성하여 모델에 입력합니다. 좋은 특성은 모델이 데이터의 패턴을 더 잘 파악할 수 있도록 도와줍니다. ◦ 더 많은 학습 데이터 수집: 학습 데이터의 다양성과 양을 증가시켜 모델이 더 정확하게 데이터의 패턴을 학습하도록 합니다. ◦ 학습 알고리즘 변경 또는 하이퍼파라미터 조정 ◦ Regularization: 모델의 복잡성을 제어하기 위해 Regularization 기법을 사용합니다. Regularization은 모델의 가중치를 제한하거나 패널티를 부여하여 모델의 일반화 성능을 향상시키는 방법입니다.

cross-validation

• 모델의 일반화 성능을 평가하기 위해 사용되는 방법. • 머신러닝 모델의 일반화 성능을 평가하는 데 유용한 기법이며, 모델 선택, 매개 변수 조정 등 다양한 상황에서 활용될 수 있습니다. • 일반적으로 데이터를 학습 세트와 검증 세트로 나누어 학습과 검증을 수행하는 것과는 달리, Cross-Validation은 데이터를 여러 개의 폴드(fold)로 나누어 모델을 여러 번 학습하고 평가하는 방식입니다. • 과정 ◦ 데이터 준비: 전체 데이터를 훈련 데이터 세트와 테스트 데이터 세트로 나눕니다. ◦ K-Fold 분할: 데이터를 K개의 폴드로 나눕니다. 일반적으로 K는 5 또는 10을 많이 사용합니다. ◦ 모델 학습 및 검증: The model is then trained on k-1 folds, and the performance of the model is evaluated on the remaining fold. This process is repeated k times, and the average performance of the model is reported. ◦ 성능 측정: 각 반복에서의 모델 성능을 평가하여 평균 성능을 계산합니다. 주로 평균 정확도, 평균 F1 점수, 평균 로그 손실 등을 사용합니다. • 장점 ◦ 데이터를 효율적으로 활용할 수 있어 모델의 일반화 성능을 더 정확하게 평가할 수 있습니다. ◦ Overfitting을 방지할 수 있습니다. 검증 데이터 세트를 사용하여 모델의 성능을 평가하기 때문에 검증 데이터에만 과적합되는 것을 방지할 수 있습니다. ◦ 모델의 안정성을 평가할 수 있습니다. K번의 반복을 통해 얻은 성능 평가 결과의 변동성을 확인하여 모델의 일관성을 판단할 수 있습니다. • drawback ◦ 추가적인 계산 비용을 요구하며, 모델 학습 시간이 늘어날 수 있다. 또한 데이터가 편향되어 있는 경우에는 적절한 분할 방법을 선택하여 편향을 최소화해야 합니다. ◦ It can be difficult to interpret the results.

dense vector

• 고차원의 공간에서 원소가 모두 실수값인 벡터 • 밀집 벡터는 다양한 머신러닝 및 딥러닝 모델에서 입력 데이터의 표현 방식으로 사용되며, 다양한 자연어 처리, 이미지 처리, 추천 시스템 등의 응용 분야에서 활용됩니다. • 주요 특징 ◦ 모든 원소가 실수값인 벡터입니다. ◦ 고차원의 공간에서 밀집하게 분포되어 있습니다. ◦ 데이터의 특징을 잘 나타내고, 의미적 유사성을 캡처할 수 있습니다. ◦ 희소 벡터에 비해 메모리 공간을 더 효율적으로 사용합니다. ◦ 벡터 간의 유사도를 계산하는 등 다양한 연산에 사용됩니다.

metrics fuction

• 모델의 성능을 측정하고 평가하기 위해 사용되는 함수 • 모델의 예측 결과와 실제 값 사이의 차이를 측정하여 모델의 정확성, 정밀도, 재현율 등을 평가 • ex ◦ 정확도 (Accuracy): 예측 결과가 실제 값과 일치하는 비율을 계산합니다[ (TP+TN)/(TP+FP+FN+TN) ]. ◦ 정밀도 (Precision): 양성으로 예측한 샘플 중에서 실제로 양성인 비율을 계산합니다. 거짓 양성(FP)을 줄이는 데 초점을 맞춥니다[ (TP)/(TP+FP) ]. ◦ 재현율 (Recall 또는 Sensitivity): 실제 양성인 샘플 중에서 양성으로 예측한 비율을 계산합니다. 거짓 음성(FN)을 줄이는 데 초점을 맞춥니다[ (TP)/(TP+FN) ]. ◦ F1 점수 (F1 Score): 정밀도와 재현율의 조화 평균으로 계산되며, 정밀도와 재현율의 균형을 고려합니다. ◦ 로그 손실 (Log Loss 또는 Cross Entropy): 다중 클래스 분류 문제에서 모델의 예측 확률과 실제 클래스의 원-핫 인코딩 값을 비교하여 모델의 성능을 측정합니다. ◦ 평균 제곱 오차 (Mean Squared Error, MSE): 회귀 문제에서 예측 값과 실제 값 사이의 평균 제곱 오차를 계산합니다. ◦ R2 점수 (R-squared): 회귀 문제에서 예측 값이 실제 값의 변동성을 얼마나 설명하는지를 측정합니다. ◦ AUC-ROC: 이진 분류 문제에서 모델의 분류 성능을 평가하는데 사용되며, ROC 곡선의 면적을 계산합니다. ◦그림

TF-IDF(Term Frequency-Inverse Document Frequency)

• 자연어 처리에서 텍스트 데이터의 특징을 추출하는 데 사용되는 통계적인 방법. • 단어의 중요성을 계산하여 문서 내에서 해당 단어의 상대적인 가중치를 나타냅니다. • 개념 ◦ Term Frequency (TF): 문서 내에서 단어가 나타나는 빈도를 나타냅니다. 각 문서에서 각 단어의 등장 빈도를 계산합니다. 일반적으로 문서 내에서 자주 등장하는 단어는 해당 문서의 주제와 관련이 깊을 가능성이 높습니다. ◦ Inverse Document Frequency (IDF): 전체 문서 집합에서 단어의 희소성을 나타냅니다. 단어가 많은 문서에서는 해당 단어의 중요성이 낮다고 판단하고, 단어가 적은 문서에서는 해당 단어의 중요성이 높다고 판단합니다. IDF는 전체 문서 집합에서 해당 단어가 등장하는 문서의 수에 반비례하는 가중치를 부여합니다. • TF-IDF는 각 단어의 TF와 IDF를 곱하여 문서 내에서의 상대적인 중요도를 계산합니다. 이를 통해 각 문서를 벡터로 표현하고, 단어의 빈도와 문서 간의 관계를 수치화할 수 있습니다. 이러한 TF-IDF 벡터는 자연어 처리 작업에서 문서 유사도 측정, 검색 엔진, 텍스트 분류 등에 사용됩니다. • 단어의 등장 빈도와 문서의 희소성을 고려하여 중요한 단어를 강조하는 효과를 가지며, 자연어 처리에서 널리 사용되는 기법 중 하나입니다.

LSTM(Long Short-Term Memory)

• 장기 의존성을 갖는 시퀀스 데이터를 처리하는 데 특화된 인공신경망의 한 종류 • 순환 신경망(RNN)의 변형으로, 기존의 RNN의 단점인 “기울기 소실”과 “기울기 폭발” 문제를 해결하기 위해 고안 • 시퀀스 데이터의 장기 의존성을 학습하기 위해 메모리 셀과 게이트라는 구조를 사용합니다. 메모리 셀은 이전 시간 단계에서의 정보를 저장하는 역할을 수행하며, 게이트는 어떤 정보를 기억하고 어떤 정보를 버릴지를 결정합니다. • 세 가지 게이트 ◦ 입력 게이트(Input Gate): 현재 입력에 대한 중요한 정보를 얼마나 저장할 것인지 결정합니다. ◦ 삭제 게이트(Forget Gate): 이전 메모리 셀의 정보 중 어떤 것을 버릴 것인지 결정합니다. ◦ 출력 게이트(Output Gate): 현재 상태의 어떤 정보를 다음 단계로 전달할 것인지 결정합니다. • 단점 ◦ 복잡성: LSTM은 다른 신경망 모델에 비해 구조적으로 복잡합니다. LSTM은 입력 게이트, 삭제 게이트, 출력 게이트 등 다양한 게이트와 메모리 셀로 구성되어 있어 모델의 파라미터 수가 많아집니다. 이는 모델의 학습 및 추론 속도를 느리게 할 수 있습니다. ◦ 계산 비용: LSTM은 시퀀스 데이터를 처리하는 과정에서 반복적인 계산을 수행해야 합니다. 이는 계산 비용이 높아질 수 있으며, 특히 시계열 데이터나 긴 시퀀스 데이터를 다룰 때 더 큰 문제가 될 수 있습니다. ◦ 메모리 사용량: LSTM은 시퀀스 데이터의 장기 의존성을 학습하기 위해 내부 메모리 셀을 사용합니다. 이는 모델의 메모리 사용량이 증가하게 됩니다. 큰 모델이나 대규모 데이터셋을 다룰 때 메모리 제약이 있는 환경에서 문제가 될 수 있습니다. ◦ 과적합: LSTM은 복잡한 모델 구조를 가지고 있기 때문에 데이터가 부족한 경우에는 과적합(Overfitting)이 발생할 수 있습니다. 특히 매개변수 수가 많은 LSTM 모델을 사용할 때 주의가 필요합니다. 이를 해결하기 위해 정규화, 드롭아웃 등의 기법을 적용할 수 있습니다. ◦ 시간적 한계: LSTM은 시퀀스 데이터를 한 번에 하나의 단계씩 처리하므로, 시간적으로 지연이 발생할 수 있습니다. 이는 실시간 예측이나 응답성이 중요한 시나리오에서 문제가 될 수 있습니다. • LSTM은 이러한 게이트를 통해 시퀀스 데이터의 장기 의존성을 효과적으로 학습하고, 시계열 데이터, 자연어 처리 등의 다양한 작업에 적용됩니다. • 기억력을 갖는 셀 구조와 업데이트 가능한 게이트 메커니즘을 통해 장기적인 패턴을 인식하고 예측하는 능력을 갖추고 있어, 시계열 데이터의 다양한 패턴을 효과적으로 학습할 수 있습니다.

GRU(Gated Recurrent Unit)

• LSTM과 유사한 순환 신경망(RNN, Recurrent Neural Network)의 한 종류입니다. • 시퀀스 데이터를 처리하는 데 사용되며, 긴 의존 관계를 가진 시계열 데이터나 자연어와 같은 문장을 처리하는 데 특히 유용합니다. • LSTM보다 간단한 구조를 가지면서도 장기 의존성을 학습할 수 있는 능력을 가지고 있습니다. LSTM이 장기 메모리 셀과 게이트(gate)를 사용하여 정보를 컨트롤하는 데 비해, GRU는 더 간단한 게이트 메커니즘을 사용하여 정보의 흐름을 조절합니다. • LSTM보다 더 적은 파라미터를 가지고 있고, 더 빠르게 학습할 수 있습니다. 또한 GRU는 기본적으로 LSTM보다 더 간단하게 구현할 수 있으며, 일반적으로 LSTM과 성능이 비슷하거나 더 우수한 경우가 있습니다. • 세 가지 게이트 ◦ 업데이트 게이트 (Update Gate): 현재 입력과 이전 은닉상태를 기반으로 얼마나 많은 정보를 유지할지 결정합니다. ◦ 리셋 게이트 (Reset Gate): 현재 입력과 이전 은닉상태를 기반으로 얼마나 많은 정보를 잊을지 결정합니다. ◦ 새로운 은닉 상태 (New Hidden State): 업데이트 게이트와 리셋 게이트를 사용하여 새로운 은닉상태를 계산합니다.

MDP(Darkov Decision Process)

• 강화학습의 기본적인 수학적 모델 중 하나입니다. MDP는 시간 순서에 따라 의사 결정을 내리는 상황에서, 현재의 상태와 행동에 따라 미래의 보상을 최대화하기 위한 최적의 정책을 학습하는 프레임워크입니다. • 에이전트가 현재 상태에서 가능한 모든 행동 중에서 최적의 행동을 선택하고, 다음 상태로 전이되면서 보상을 얻게 됩니다. 이 과정을 반복하여 에이전트는 최적의 정책을 학습하고 보상을 최대화하는 방향으로 행동을 결정합니다. • 구성 요소 ◦ 상태(State): 시스템이 있는 특정 상태를 나타냅니다. 예를 들어, 로봇이 있는 위치, 게임의 게임 보드 상태 등이 상태가 될 수 있습니다. ◦ 행동(Action): 에이전트가 취할 수 있는 선택 가능한 행동을 나타냅니다. 예를 들어, 로봇이 움직일 수 있는 방향, 게임에서 캐릭터의 이동 등이 행동이 될 수 있습니다. ◦ 보상(Reward): 특정 상태에서 특정 행동을 취했을 때 얻는 보상을 나타냅니다. 보상은 에이전트의 목표에 따라 정의됩니다. 목표는 일반적으로 미래의 보상을 최대화하는 것입니다. ◦ 상태 전이 확률(State Transition Probability): 상태와 행동에 따라 다음 상태로 전이될 확률을 나타냅니다. 즉, 상태와 행동의 조합에 따라 어떤 상태로 이동할 확률을 가지는지를 의미합니다.

style transfer

• 하나의 이미지의 스타일과 다른 이미지의 콘텐츠를 결합하여 새로운 이미지를 생성하는 기술. • 딥러닝 모델을 사용하여 이미지의 스타일과 콘텐츠를 분리하고, 스타일을 한 이미지에서 추출하여 다른 이미지에 적용하는 과정으로 이루어집니다. • 주로 컴퓨터 비전 및 예술 분야에서 사용되며, 이미지의 스타일을 변환하거나 특정 작품의 스타일을 다른 이미지에 적용하는 등의 다양한 창작적인 활용이 가능합니다. 예를 들어, 유명한 화가의 그림 스타일을 사진에 적용하여 고품질의 예술적인 이미지를 생성할 수 있습니다.

CycleGAN

• 머신 러닝에서 사용되는 이미지 변환 알고리즘 중 하나로, 두 개의 서로 다른 도메인 간의 이미지를 변환하는 능력을 갖춘 모델입니다. 예를 들어, 말 이미지를 얼룩말 이미지로 변환하거나, 낮 이미지를 밤 이미지로 변환하는 등의 작업을 수행할 수 있습니다. • 비지도 학습 방식으로 작동하며, 훈련 데이터에는 동일한 이미지 쌍이 필요하지 않습니다. 대신, 두 도메인 간의 대응되는 이미지가 없어도 두 도메인 사이의 매핑을 학습할 수 있습니다. 이를 위해 CycleGAN은 두 개의 생성자(generator)와 두 개의 판별자(discriminator)로 구성됩니다. • 이미지 변환을 위해 순환 일관성 손실(cycle consistency loss)을 사용합니다. • 주로 이미지 스타일 변환, 도메인 간의 콘텐츠 이식, 그림체 변환 등의 응용 분야에서 사용됩니다. 예컨대, 사진을 예술 작품으로 변환하거나, 흑백 사진을 칼라 사진으로 변환하는 등의 작업에 활용될 수 있습니다. CycleGAN은 딥러닝 기반의 이미지 변환 기술 중 하나로서, 창의적이고 다양한 이미지 변환을 구현할 수 있는 강력한 도구입니다.

cycle consistency loss

• CycleGAN이나 다른 이미지 변환 모델에서 사용되는 손실 함수 • 이 손실 함수는 변환된 이미지와 원본 이미지 간의 차이를 최소화하여, 이미지가 원래 도메인으로 잘 복원될 수 있도록 학습합니다. 즉, 이미지를 한 도메인에서 다른 도메인으로 변환한 후, 다시 원래 도메인으로 돌렸을 때 입력 이미지와 비슷한 이미지를 얻을 수 있도록 학습하는 것입니다. • CycleGAN에서 중요한 구성 요소이며, 이미지 변환 과정에서 원본 이미지와 변환된 이미지 간의 일관성을 유지하는 데 도움을 줍니다. 이를 통해 모델은 두 도메인 간의 이미지를 서로 변환할 수 있으며, 변환된 이미지가 원본 이미지와 일관성을 유지하는 고품질의 결과물을 생성할 수 있습니다.

transfer learning

• 하나의 작업에서 학습한 모델의 지식을 다른 관련 작업에 전이하여 학습 속도와 성능을 향상시키는 것을 의미합니다. • 대규모 데이터셋에서 미리 학습된 모델의 가중치와 특성을 다른 작업에 재사용함으로써 작은 데이터셋에서도 효과적인 학습을 가능하게 합니다. • 미리 학습된 모델의 파라미터를 고정하고, 새로운 작업에 대한 추가 학습을 수행하는 방식으로 이루어집니다. • 일반적으로 모델의 최하위 계층은 입력 데이터의 일반적인 특징을 학습하고, 상위 계층은 더 추상적이고 작업 특정한 특징을 학습합니다. 따라서 전이 학습은 상위 계층의 파라미터를 수정하면서 새로운 작업에 적합한 특징을 재학습하거나, 새로운 분류기를 상위 계층 위에 추가하여 성능을 개선하는 방식으로 이루어집니다. • 유용하게 활용될 수 있는 경우 ◦ 작은 데이터셋: 기존에 대량의 데이터로 학습된 모델을 가져와서 작은 데이터셋에서 추가 학습을 수행함으로써 성능을 향상시킬 수 있습니다. ◦ 유사한 작업: 기존에 학습된 모델이나 특성을 관련 작업에 전이함으로써 새로운 작업에 대한 학습을 가속화하고 성능을 개선할 수 있습니다. ◦ 계층적 특성 추출: 기존에 학습된 모델에서 상위 계층의 특성 추출기를 가져와서 새로운 모델의 특성 추출에 사용함으로써 특성 공간을 보다 의미 있는 방향으로 재구성할 수 있습니다.

domain adaptation

• 한 도메인(domain)에서 학습된 모델을 다른 도메인으로 전이하여 성능을 개선하는 것을 의미합니다. • 모델을 다른 도메인으로 전이시켜 성능을 향상시킬 수 있으며, 실제 응용 분야에서 다양한 도메인 간의 데이터 변동성에 대응할 수 있는 강력한 도구로 활용됩니다. • 두 가지 접근 방식 ◦ 공통 특징 학습: 원래 도메인에서 학습한 모델을 가져와서 새로운 도메인에 적용할 때, 공통적인 특징을 추출하는 방법입니다. 예를 들어, 도메인 간의 특징 차이를 최소화하는 도메인 적응 기법을 사용하여 도메인 간의 공통 특징을 학습하고, 이를 통해 새로운 도메인에서의 성능을 향상시킬 수 있습니다. ◦ 도메인 분리 학습: 원래 도메인과 새로운 도메인의 데이터를 분리하여 각각 독립적으로 학습한 후, 새로운 도메인에 대한 모델을 조정하는 방법입니다. 이는 새로운 도메인에 대한 학습을 원래 도메인에 영향을 주지 않고 수행할 수 있는 장점이 있습니다. 예를 들어, 도메인 분리 신경망(Domain Separation Networks)이나 도메인 분리 기반의 생성 모델을 사용하여 도메인 간의 분리된 특징을 학습하고, 이를 활용하여 새로운 도메인에 대한 성능을 개선할 수 있습니다.

CNN(Convolutional Neural Network)

• 이미지와 같은 그리드 형태의 데이터를 처리하는 머신 러닝 모델입니다. 주로 이미지 인식, 컴퓨터 비전 등의 작업에 많이 사용되며, 이미지의 공간적 구조를 잘 이해하고 특징을 추출하는 데 강점을 가지고 있습니다. • 이미지 분류, 객체 감지, 세그멘테이션 등의 다양한 컴퓨터 비전 작업에서 우수한 성능을 보여줍니다. • 사전에 학습된 CNN 모델을 사용하여 전이 학습(Transfer Learning)을 수행할 수도 있습니다. • 다층 퍼셉트론을 사용할 때보다 훨씬 적은 수의 가중치를 사용하며 공간적 구조 정보를 보존한다는 특징이 있습니다. • 구성 ◦ 합성곱(Convolution) 레이어 : 입력 이미지에 필터(커널)를 적용하여 특징 맵(Feature Map)을 생성합니다. 이를 통해 이미지의 주요한 특징을 추출할 수 있습니다. ▪ feature map : 입력 이미지를 필터(또는 커널)를 통해 추출한 특징의 지도. ◦ 풀링(Pooling) 레이어 : 특징 맵의 크기를 줄이면서 중요한 정보를 유지합니다(max pooling, average pooling) ◦ 완전 연결(Fully Connected) 레이어 : 특징 맵에서 추출한 특징을 기반으로 분류 등의 작업을 수행합니다.

1D CNN(1-Dimensional Convolutional Neural Network)

• 주로 1차원 시계열 데이터를 처리하는 데 사용되는 합성곱 신경망 모델. • 이미지 처리에 사용되는 2D CNN과 비슷한 원리를 가지지만, 입력 데이터가 1차원으로 구성되어 있다는 점에서 차이가 있습니다. • 1D CNN은 시계열 데이터의 시간적인 특성을 잘 이해하고, 시퀀스 내에서 패턴을 감지하고 추출하는 데 강점을 가지고 있습니다. 주로 음성, 자연어 처리, 센서 데이터 등과 같은 시계열 데이터를 다룰 때 사용됩니다.

corpus

• 학습에 사용되는 텍스트 데이터의 집합 • 일반적으로 특정 주제, 도메인 또는 언어에 관련된 문서 집합 • 다양한 형태의 텍스트 데이터로 구성될 수 있습니다. 예를 들어, 자연어 처리(Natural Language Processing, NLP) 분야에서는 웹 문서, 뉴스 기사, 소셜 미디어 게시물, 문학 작품, 과학 논문 등 다양한 텍스트 데이터를 코퍼스로 활용합니다. • 코퍼스를 학습하여 언어 모델링, 텍스트 분류, 문서 요약, 기계 번역, 감성 분석 등 다양한 자연어 처리 작업을 수행할 수 있습니다. 코퍼스의 크기와 다양성은 모델의 성능과 일반화 능력에 영향을 미치므로, 적절한 코퍼스의 선택과 전처리는 머신러닝 기반 자연어 처리의 핵심 요소입니다.

PaLM(Pretraining and Language Model)

• 머신러닝 기반의 언어 모델 • 텍스트 데이터의 패턴을 학습하여 문장 생성, 텍스트 분류, 기계 번역 등 다양한 자연어 처리 작업에 활용할 수 있습니다. • 자연어 처리 분야에서 강력한 성능을 보여주고 있으며, 대규모 데이터셋과 미세 조정 기술을 활용하여 다양한 자연어 처리 작업에 적용될 수 있습니다. 이를 통해 보다 정확하고 유연한 언어 모델을 구축할 수 있습니다. • 구성 ◦ 사전 훈련 단계 : 대규모의 텍스트 코퍼스를 사용하여 언어 모델을 사전에 학습시킵니다. 이 과정에서 문장의 다음 단어를 예측하거나 문맥을 이해하는 등의 과제를 수행하여 모델의 언어 이해 능력을 강화합니다. 대표적인 사전 훈련 방법으로는 Word2Vec, GloVe, BERT, GPT 등이 있습니다. ◦ 미세 조정 단계 : 사전 훈련된 PaLM을 특정 자연어 처리 작업에 맞게 조정합니다. 예를 들어, 텍스트 분류 작업을 수행하는 경우, 미세 조정 단계에서는 분류 모델의 출력 레이어를 추가하고, 사전 훈련된 PaLM을 초기 가중치로 사용하여 분류 작업에 특화된 학습을 진행합니다. 이를 통해 작은 규모의 레이블된 데이터로도 높은 성능을 달성할 수 있습니다.

Word2Vec

• 단어를 벡터로 표현하는 방법 중 하나로, 단어의 분산 표현을 학습하는 알고리즘입니다. • 단어의 의미와 관련된 특성을 벡터 공간상의 위치로 표현하여 유사한 의미를 가진 단어들이 가까이 위치하도록 합니다. 이를 통해 단어 간의 의미적 유사성을 계산하거나 단어 간의 관계를 파악하는 등의 자연어 처리 작업에 활용할 수 있습니다. • 대규모의 텍스트 데이터를 사용하여 학습됩니다. 학습된 모델을 통해 단어 간의 유사도를 계산하거나, 단어들의 의미적 관계를 파악하는 등의 작업을 수행할 수 있습니다. • 자연어 처리 분야에서 많이 사용되며, 단어 임베딩을 활용한 다양한 자연어 처리 작업에 응용됩니다. • 모델 ◦ CBOW(Continuous Bag-of-Words) : 문맥에 있는 주변 단어들을 입력으로 사용하여 중심 단어를 예측하는 방식으로 학습을 진행합니다. ◦ Skip-gram : 중심 단어를 입력으로 사용하여 주변 단어들을 예측하는 방식으로 학습을 진행합니다. • 단점 ◦ 등장 빈도 수가 적은 단어(rare word)에 대해서는 임베딩의 정확도가 높지 않다.

FastText

• 페이스북에서 개발 • 메커니즘 자체는 Word2Vec의 확장이라고 볼 수 있습니다. Word2Vec와 FastText와의 가장 큰 차이점이라면 Word2Vec는 단어를 쪼개질 수 없는 단위로 생각한다면, FastText는 하나의 단어 안에도 여러 단어들이 존재하는 것으로 간주합니다. 내부 단어. 즉, 서브워드(subword)를 고려하여 학습합니다. • 장점 ◦ 내부 단어(Subword)를 통해 모르는 단어(Out Of Vocabulary, OOV)에 대해서도 다른 단어와의 유사도를 계산할 수 있다. ◦  단어가 희귀 단어라도, 그 단어의 n-gram이 다른 단어의 n-gram과 겹치는 경우라면, Word2Vec과 비교하여 비교적 높은 임베딩 벡터값을 얻습니다. ◦ Word2Vec에서는 오타가 섞인 단어는 임베딩이 제대로 되지 않지만 FastText는 이에 대해서도 일정 수준의 성능을 보입니다.

GloVe(Global Vectors for Word Representation)

• 카운트 기반과 예측 기반을 모두 사용하는 방법론 • Word2Vec과 비슷한 목적을 가지고 있지만, 약간 다른 방식으로 단어의 분산 표현을 학습합니다. • 동시 등장 행렬(co-occurrence matrix)을 사용하여 단어 간의 동시 등장 빈도를 계산합니다. 이 동시 등장 행렬을 기반으로 목적 함수를 정의하고, 이를 최적화하여 단어의 임베딩을 학습합니다. ◦ 동시 등장 행렬은 행과 열을 전체 단어 집합의 단어들로 구성하고, i 단어의 윈도우 크기(Window Size) 내에서 k 단어가 등장한 횟수를 i행 k열에 기재한 행렬을 말합니다. • 전역적인 통계 정보를 활용하여 단어의 의미를 표현하기 때문에, 문맥을 고려하지 않는 Word2Vec보다는 좀 더 의미적인 임베딩을 얻을 수 있습니다. • 주로 대규모의 텍스트 데이터를 사용하여 학습되며, 학습된 모델을 통해 단어 간의 유사도, 단어 간의 관계 등을 분석할 수 있습니다.

BERT(Bidirectional Encoder Representations from Transformers)

• Transformer 아키텍처를 기반으로 하며, 양방향으로 문맥을 고려하여 단어의 임베딩을 학습합니다. • 대규모의 텍스트 데이터를 사용하여 사전 훈련되며, 언어 모델링과 다양한 자연어 처리 작업에 활용될 수 있습니다. • 자연어 이해, 문장 분류, 질문 응답, 개체명 인식 등 다양한 자연어 처리 작업에서 좋은 성능을 보여줍니다. • 특징은 문맥을 고려한 양방향 임베딩, 다음 문장 예측(pretraining task), Transformer 아키텍처 등이 있으며, 이를 통해 다양한 자연어 처리 작업에 적용할 수 있는 강력한 모델입니다. • 단계 ◦ 사전 훈련 단계 : 대량의 텍스트 데이터를 사용하여 단어의 의미를 학습합니다(masked language model, next sentence prediction). ◦ 파인튜닝 단계 : 특정 자연어 처리 작업에 맞게 추가적인 훈련을 수행하여 성능을 개선합니다. • 3개의 임베딩 층 ◦ WordPiece Embedding : 실질적인 입력이 되는 워드 임베딩. 임베딩 벡터의 종류는 단어 집합의 크기로 30,522개. ◦ Position Embedding : 위치 정보를 학습하기 위한 임베딩. 임베딩 벡터의 종류는 문장의 최대 길이인 512개. ◦ Segment Embedding : 두 개의 문장을 구분하기 위한 임베딩. 임베딩 벡터의 종류는 문장의 최대 개수인 2개.

BERTMLM(masked language model)

• BERT는 사전 훈련을 위해서 인공 신경망의 입력으로 들어가는 입력 텍스트의 15%의 단어를 랜덤으로 마스킹(Masking)합니다. ◦

BERTNSP(next sentence prediction)

• BERT는 두 개의 문장을 준 후에 이 문장이 이어지는 문장인지 아닌지를 맞추는 방식으로 훈련시킵니다. 이를 위해서 50:50 비율로 실제 이어지는 두 개의 문장과 랜덤으로 이어붙인 두 개의 문장을 주고 훈련시킵니다.  ◦ 이어지는 문장의 경우 Sentence A : The man went to the store. Sentence B : He bought a gallon of milk. Label = IsNextSentence ◦ 이어지는 문장이 아닌 경우 경우 Sentence A : The man went to the store. Sentence B : dogs are so cute. Label = NotNextSentence • 마스크드 언어 모델과 다음 문장 예측은 따로 학습하는 것이 아닌 loss를 합하여 학습이 동시에 이루어집니다. • BERT가 언어 모델 외에도 다음 문장 예측이라는 태스크를 학습하는 이유는 BERT가 풀고자 하는 태스크 중에서는 QA(Question Answering)나 NLI(Natural Language Inference)와 같이 두 문장의 관계를 이해하는 것이 중요한 태스크들이 있기 때문입니다.

BERTsegment embedding

• BERT는 QA 등과 같은 두 개의 문장 입력이 필요한 태스크를 풀기도 합니다. 문장 구분을 위해서 BERT는 세그먼트 임베딩이라는 또 다른 임베딩 층(Embedding layer)을 사용합니다. 첫번째 문장에는 Sentence 0 임베딩, 두번째 문장에는 Sentence 1 임베딩을 더해주는 방식이며 임베딩 벡터는 두 개만 사용됩니다. ◦

GPT(Generative Pre-trained Transformer)

• 텍스트 생성 작업에 특화된 사전 훈련된 언어 모델입니다. • Transformer 아키텍처를 기반으로 하며, 비지도 학습 방식으로 대량의 텍스트 데이터를 사용하여 사전 훈련됩니다. • 텍스트의 일부를 입력으로 받아 이후에 이어질 텍스트를 생성하는 방식으로 동작합니다. 모델은 이전 텍스트 문맥을 이해하고, 다음 단어를 예측하는 데 필요한 정보를 학습합니다. • 자연어 생성 작업에 특히 유용하며, 문장 생성, 기계 번역, 요약, 대화 시스템 등 다양한 응용 분야에서 활용될 수 있습니다. • 사전 훈련된 언어 모델로 제공되며, 파인튜닝을 통해 특정 작업에 맞게 추가적인 훈련을 수행할 수도 있습니다. • 주요 특징과 동작 방식 ◦ 사전 훈련 (Pre-training): ▪ GPT는 비지도학습으로 사전에 대규모의 텍스트 데이터를 사용하여 사전 훈련됩니다. 이때 사전 훈련은 언어 모델 기반으로 이루어지며, 문맥에 따라 다음 단어를 예측하는 작업을 수행합니다. ▪ 사전학습에서는 입력 시퀀스의 각 위치에서 다음 단어를 예측하는 언어 모델을 구성합니다. 이를 위해 크로스 엔트로피(Cross Entropy)나 마스크드 언어 모델(Masked Language Model)과 같은 손실 함수를 사용하여 학습합니다. 이때, 입력 시퀀스는 주로 문장이나 문서로 구성되며, 단어를 토큰화하여 처리합니다. ▪ 트랜스포머의 어텐션 메커니즘과 멀티 헤드 어텐션을 활용하여 입력 문장의 문맥 정보를 캡처하고, 각 단어의 임베딩 벡터를 생성합니다. ▪ 사전 훈련된 GPT 모델은 일반적인 자연어의 특성과 구조를 학습하므로, 후속 작업에서 다양한 NLP 작업에 유용하게 사용됩니다. ▪ 사전학습된 언어 모델은 텍스트의 통계적 특성과 문법, 의미, 상관관계 등을 이해한 상태가 됩니다. ▪ 디코더의 경우 Autoregressive Language Model(자기회귀 언어 모델)의 파라미터를 서전에 회적화 하는 과정입니다. ◦ 미세 조정 (Fine-tuning): ▪ 사전 훈련된 GPT 모델은 다양한 자연어 처리 작업에 맞게 미세 조정될 수 있습니다. 미세 조정은 적은 양의 레이블이 있는 태스크 데이터를 이용하여 모델의 가중치를 업데이트하는 과정입니다. ▪ 각 특정 작업에 대해 GPT 모델을 적용하고, 특정 태스크에 대한 레이블을 기준으로 모델을 조정하여 해당 작업에 적합하도록 합니다. ▪ 미세 조정은 주로 사전학습된 언어 모델의 일부 파라미터만 업데이트하여 특정 작업에 더 적합한 상태로 만듭니다. ▪ 미세 조정을 통해 사전 훈련된 GPT 모델은 다양한 NLP 작업에서 높은 성능을 보여줍니다.

pre-training

• 머신러닝과 딥러닝에서 주어진 작업에 앞서, 대규모의 데이터를 이용하여 모델을 사전에 학습하는 기법. • 전체 데이터에 대해 모델을 미세 조정(Fine-tuning)하기 전에 수행되며, 모델이 특정 작업을 수행하는 데 도움이 되는 일반적인 지식을 습득하는 데 사용됩니다. • 주로 자연어 처리와 컴퓨터 비전 분야에서 활용되며, 최근에는 트랜스포머와 같은 모델을 대상으로 다양한 사전 훈련 기법이 발전하고 있습니다. • 종류 ◦ Unsupervised Pre-training: 레이블이 없는 대규모의 데이터를 사용하여 모델을 사전에 학습합니다. 이 방법은 데이터에 있는 통계적 패턴과 구조를 학습하게 됩니다. 주로 오토인코더, GAN(Generative Adversarial Network), 언어 모델과 같은 방법이 사용됩니다. ◦ Self-supervised Pre-training: 레이블이 없는 데이터를 레이블이 있는 데이터처럼 취급하여 모델을 사전에 학습합니다. 예를 들어, 문장의 일부를 가려두고 그 부분을 예측하도록 학습하는 문장 생성 작업이나, 이미지를 자연스럽게 잘라서 다시 맞추도록 하는 이미지 재구성 작업 등이 있습니다. • 장점 ◦ 사전 훈련된 모델은 초기화 단계에서 더 좋은 시작점을 제공하므로, 작은 양의 레이블이 있는 데이터로도 효과적인 미세 조정(Fine-tuning)이 가능합니다. ◦ 사전 훈련된 모델은 보다 일반적인 특징을 학습하므로, 다양한 관련 작업에서 성능을 향상시킬 수 있습니다. ◦ 대규모 데이터를 이용하기 때문에, 사전 훈련 단계에서 높은 계산 비용을 투자하여도 미세 조정 단계에서 상대적으로 적은 데이터로 효과적인 결과를 얻을 수 있습니다.

ELMo(Embeddings from Language Models)

• 사전 훈련된 언어 모델을 이용하여 단어의 문맥적 의미를 잘 반영하는 풍부한 임베딩 벡터를 생성하는 것이 특징입니다. • 기존 워드 임베딩인 Word2Vec이나 GloVe 등이 다의어를 구분할 수 없었던 문제점을 해결함. • 주요 특징과 동작 방식 ◦ 사전 훈련 (Pre-training): ▪ ELMo는 양방향 LSTM(Long Short-Term Memory)을 기반으로 한 언어 모델을 사용하여 사전 훈련됩니다. 양방향 LSTM은 단어를 좌우 방향과 우좌 방향으로 순차적으로 읽어들이는 두 개의 LSTM을 결합하여, 문맥 정보를 보다 풍부하게 반영하는 특징을 가지고 있습니다. ▪ 사전 훈련 단계에서는 대규모의 텍스트 데이터를 이용하여 언어 모델을 학습합니다. 이때, 문맥에 따라 단어의 임베딩 벡터를 생성하는데 사용되는 기술을 ELMo라고 합니다. ◦ 문맥 임베딩 (Contextual Embedding): ▪ ELMo는 단어 임베딩을 생성할 때 문맥 정보를 함께 고려합니다. 예를 들어, “bank”이라는 단어는 “bank account”와 “river bank”와 같은 문맥에 따라 다른 의미를 갖습니다. ELMo는 이러한 문맥 정보를 반영하여 단어의 임베딩 벡터를 생성합니다. ▪ 문맥 임베딩은 각 단어를 언어 모델에 입력하여 얻게 된 은닉 상태들을 결합하여 최종적인 임베딩 벡터를 구성합니다. ◦ 사전 훈련된 모델의 재사용: ▪ ELMo는 사전 훈련된 언어 모델로부터 얻은 임베딩을 다른 자연어 처리 작업에 활용합니다. 예를 들어, 질의 응답, 감정 분석, 기계 번역 등의 작업에 ELMo 임베딩을 사용하여 높은 성능을 얻을 수 있습니다. ▪ 또한, ELMo는 미세 조정(fine-tuning)을 통해 특정 작업에 맞게 추가로 학습될 수도 있습니다.

projection layer

• 고차원의 입력 데이터를 저차원의 공간으로 투영하는 역할을 합니다. 이는 차원 축소, 잠재 변수 추출, 데이터 시각화 등의 다양한 목적으로 사용될 수 있습니다. • 데이터의 특성과 목적에 따라 다양한 방식으로 구성될 수 있으며, 알고리즘과 모델에 따라 다양한 변형이 존재합니다. 주어진 문제와 데이터에 가장 적합한 프로젝션 레이어를 선택하고 조정하는 것이 중요합니다. • 예제 ◦ 밀집 레이어(Dense Layer): 밀집 레이어는 입력 데이터와 가중치 행렬 간의 행렬 곱셈을 수행하여 입력 데이터를 저차원으로 투영합니다. 이는 입력 데이터의 각 요소가 모든 뉴런에 연결되는 완전 연결층으로 구성됩니다. ◦ PCA (Principal Component Analysis): PCA는 입력 데이터의 주성분을 추출하여 저차원의 잠재 공간으로 투영합니다. PCA는 입력 데이터의 공분산 행렬을 분해하여 고유벡터와 고유값을 계산하고, 이를 이용하여 주성분을 선택하고 잠재 공간으로 투영합니다. ◦ Autoencoder: 오토인코더는 입력 데이터를 잠재 공간으로 인코딩하고, 다시 재구성하는 과정을 거치면서 차원 축소를 수행합니다. 인코더 부분은 입력 데이터를 저차원으로 압축하고, 디코더 부분은 재구성을 통해 입력 데이터의 복원을 시도합니다. ◦ Word Embedding: 자연어 처리에서 사용되는 워드 임베딩은 단어를 저차원의 밀집 벡터로 투영하는 기법입니다. 이는 단어 간의 의미적 관계를 보존하면서 저차원의 표현으로 변환하여 효과적인 자연어 처리를 가능하게 합니다.

embedding layer

• 텍스트나 범주형 데이터와 같은 이산적인 데이터를 다룰 때 사용되는 층 • 일반적으로 입력으로 이산적인 값을 받고, 해당 값을 임베딩 벡터로 변환하여 출력합니다. 임베딩 벡터는 연속적인 실수 값을 가지며, 주어진 이산적인 값에 대한 고유한 표현을 가지게 됩니다. 임베딩 레이어는 학습 가능한 파라미터를 가지며, 이 파라미터는 임베딩 공간에서의 단어나 범주의 위치를 결정하는 역할을 합니다. 이러한 파라미터는 모델의 학습 과정에서 역전파(backpropagation)를 통해 업데이트됩니다. • 일반적으로 다른 층과 함께 사용되어 네트워크의 입력 데이터를 변환하거나 특성을 추출하는 데 사용됩니다. 예를 들어, 텍스트 분류 작업에서는 Embedding Layer를 사용하여 텍스트를 임베딩한 후, 해당 임베딩 벡터를 다른 층에 입력으로 제공하여 분류를 수행할 수 있습니다. • ex ◦ 자연어 처리(Natural Language Processing, NLP) 작업에서 단어의 의미와 관련된 정보를 포착하고 유사한 단어들이 비슷한 임베딩 벡터를 갖도록 만들어 줍니다. 이를 통해 모델은 단어 간의 유사성이나 의미 관계를 학습할 수 있습니다.

hidden state

• 모델이 과거의 입력 데이터를 기억하고 현재 입력에 대한 정보를 갱신하면서 내부적으로 유지하는 상태입니다. • RNN과 LSTM과 같은 모델에서 은닉상태는 시간 단계마다 업데이트되며, 현재 입력과 이전 은닉상태 간의 연산에 의해 계산됩니다. • 모델의 학습 과정에서 역전파(backpropagation)를 통해 업데이트되며, 모델의 예측 능력과 성능을 향상시키는 데 중요한 역할을 합니다. • 시퀀스 데이터나 순차적인 특성을 가진 데이터를 다루는 데 유용합니다.

teacher forcing

• RNN과 같은 시퀀스 모델을 학습시킬 때 사용되는 기법. • 훈련 과정에서 모델의 출력을 다음 입력으로 사용하는 것이 아니라, 실제 정답(타겟) 시퀀스를 다음 입력으로 주입하여 모델을 훈련하는 방법. ◦ 더 빠르고 안정적으로 모델이 학습됨. • 훈련과 테스트 단계에서 입력 데이터의 차이가 발생할 수 있으므로, 테스트 단계에서는 모델의 출력을 다음 입력으로 사용하는 “자기 회귀” 방법을 사용하여 시퀀스를 생성합니다.

BLEU(bilingual evaluation understudy)

• 기계 번역 결과와 사람이 직접 번역한 결과가 얼마나 유사한지 비교하여 번역에 대한 성능을 측정하는 방법.

attention mechanism

• 입력 시퀀스의 모든 위치에 대해 각각의 위치가 출력 시퀀스의 어떤 위치에 얼마나 영향을 미치는지를 계산하는 방법입니다. 이를 통해 모델은 입력 시퀀스의 중요한 정보에 집중하며, 장기 의존성 문제를 해결할 수 있습니다. • attention score : 현재 디코더의 시점 t에서 단어를 예측하기 위해, 인코더의 모든 은닉 상태 각각이 디코더의 현 시점의 은닉 상태와 얼마나 유사한지를 판단하는 스코어값. • attention distribution : attention score에 softmax를 적용한 확률 분포. • attention weight : attention distribution의 각각의 값. • attention value : 각 인코더의 은닉 상태와 attention weight값들을 곱하고, 최종적으로 모두 더합 값. ◦ 인코더의 문맥을 포함하고 있다고 하여 context vector라고도 불린다( 참고로 seq2seq에서는 인코더의 마지막 은닉 상태를 컨텍스트 벡터라고 부른다 ). ◦ ▪ attention • Q = Query : 모든 시점의 디코더 셀에서의 은닉 상태 • K = Keys : 모든 시점의 인코더 셀의 은닉 상태들 • V = Values : 모든 시점의 인코더 셀의 은닉 상태들 ▪ self attention • Q : 입력 문장의 모든 단어 벡터들 • K : 입력 문장의 모든 단어 벡터들 • V : 입력 문장의 모든 단어 벡터들 ◦

attention

• 입력에 대해 특정한 가중치를 부여하여 입력의 다른 요소들과의 상호작용에 대한 중요도를 계산하는 메커니즘입니다. 이는 주로 딥러닝 모델의 시퀀스 관련 작업에서 활용되는 기술로, 특히 자연어 처리(Natural Language Processing, NLP)에서 널리 사용됩니다. • 자연어 처리, 기계 번역, 이미지 캡셔닝 등 다양한 시퀀스 관련 작업에서 좋은 성능을 보여주며, 최근에는 트랜스포머와 같은 모델에서 핵심 구성 요소로 널리 활용되고 있습니다. • 특징 ◦ 상호작용 중요도 계산: 주어진 입력에서 각 요소들 간의 상호작용에 대한 중요도를 계산합니다. 이는 주로 유사도(similarity)나 거리(distance)를 기반으로 계산됩니다. ◦ 가중치 부여: 계산된 상호작용 중요도에 따라 입력의 각 요소들에 가중치를 부여합니다. 가중치는 주로 소프트맥스(softmax) 함수를 사용하여 정규화됩니다. ◦ 문맥 정보 획득: Attention은 입력의 다른 요소들과 상호작용을 통해 문맥 정보를 획득하는 데 유용합니다. 이를 통해 모델은 입력에 있는 중요한 정보들을 강조하고, 불필요한 정보를 무시할 수 있습니다. • 두 가지 기본 종류 ◦ Self-Attention(자기 어텐션 또는 자기 주의): 주어진 입력 시퀀스 내의 각 요소들 사이의 상호작용을 계산하는 기술로, 트랜스포머(Transformer)에서 주로 사용됩니다. ◦ Global Attention(전역 어텐션 또는 전체 주의): 입력 시퀀스와 다른 시퀀스(예: 번역 작업에서 입력 문장과 번역 문장) 사이의 상호작용을 계산하는 기술로, Seq2Seq(Sequnce-to-Sequence) 모델과 같은 작업에서 활용됩니다.

self-attention

• 입력 시퀀스 내의 각 요소가 서로 어떤 관련성을 가지는지를 계산하는 메커니즘입니다. 각 요소(단어, 토큰, 또는 벡터)는 자신과 다른 요소들 사이의 상관 관계를 계산하여 중요도를 가중치로 표현합니다. 이렇게 각 요소마다 자신과의 관련성에 대한 가중치를 얻게 되면, 이를 사용하여 다른 요소들과의 가중합을 계산하게 됩니다. • transformer의 인코더와 디코더는 여러 개의 층으로 구성되고, 각 층에서 Self-attention이 적용됩니다 • 특징 ◦ 모든 요소 간의 상호작용: Self-attention은 모든 요소들 간의 상호작용을 고려합니다. 따라서 긴 시퀀스에서도 먼 거리의 의존성을 파악하는 데 용이합니다. ◦ 병렬 처리 가능: Self-attention은 각 요소 간의 관련성을 독립적으로 계산하므로, 병렬 처리가 가능합니다. 이는 효율적인 학습과 예측을 가능하게 합니다. ◦ 문맥 정보 포착: 각 요소가 다른 모든 요소들과의 관계를 계산하므로, 문맥 정보를 포착하는 데 용이합니다. 이는 자연어 처리 작업에서 문장 내 단어들의 관련성을 잘 파악할 수 있도록 도움을 줍니다.

multi-head attention

• 일반적인 어텐션은 입력 시퀀스의 모든 요소들 간의 상호작용을 계산하는데, 이를 하나의 어텐션 헤드로 처리합니다. 그러나 멀티 헤드 어텐션은 여러 개의 어텐션 헤드를 독립적으로 사용하여 여러 다른 선형 변환을 수행하고, 그 결과를 결합합니다. • 동작 ◦ 입력 시퀀스에 대해 여러 개의 어텐션 헤드를 생성합니다. 각 헤드는 가중치 행렬을 사용하여 다른 관점에서 상호작용을 계산합니다. ◦ 각 헤드마다 얻은 결과를 합치기 위해 선형 변환을 수행합니다. 이 때, 각 헤드의 결과에 대해 서로 다른 가중치를 사용합니다. ◦ 합쳐진 결과를 최종 멀티 헤드 어텐션 결과로 사용합니다. • 장점 ◦ 다양한 정보 추출: 각 헤드는 서로 다른 관점에서 상호작용을 계산하므로, 입력에 대해 다양한 정보를 추출할 수 있습니다. ◦ 병렬 처리 가능: 각 헤드는 독립적으로 계산되므로, 병렬 처리가 가능합니다. 이는 모델의 학습과 예측을 더 효율적으로 만들어 줍니다. ◦ 효율적인 표현 학습: 멀티 헤드 어텐션은 입력 시퀀스의 다양한 관점에서 상호작용을 수행하여 더 효과적인 표현 학습을 가능하게 합니다.

transformer

• attention 메커니즘을 사용하여 시퀀스 데이터를 처리하는 데에 뛰어난 성능을 보이는 모델입니다. • 어텐션을 RNN의 보정을 위한 용도로서 사용하는 것이 아니라 어텐션만으로 인코더와 디코더를 처리함. • 기존의 순환 신경망(RNN) 기반의 모델 대비 장기 의존성(long-range dependency) 문제를 해결하고, 병렬 계산이 가능하여 학습과 추론 속도가 빠른 특징을 가지고 있습니다. • positional encoding : 단어의 위치 정보를 얻기 위해서 각 단어의 임베딩 벡터에 위치 정보들을 더하여 모델의 입력으로 사용(sin, cos 함수 사용) • 주요 구성 요소 ◦ Encoder-Decoder ▪ seq2seq 구조에서는 인코더와 디코더에서 각각 하나의 RNN이 t개의 시점(time step)을 가지는 구조였다면 transformer에서는 인코더와 디코더라는 단위가 N개로 구성 ◦ attention(encoder self-attention, masked decoder self-attention, encoder-decoder attention) ▪ Add & Norm :  residual connection & layer normalization ▪ ▪ ChatGPT1은 decoder로 12개 layer를 사용함.

transformer encoder FFNN

• 어텐션을 통해 얻은 단어 임베딩을 다음 레이어로 전달하기 전에 비선형성을 추가하여 더 풍부한 표현을 만들어냅니다. • 구성: ◦ 피드포워드 신경망은 일반적으로 두 개의 선형 변환과 활성화 함수로 구성됩니다. 이 때, 선형 변환은 입력 차원과 출력 차원 사이의 가중치 행렬 연산을 의미하며, 활성화 함수로는 보통 ReLU(Rectified Linear Activation) 함수가 사용됩니다. ◦ 피드포워드 신경망은 하나의 특성 맵(feature map)에 적용되기 때문에, 모든 단어의 임베딩 벡터에 동일한 연산이 적용되며, 각 단어의 임베딩 벡터는 개별적으로 처리됩니다. • 연산: ◦ 피드포워드 신경망은 각 단어의 임베딩 벡터를 두 번의 선형 변환을 통해 차원을 확장하고 줄이는 과정을 거칩니다. ◦ 먼저, 입력 임베딩 벡터를 높은 차원의 은닉 상태로 매핑하기 위해 첫 번째 선형 변환을 수행합니다. 이 때, 해당 선형 변환은 가중치 행렬과 입력 벡터의 내적 연산을 통해 이루어집니다. ◦ 그 다음, ReLU 활성화 함수를 사용하여 음수 값을 제거하고 양수 값만을 유지합니다. ◦ 이후, 두 번째 선형 변환을 통해 은닉 상태를 다시 원래의 저차원으로 매핑합니다. 이러한 연산을 통해 단어의 임베딩 벡터에 비선형성을 부여하여 더 풍부한 문맥 정보를 표현하게 됩니다. • 정규화: ◦ 피드포워드 신경망은 잔차 연결(residual connection)과 레이어 정규화(layer normalization)를 통해 안정적인 학습을 지원합니다. ◦ 잔차 연결은 입력과 출력을 더하는 것으로, 신경망의 깊이가 깊어질수록 그레디언트 소실 문제를 완화하는 데 도움을 줍니다. ◦ 레이어 정규화는 각 레이어의 출력을 평균과 분산으로 정규화하여 학습 안정성을 향상시킵니다.

long-term dependency

• 모델이 시간적으로 떨어져 있는 요소들 간의 관계를 제대로 파악하지 못하는 현상을 의미합니다. 예를 들어, 문장에서 이전에 언급된 단어들이 현재의 단어와 관련이 있을 때, 머신러닝 모델은 이러한 장기적인 의존성을 인식하는 데 어려움을 겪을 수 있습니다. • 발생 원인 ◦ Vanishing Gradient: RNN과 같은 순환 신경망에서 발생하는 주요 원인 중 하나는 그래디언트 소실 문제입니다. 역전파(backpropagation) 과정에서 기울기(gradient)가 점차적으로 작아지면서 모델이 이전 시간 단계의 정보를 적절히 전달하지 못하게 되는 현상입니다. 따라서, 오래된 시간 단계의 의존성이 제대로 학습되지 않고 장기 의존성 문제가 발생할 수 있습니다. ◦ Exploding Gradient: 그래디언트 폭주는 그 반대로, 역전파 과정에서 기울기가 급격히 커져서 모델의 가중치가 불안정해지는 현상입니다. 이로 인해 모델의 예측이 불안정하게 되고, 장기 의존성이 제대로 학습되지 않을 수 있습니다. ◦ 시퀀스 길이: 머신러닝 모델은 일반적으로 고정된 크기의 입력을 다루는 데 적합하게 설계되었습니다. 하지만 자연어 처리와 같은 시퀀스 데이터는 길이가 가변적일 수 있습니다. 따라서, 매우 긴 시퀀스의 경우 모델이 장기 의존성을 파악하는 데 어려움을 겪을 수 있습니다. ◦ 데이터 부족: 장기 의존성을 잘 파악하기 위해서는 충분한 데이터가 필요합니다. 하지만 현실적으로 데이터를 모으는 것은 어려운 경우가 많습니다. 데이터가 부족하면 모델이 장기 의존성을 학습하기 어려울 수 있습니다. ◦ 모델 아키텍처: 일부 기본적인 모델 아키텍처들은 장기 의존성을 잘 처리하지 못할 수 있습니다. 이러한 모델들은 데이터에 있는 장기 의존성을 파악하지 못하고 제대로 학습하지 못할 수 있습니다. • 해결 방법 ◦ LSTM, GRU, 트랜스포머 등과 같이 장기 의존성을 잘 다룰 수 있는 모델 아키텍처를 사용. ◦ 데이터 양을 증가시키고 데이터를 적절히 전처리.

RLHF(Reinforcement Learning with Human Feedback)

• 강화학습에 인간의 피드백을 포함시켜 학습하는 방법. • 일반적인 강화학습은 에이전트가 환경과 상호작용하면서 시행착오를 거치며 스스로 학습을 진행하는 방식이지만, RLHF는 인간의 전문가가 직접 에이전트의 동작에 대한 피드백을 제공하는 방식입니다. • chatGPT 학습에 사용됨.

residual connection

• H(x) = x + F(x)

epsilon-greedy

• 강화학습에서 사용되는 가장 기본적인 탐색(Exploration)과 활용(Exploitation) 전략 중 하나입니다. 에이전트가 환경과 상호작용하며 어떤 행동을 선택할지 결정하는데, 이러한 행동 선택을 조절하는 방법입니다. • 초기에는 탐색을 위해 무작위 행동을 많이 선택하다가, 학습이 진행됨에 따라 점점 더 많은 활용적인 행동을 선택하게 됩니다. • epsilon-softmax : epsilon-greedy의 확장으로, 더 부드러운 확률 분포를 생성하여 탐색과 활용을 더 세밀하게 조절하는 방법. • 알고리즘 동작 ◦ 입실론 값(ε)을 정합니다. 이 값은 일반적으로 0과 1 사이의 작은 양수입니다. ◦ 환경과 상호작용하면서, 무작위로 0부터 1 사이의 수를 생성합니다. ◦ 생성된 수가 ε보다 작으면 무작위로 행동을 선택합니다. 이는 탐색을 의미합니다. ◦ 생성된 수가 ε보다 크거나 같으면 현재 상태에서 가장 높은 보상을 가진 행동을 선택합니다. 이는 활용을 의미합니다.

BPE(byte pair encoding)

• 데이터의 압축과 토큰화를 동시에 수행하는 기법입니다. 특히 자연어 처리(Natural Language Processing, NLP) 분야에서 주로 사용되며, 텍스트 데이터를 처리하기 전에 단어나 서브워드(Subword) 수준의 토큰으로 분할하는 데 사용됩니다. • 데이터의 특성에 따라 자동으로 서브워드 단위로 분할하므로, 기존의 단어 토큰화보다 더 세밀한 토큰화를 제공합니다. • OOV(Out-of-Vocabulary)에 대한 처리와 띄어쓰기가 없는 언어에서 유용하게 사용됩니다. • 자연어 처리 모델에서의 성능을 향상시키고, 번역, 감정 분석, 자연어 이해 등 다양한 NLP 작업에서 많이 사용되는 중요한 전처리 기법 중 하나입니다. • BPE를 참고하여 만들어진 Wordpiece Tokenizer나 Unigram Language Model Tokenizer와 같은 서브워드 분리 알고리즘이 존재합니다.  ◦ wordpiece tokenizer : BPE가 빈도수에 기반하여 가장 많이 등장한 쌍을 병합하는 것과는 달리, 병합되었을 때 코퍼스의 우도(Likelihood)를 가장 높이는 쌍을 병합합니다.( BERT를 훈련하기 위해서 사용) ◦ Unigram Language Model Tokenizer : 각각의 서브워드들에 대해서 손실(loss)을 계산합니다. 여기서 서브 단어의 손실이라는 것은 해당 서브워드가 단어 집합에서 제거되었을 경우, 코퍼스의 우도(Likelihood)가 감소하는 정도를 말합니다. 이렇게 측정된 서브워드들을 손실의 정도로 정렬하여, 최악의 영향을 주는 10~20%의 토큰을 제거합니다. 이를 원하는 단어 집합의 크기에 도달할 때까지 반복합니다. • 단계 ◦ 데이터 압축: 주어진 텍스트 데이터를 바이트 또는 유니코드 단위로 분할하여 각 바이트 또는 유니코드 문자들을 토큰으로 인식합니다. ◦ 빈도수 기반 토큰화: 데이터에서 발생하는 모든 토큰들의 빈도수를 계산합니다. 이후에는 가장 빈도수가 높은 토큰들을 하나의 토큰으로 결합합니다. ◦ 반복적인 토큰 결합: 일정 횟수나 빈도수 이상으로 반복하여 가장 빈도수가 높은 토큰들을 합치고 새로운 토큰으로 대체합니다. 이 과정을 원하는 토큰 개수가 나올 때까지 반복합니다. ◦

memory network

• 자연어 처리와 같은 기계 학습 작업에 활용되는 인공 신경망의 한 종류입니다. • 신경망 모델 내부에 외부 메모리 구조를 가지고 있으며, 이를 활용하여 입력 정보를 보존하고 필요에 따라 엑세스하면서 학습하는 방식으로 동작합니다. • 주로 질의 응답(Question Answering), 기계 번역, 대화 시스템 등에서 활용되며, 특히 복잡하고 긴 문장을 다룰 때 유용합니다. • 입력과 출력 사이에서 메모리 구조를 이용하여 중간 정보를 보존하고 활용함으로써 복잡한 문제를 해결하는데 도움이 됩니다. • 정보의 보존과 엑세스를 제어하는 메커니즘을 통해 더 효과적인 학습과 추론이 가능해지는 장점이 있습니다.. 이를 통해 질문에 더 정확하고 자연스러운 응답을 제공하는 인공 지능 시스템을 개발할 수 있습니다. • 구조와 동작 방식 ◦ 외부 메모리: ▪ 메모리 네트워크는 외부 메모리 구조를 가지고 있습니다. 이 메모리에는 모델이 학습한 정보를 저장하고, 추후에 해당 정보를 재활용하여 질의나 요청에 응답합니다. ◦ 입력 인코딩: ▪ 메모리 네트워크는 입력 정보를 인코딩하여 메모리에 저장합니다. 주로 입력 문장의 각 단어를 임베딩(Embedding)하여 표현하고, 이를 메모리에 저장합니다. ◦ 질의 인코딩: ▪ 사용자가 제공한 질의나 요청을 인코딩하여 메모리에서 관련된 정보를 검색합니다. 이를 위해 질의 문장의 단어들도 임베딩되어 메모리에 접근할 준비가 됩니다. ◦ 메모리 엑세스: ▪ 질의 인코딩 결과를 활용하여 메모리에 저장된 정보를 접근하고, 질의와 관련된 정보를 찾습니다. 이를 통해 메모리에 저장된 지식을 활용하여 질의에 대한 응답을 찾습니다. ◦ 출력 디코딩: ▪ 메모리 네트워크는 메모리 엑세스를 통해 얻은 정보를 활용하여 질의에 대한 출력을 생성합니다. 출력은 주로 문장, 단어, 레이블 등의 형태로 나타납니다.

autoregressive

• 시퀀스 모델링의 한 방법을 나타내는 용어. • 출력 시퀀스를 한 단계씩 생성하는 동안 이전에 생성한 부분을 고려하는 모델입니다. • 번역, 텍스트 생성, 음성 합성 등의 다양한 시퀀스 생성 작업에 활용. • 주요 특징 ◦ 단계적 생성: 출력 시퀀스를 한 단계씩 생성합니다. 이전 스텝에서 생성한 결과를 입력으로 활용하여 다음 스텝에서 새로운 부분을 생성합니다. ◦ 자기회귀 방식: “자기회귀”(Autoregressive)라는 이름은 모델이 자신의 출력을 이용하여 다음 출력을 생성한다는 특징을 나타냅니다. ◦ 학습과 샘플링: 학습 단계에서는 실제 출력과 실제 타겟을 비교하여 모델을 최적화합니다. 그러나 샘플링 단계에서는 모델이 이전 출력을 사용하여 다음 출력을 샘플링하고, 이렇게 반복하여 원하는 길이의 시퀀스를 생성합니다. ◦ 예시: 자연어 처리에서 Autoregressive 모델의 대표적인 예로는 GPT-2, GPT-3와 같은 GPT 계열의 모델이 있습니다. 이 모델들은 Transformer 아키텍처를 기반으로 하며, 텍스트를 자동으로 생성하는데 매우 강력한 성능을 보입니다. • 장점 : 이전 정보를 활용하므로 문맥을 고려하여 자연스러운 결과를 생성하는 데 효과적입니다. • 단점 : 생성 과정이 순차적이기 때문에 병렬 처리가 어려워 학습과 추론이 비교적 느릴 수 있다는 점이 있습니다.