딥러닝 모델: 파이토치(71)
-
언어 처리 패키지(NLTK, KoNLPy)
♣ NLTK자연어 처리를 위한 파이썬 패키지. NLTK의 기능을 제대로 사용하기 위해서 NLTK Data라는 데이터를 추가적으로 설치해야 한다. ♣ KoNLPy코엔엘파이는 한국어 자연어 처리를 위한 형태소 분석기 패키지이다. ♣ 코드https://colab.research.google.com/drive/10_HDv-KQZPKftoo8AyKoLk2u045gJXK8#scrollTo=kmccgf9QaknX NLTK와 KoNLPy.ipynbColab notebookcolab.research.google.com
2024.06.06 -
전이학습(Transfer Learning)
♣ Transfer LearningDownstream task = 현재 풀고자 하는 문제Pre-trained task = Downstream task와 비슷하지만 다른 문제 Downstream task에서 데이터가 부족한 경우, 데이터가 풍부하면서도 Downstream과 어느 정도 연관된 Pre-training task에 모델을 사전학습시켜서 Downstream task에 도움이 될 수 있는 feature들을 모델에 학습시킨다. 즉 pre-training task에 대해 이미 학습된 모델이 있을 때, 해당 모델의 weight로 초기화하여 downstream task에 대해서 학습(fine-tuning)하는 방법이다. 전이학습을 사용하는 이유1. Random하게 초기화해서 학습하는 것보다 학습 수렴 속..
2024.06.06 -
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