전체 글(137)
-
Pytorch로 시작하는 딥러닝 입문(11-05. 코사인 유사도를 이용한 추천 시스템)
♣ 코사인 유사도(Cosine Similarity)코사인 유사도는 두 벡터 간의 코사인 각도를 이용하여 구할 수 있는 두 벡터의 유사도를 의미한다. 두 벡터의 방향이 완전히 동일한 경우네는 1의 값을, 90도의 각을 이루면 0을, 180도로 반대의 방향을 가지면 -1의 값을 갖는다. 코사인 유사도는 -1 이상 1 이하의 값을 가지며 값이 1에 가까울수록 유사도가 높다고 판단할 수 있다. 즉 두 벡터가 가리키는 방향이 얼마나 유사한가를 의미한다. 두 벡터 A, B에 대해 코사인 유사도는 식으로 표현하면 다음과 같다. 문서 단어 행렬이나 TF-IDF 행렬을 통해서 문서의 유사도를 구하는 경우, 문서 단어 행렬이나 TF-IDF 행렬이 각각의 특징 벡터 A, B가 된다. 예시를 통해 문서 단어 행렬에 대해서 ..
2024.04.17 -
Pytorch로 시작하는 딥러닝 입문(11-04. TF-IDF: Term Frequency-Inverse Document Frequency)
DTM 내에 있는 각 단어에 대한 중요도를 계산할 수 있는 TF-IDF 가중치에 대해 알아보자. TF-IDF를 사용하면 기존의 DTM을 사용하는 것보다 많은 정보를 고려하여 무서들을 비교할 수 있다. ♣ TF-IDF TF-IDF는 단어의 빈도와 역 문서 빈도(문서의 빈도에 특정식을 취함)를 사용하여 DTM 내의 각 단어들마다 중요한 정도를 가중치로 주는 방법이다. DTM을 만든 후, TF-IDF 가중치를 부여한다. TF-IDF는 주로 문서의 유사도를 구하는 작업, 검색 시스템에서 검색 결과의 중요도를 정하는 작업, 문서 내에서 특정 단어의 중요도를 구하는 작업 등에 쓰일 수 있다. TF-IDF는 TF와 IDF를 곱한 값을 의미하는데, 이를 식으로 표현해보자. 문서를 d, 단어를 t, 문서의 총 개수를 n..
2024.04.16 -
Pytorch로 시작하는 딥러닝 입문(11-03. 문서 단어 행렬: Document-Term Matrix, DTM)
서로 다른 문서들의 BoW들을 결합한 표현 방법인 문서 단어 행렬에 대해 알아보자. (이하 DTM이라고 명명). 행과 열을 반대로 선택하면 TDM이라고 부르기도 한다. 이렇게 하면 서로 다른 문서들을 비교할 수 있다. ♣ 문서 단어 행렬(Document-Term Matrix, DTM) 표기법 문서 단어 행렬이란 다수의 문서에서 등장하는 각 단어들의 빈도를 행렬로 표현한 것을 말한다. 각 문서에 대한 BoW를 하나의 행렬로 만든 것으로 생각할 수 있으며, BoW와 다른 표현 방법이 아니라 BoW 표현을 다수의 문서에 대해서 행렬로 표현하고 부르는 용어이다. 예를 들어 아래와 같이 4개의 문서가 있다고 해보자. 띄어쓰기 단위 토큰화를 수행한다고 가정하고, 문서 단어 행렬로 표현하면 다음과 같다. 각 문서에서..
2024.04.11 -
Pytorch로 시작하는 딥러닝 입문(11-02. 텍스트의 유사도: Bag of Words)
Bag of Words는 단어의 등장 순서를 고려하지 않는 빈도수 기반의 단어표현방법이다. ♣ Bag of Words란? 단어들의 순서는 전혀 고려하지 않고 단어들의 출현 빈도(frequency)에만 집중하는 텍스트 데이터의 수치화 표현방법이다. 단어들이 들어있는 가방을 상상해보자. 갖고 있는 텍스트 문서에 있는 단어들을 가방에다 전부 넣는다. 그 후에 가방을 흔들어서 단어들을 섞는다. 만약 해당 문서 내에서 특정 단어가 N번 등장했다면 이 가방에는 특정 단어가 N개 들어있다. 또한 가방을 흔들어서 단어를 섞었기 때문에 더 이상 단어의 순서가 중요하지 않다. BoW를 만드는 과정을 두 가지 과정으로 생각해보자. 각 단어에 고유한 정수 인덱스를 부여한다. 각 인덱스의 위치에 단어 토큰의 등장 횟수를 기록한..
2024.04.08 -
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