Python/NLP18 단어 표현 방법 - 시소러스, 통계 기반 기법 자연어란? - 한국어, 영어 등 우리가 평소에 쓰는 말 자연어처리(Natural Language Processing, NLP)란? - 자연어를 처리하는 분야 - 우리의 말을 컴퓨에게 이해시키기 위한 기술(분야) 단어는 의미의 최소 단위라고 할 수 있음 자연어를 컴퓨터에게 이해시킬 때 '단어의 의미'를 이해시키는 게 중요! 즉, 단어의 의미를 잘 파악할 수 있는 표현 방법에 대해 고민해봐야 한다 딥러닝 이전의 고전적인 방법들은 크게 3가지가 있다. 1. 시소러스를 활용한 기법 2. 통계 기반 기법 3. 추론 기반 기법(ex. word2vec) 시소러스 - 시소러스 형태의 사전을 초창기에는 이용했음 - 동의어 그룹, 유의어 그룹 - 상위와 하위, 전체와 부분 등 세세한 관계를 그래프 구조로 정의 - NLP .. 2023. 9. 16. BERT 활용 - 질의 응답(Question Answering) BERT는 Fine-tuning 하여 다양하게 사용할 수 있는데 그 중 하나가 질의응답(Question Answering)이다. 조금 더 공부해봐야 확실하게 말할 수 있겠지만, 이 글에서 말하는 질의 응답은 대화형 챗봇과는 다른 맥락이다. Fine-tuning이란? - 우리가 풀고자 하는 태스크의 데이터를 사전학습 된 BERT에 추가로 학습시키는 것 - 가중치 업데이트 - 실질적으로 BERT를 활용하는 작업이라고 볼 수 있다. 이 글에서 말하고자 하는 '질의 응답'을 정의하자면 - 추출형 질의응답(extractive question answering) - 질문에 답을 하는 것 - 구체적으로는, 질문(question)에 대한 답(answer)을 지문(context)에서 찾는 것 - 지문에 대해서 질문을 제.. 2023. 8. 9. 트랜스포머(Transformer) - 인코더, 디코더 이 글을 통해 트랜스포머의 인코더와 디코더에서 각각 어떤 일이 일어나는지, 뭐가 사용되는지를 총 정리해보고자 한다 인코더의 구조 - num_layers : 트랜스포머의 하이퍼 파리미터. 지정한 개수의 인코더층을 쌓음. 트랜스포머의 인코더는 크게 2개의 sublayer로 나눠짐 1. 멀티헤드어텐션층 2. 포지션-와이즈 피드포워드 신경망 층 자세하게는 다음과 같이 나뉨! 1. 임베딩 벡터에 포지셔널 인코딩을 수행 -> 단어의 위치 정보 반영 2. 셀프 어텐션 층을 지남 - 멀티 헤드 셀프 어텐션 3. 잔차 연결과 층 정규화 4. 피드포워드 신경망 층을 지남 5. 잔차 연결과 층 정규화 - 포지션 와이즈 피드포워드 신경망, 일반적으로 알고있는 피드 포워드 신경망 인코더의 멀티 헤드 셀프 어텐션 어텐션 개념 복.. 2023. 7. 19. 트랜스포머(Transformer) - 입력(포지셔널인코딩) https://arxiv.org/abs/1706.03762 Attention Is All You Need The dominant sequence transduction models are based on complex recurrent or convolutional neural networks in an encoder-decoder configuration. The best performing models also connect the encoder and decoder through an attention mechanism. We propose a new arxiv.org 트랜스포머란? - 인코더-디코더 구조를 따르면서, RNN을 사용하지 않고 어텐션으로만 구현한 모델 인코더-디코더 구조 - 인코더 :.. 2023. 7. 15. 어텐션(인코더-디코더 Attention, Dot-Product Attention) https://tgwon.tistory.com/52 시퀀스-투-시퀀스(seq2seq) 시퀀스-투-시퀀스(Sequence-to-Sequence, seq2seq) - 입력된 시퀀스를 다른 시퀀스로 변환하는 작업을 수행하는 딥러닝 모델 - 주로 자연어 처리(NLP) 분야에서 활용 - ex) 챗봇, 기계 번역, 요약, STT 아래 그 tgwon.tistory.com RNN에 기반한 seq2 seq 모델의 한계 - 컨텍스트 벡터로 정보 압축 과정에서 정보 손실 발생, 입력 시퀀스가 길어지면 심함 - RNN의 고질적인 문제인 기울기 소실 문제 -> 그래서 등장한 게 어텐션(attention) -> 입력 시퀀스가 길어지면 출력 시퀀스의 정확도가 떨어지는 것을 보정 어텐션 아이디어 디코더에서 출력 단어를 예측하는 매 .. 2023. 6. 27. 시퀀스-투-시퀀스(seq2seq) 시퀀스-투-시퀀스(Sequence-to-Sequence, seq2seq) - 입력된 시퀀스를 다른 시퀀스로 변환하는 작업을 수행하는 딥러닝 모델 - 주로 자연어 처리(NLP) 분야에서 활용 - ex) 챗봇, 기계 번역, 요약, STT 아래 그림은 seq2seq 모델을 간략하게 표현한 그림 ex) - 'I am a student'라는 영어 문장을 입력 - 'je suis étudiant'라는 프랑스 문장을 출력 seq2seq 구조 -> 인코더와 디코더로 구성됨 인코더 - 입력 문장의 모든 단어들을 순차적으로 입력받음 - 입력받은 뒤에 마지막에 모든 단어 정보들을 압축해서 하나의 벡터로 만듦 -> 컨텍스트 벡터(context vector) 디코더 - 컨텍스트 벡터를 받아서 번역된 단어를 한 개씩 순차적으로 .. 2023. 4. 11. 이전 1 2 3 다음