딥러닝 모델: 파이토치(71)
-
Pytorch로 시작하는 딥러닝 입문(11-01. 텍스트의 유사도: 단어의 표현 방법)
카운트 기반의 단어 표현 방법 외에도 다양한 단어 표현 방법이 존재한다. 어떤 순서로 단어 표현 방법을 학습하게 될 것인지 알아보자. ♣ 단어의 표현 방법 단어의 표현 방법은 크게 국소표현(Local Representation) 방법과 분산표현(Distributed Representation) 방법으로 나뉜다. 국소표현방법은 해당 단어 그 자체만 보고 특정값을 맵핑하여 단어를 표현하는 방법이며, 분산표현방법은 주변을 참고하여 단어를 표현하는 방법이다. 예를 들어 puppy(강아지), cute(귀여운), lovely(사랑스러운) 라는 단어가 있을 때, 각 단어에 1번, 2번, 3번 등과 같은 숫자를 맵핑하여 부여한다면 이는 국소표현방법이다. 반면, 분산표현방법에서는 'puppy(강아지)라는 단어 근처에 주..
2024.04.08 -
활성화 함수(시그모이드, ReLU, 소프트맥스)
♣ 활성화 함수 활성화 함수란 입력값을 어떤 값으로 변환해 출력할지 결정하는 함수를 의미함. 입력값과 가중치를 곱한 값들은 활성화 함수를 거쳐서 출력값이 됨 1. 시그모이드 시그모이드 함수는 입력값이 커질수록 1에 수렴하고, 작아질수록 0에 수렴함. 시그모이드 함수를 미분하면, 양쪽으로 향할수록 변화값이 거의 없음. 따라서 오류역전파를 할 때 Vanishing Gradient 현상이 발견될 수 있음. 0 또는 1을 반환하기 때문에 이진 분류 모델의 마지막 활성화 함수로 사용됨. 2. ReLU ReLU 함수는 은닉층의 활성화 함수로 사용됨 입력값이 0보다 작거나 같을 때는 항상 0을 출력함. 입력값이 0보다 크면 입력값과 동일한 출력값을 출력함. 3. 소프트맥스 softmax 함수는 시그모이드와 비슷하게 ..
2024.04.07 -
Pytorch로 시작하는 딥러닝 입문(10-05. 펄플렉서티: perplexity, PPL)
두 개의 모델 A, B가 있을 때 모델의 성능을 어떻게 비교할 수 있을까? 두 모델을 오타 교정, 기계 번역 등의 평가에 투입한 후, 해당 업무를 어느 모델이 잘 수행했는지를 비교할 수 있다. 그런데 두 모델의 성능을 비교하기 위해 일일히 모델들에 대해서 실제 작업을 시키고 정확도를 비교하는 것은 품이 많이 든다. 비교해야 하는 모델이 두 개가 아니라 그 이상의 수라면 시간은 훨씬 크게 늘어난다. 이런 방법보다 조금 부정확할 수 있어도 테스트 데이터에 대해 빠르게 식으로 계산되는 보다 간단한 평가 방법이 있다. 바로 모델 내에서 자신의 성능을 수치화하여 결과로 내놓은 펄플렉서티이다. ♣ 언어 모델의 평가 방법(Evaluation metric): PPL 펄플렉서티는 언어 모델을 평가하는 평가 지표이다. P..
2024.04.06 -
Pytorch로 시작하는 딥러닝 입문(10-04. 한국어에서의 언어 모델)
영어나 기타 언어에 비해서 한국어는 언어 모델로 다음 단예를 예측하기가 훨씬 까다롭니다. 1. 한국어는 어순이 중요하지 않다. 한국어는 어순이 중요하지 않다. 이전 단어가 주어졌을 때 다음 단어가 나타날 확률을 구해야 하는데 어순이 중요하지 않다는 것은 다음 단어로 어떤 단어든 등장할 수 있다는 의미이다. 예를 들면 4개의 문장이 전부 의미가 통하는 것을 알 수 있다. '나는' 이라는 주어를 생략해도 말이 된다. 이렇게 단어 순서를 뒤죽박죽으로 바꿔놔도 한국어는 의미가 전달되기 때문에 확률에 기반한 언어 모델이 다음 단어를 제대로 예측하기가 어렵다. 2. 한국어는 교착어이다. 띄어쓰기 단위인 어절 단위로 토큰화를 할 경우, 문장에서 발생 가능한 단어의 수가 크게 늘어난다. 대표적인 예로 교착어인 한국어에..
2024.04.06 -
Pytorch로 시작하는 딥러닝 입문(10-03. N-gram 언어모델)
n-gram 언어 모델은 여전히 카운트에 기반한 통계적 접근을 사용하고 있으므로 SLM의 일종이다. 다만 앞서 배운 언어 모델과는 달리 이전에 등장한 모든 단어를 고려하는 것이 아니라 일부 단어만 고려하는 접근 방법을 사용한다. 이때 일부 단어를 몇 개 보느냐를 결정하는데, 이것이 n-gram에서의 n이 가지는 의미이다. ♣ 코퍼스에서 카운트하지 못하는 경우의 감소 SLM의 한계는 훈련 코퍼스에 확률을 계산하고 싶은 문장이나 단어가 없을 수 있다는 점이다. 확률을 계산하고 싶은 문장이 길어질수록 가지고 있는 코퍼스에서 그 문장이 존재하지 않을 가능성이 높다. 하지만 다음과 같이 참고하는 단어들을 줄이면 카운트할 가능성을 높일 수 있다. 가령 'An adorable little boy가 나왔을 때 is가 ..
2024.04.06 -
Pytorch로 시작하는 딥러닝 입문(10-02. 통계적 언어 모델: Statistical Language Model, SLM)
언어 모델의 전통적인 접근 방법인 통계적 언어 모델을 소개한다. ♣ 조건부 확률 조건부 확률은 두 확률 P(A), P(B)에 대해서 아래와 같은 관계를 갖는다. 더 많은 확률에 대해 일반화해보자. 4개 확률이 조건부 확률의 관계를 가질 때 아래와 같이 표현할 수 있다. 이를 조건부 확률의 연쇄 법칙(chain rule)이라고 한다. n개에 대해서 일반화해보자 ♣ 문장에 대한 확률 각 단어는 이전 단어의 영향을 받아서 나온다. 그리고 모든 단어로부터 하나의 문장이 완성된다. 따라서 문장의 확률을 구하고자 할 때 조건부 확률을 사용한다. 앞서 조건부 확률의 일반화 식을 문장의 확률 관점에서 적어보면 문장의 확률은 각 단어들이 이전 단어가 주어졌을 때 다음 단어로 등장할 확률의 곱으로 구성된다. 문장의 확률을..
2024.04.02