본문 바로가기

전체 글

(28)
[딥러닝 NLP] 09. 워드 임베딩(Word2Vec, SGNS, GloVe, FastText, ELMo, Doc2Vec) # 09-01 Word Embedding -희소표현(Sparse Representation): 원-핫 벡터나 DTM과 같이 벡터 또는 행렬의 대부분의 값이 0으로 표현되는 방법, 따라서 공간적 낭비가 크며 단어의 의미를 고려하지 못함 -분산표현(Distributed Representation): 단어의 의미를 공간에 벡터화하는 표현 방법. 비슷한 문맥에서 등장하는 단어들은 비슷한 의미를 가진다는 분포 가설(Distributional hypothesis)의 가정 하에 만들어진 표현 방법. -밀집표현(Dense Representation): 사용자가 설정한 값에 맞춰 모든 단어의 벡터 차원이 같아지며 모든 값이 실수가 되는 표현 방법 -워드 임베딩(Word Embedding): 단어를 밀집 벡터 형태로 표현..
[딥러닝 NLP] 08. 순환신경망(SimpleRNN, LSTM, GRU, CharRNN) 피드포워드 신경망은 입력의 길이가 고정되어 있었다. 이번 장에서는 다양한 길이의 입력 시퀀스를 처리할 수 있는 RNN, 이를 개선한 LSTM, GRU에 대해 학습한다. # 08-01 순환 신경망(Recurrent Neural Network, RNN) 1. RNN이란? -시퀀스 모델: 입력과 출력을 시퀀스 단위로 처리. 따라서 입력벡터, 출력벡터, 은닉상태라는 표현 사용 -메모리셀/RNN셀(cell): RNN의 은닉층에서 이전값을 기억하는 메모리 역할을 수행하는 노드 -은닉상태(hidden state): 메모리셀이 출력층 혹은 다음시점인 t+1의 자신에게 보내는 값 -FFNN과 달리 입출력길이를 다양하게 설계 가능 (일대다, 다대일, 다대다) ex) 일대다: 이미지캡셔닝(하나의 이미지에 대해 다양한 제목 ..
[딥러닝 NLP] 07. 딥러닝(2) Keras, NNLM # 07-05 케라스 1. 케라스 훑어보기 Keras: 딥러닝을 쉽게 구현할 수 있도록 도와주는 파이썬 라이브러리 케라스의 모든 기능을 보고 싶다면 아래 공식 문서를 참고 https://keras.io/ or https://www.tensorflow.org/guide/keras?hl=ko (1) 전처리 Tokenizer() : 토큰화, 정수인코딩에 사용 pad_sequences() : 패딩. 정해준 길이보다 긴 샘플은 값을 자르고 짧은 샘플은 0으로 채워 길이를 맞춰줌 from tensorflow.keras.preprocessing.text import Tokenizer from tensorflow.keras.preprocessing.sequence import pad_sequences tokenizer..
[딥러닝 NLP] 07. 딥러닝(1) 활성화함수,손실함수,옵티마이저,역전파, 과적합, 기울기소실, 기울기폭주 # 07-01 딥러닝의 개념 딥러닝은 머신러닝의 한 분야로, 인공신경망의 층을 연속적으로 깊게 쌓아올려 학습하는 방식을 말한다. 이해를 쉽게 하기 위해 퍼셉트론, 인공신경망 ,딥러닝의 순서로 학습한다. 1. 퍼셉트론(Perceptron) (1) 퍼셉트론의 개념 -신경 세포 뉴런과 유사한 알고리즘 -입력값 x와 가중치 w를 곱해서 모두 더한것이 임계치를 넘으면 1, 넘지 않으면 0을 출력값 y로 출력 -이 때, 임계치를 좌변으로 넘겨서 입력값 1과 편향 b가 곱해지는 그림으로 자주 표현 -활성화함수: 뉴런에서 출력값을 변경시키는 함수 -인공뉴런의 활성화함수: 시그모이드, 소프트맥스 함수, 계단함수 등 -퍼셉트론(인공뉴런의 한 종류)의 활성화함수: 계단함수 (0 아니면 1 출력) (2) 단층 퍼셉트론과 다층..
[딥러닝 NLP] 06. 머신러닝(Linear, Logistic, Softmax Regression) 이번 장에서는 머신러닝의 개념, linear regression, logistic regression, softmax regression 대해 알아본다. # 06-01 머신러닝이란? -데이터가 주어지면 기계가 스스로 규칙성을 찾아내는 훈련(training) 또는 학습(learning)의 과정 -사람이 직접 규칙을 정의하는 것보다 모델이 스스로 규칙을 찾아내도록 구현하는것이 훨씬 성능 좋음 # 06-02 머신러닝 개요 1. 머신러닝 모델 평가 -훈련 데이터로 모델을 학습(이 때 가중치, 편향 등은 학습과정에서 자동으로 얻어짐) -검증용 데이터에 대해 높은 정확도를 얻도록 하이퍼파라미터를 튜닝(사용자가 수정) -튜닝을 마친 최종모델을 테스트 데이터에 적용 2. 분류와 회귀 -분류: 이진분류, 다중 클래스 분..
[딥러닝 NLP] 05. 벡터의 유사도(코사인, 유클리드, 자카드) 문서의 유사도 : 문서들 간에 동일하거나 비슷한 단어가 공통적으로 사용된 정도 성능: 단어 표현 방법(DTM, Word2Vec 등) 과 유사도 기법(유클리드 거리, 코사인 유사도 등) 에 따라 달라짐 # 05-01 코사인 유사도(Cosine Similarity) 1. 코사인 유사도란? -두 벡터가 가리키는 방향이 유사한 정도를 코사인 각도로 구하는 기법 -동일 = 1, 90° = 0, 180° = -1 이므로, -1 이상 1 이하이며 1에 가까울수록 유사 -특징: 문서의 길이가 다른 상황에서 비교적 공정한 비교 가능 Ex) 문서A, 문서B는 내용 비슷한데 길이는 2배 차이 / 문서A, 문서C는 다른 내용인데 길이는 비슷한 경우 유클리드 거리는 길이의 영향 받아 A와 C의 유사도가 더 높게 나와버리지만, ..
[딥러닝 NLP] 04. 카운트 기반 단어 표현(BoW, DTM, TF-IDF) - 이번 장에서는 자연어처리의 정보 검색과 텍스트 마이닝 분야에서 주로 사용되는 카운트 기반 텍스트 표현 방법인 DTM(Document Term Matrix), TF-IDF(Term Frequency-Inverse Document Frequency) 에 대해 살펴본다. - 어떤 단어가 특정 문서 내에서 갖는 중요도, 문서의 핵심어 추출, 검색 엔진에서 검색 결과의 순위 결정, 문서들 간의 유사도를 구하는 등의 용도로 사용 # 04-01 다양한 단어 표현 방법 1. 국소 표현 (Local Representation) - 해당 단어 그 자체만 보고, 특정값을 맵핑하여 단어를 표현하는 방법 Ex) puppy(강아지), cute(귀여운), lovely(사랑스러운)라는 단어가 있을 때 각 단어에 1번, 2번, 3..
[딥러닝 NLP] 03. 언어 모델 # 들어가며 - 언어 모델에는 통계를 이용한 방법과 인공 신경망을 이용한 방법 존재 - 최근에는 인공 신경망을 이용한 방법(GPT, BERT 등)이 핫함 - 이번 장에서는 전통적인 통계 기반 언어 모델(Statistical Languagel Model, SLM)을 살펴봄 # 03-01 언어 모델이란? 1. 언어 모델 - 언어 모델(Language Model, LM) : 언어라는 현상을 모델링하고자 단어 시퀀스(문장)에 확률을 할당(assign)하는 모델 - NLP로 유명한 스탠포드에서는 LM을 grammar에 비유 - 언어 모델링 : 주어진 단어들로부터 아직 모르는 단어를 예측하는 작업 2. 단어 시퀀스에 확률 할당이 필요한 이유 - 기계 번역, 오타 교정, 음성 인식 등, 언어 모델은 확률을 통해 보다..