본문 바로가기

[NLP] 자연어처리 기초 (for 기술면접 대비) Tokenization - corpus를 의미 있는 단위인 token으로 나누기 - 구두점, 특수문자 단순히 제외하면 안됨 Lemmatization & Stemming - Lemmatization : 표제어 추출 (뿌리 단어 찾기, am → be) - Stemming : 어간 추출 (going → go) Language Model - 단어 sequence에 확률을 부여하는 모델로, 이전 단어들 주어졌을 때 다음 단어 예측하는 모델 n-gram - 통계적 언어 모델에서 앞의 n개 단어 보고 확률 계산 BoW (Bag of Words) - 단어 순서를 고려하지 않고 출현 빈도만 고려 TF-IDF - DTM : 문서별 단어 빈도를 행렬로 표현 - tf(d,t) : 특정 문서 d에서 특정 단어 t가 나오는 횟수..
[ML] 머신러닝 기초 (for 기술면접 대비) 출처 : https://www.springboard.com/blog/machine-learning-interview-questions/ 머신러닝 기초 Bias & Variance - Bias : 참값과 추정값들의 차이 - Variance : 추정값들의 흩어진 정도 - train data에 bias를 최대한 낮출 경우 모델 복잡도가 높아져 variance가 커지고, variance를 줄이기 위해 모델 복잡도를 낮출 경우 bias가 높아지는 trade-off 관계가 존재 Supervised & Unsupervised ML - 지도 학습 (Supervised Learning) : 정답 알려주며 학습, label된 train data 필요, 분류 + 회귀 - 비지도 학습 (Unsupervised Learning..
[CS] Python 기초 (for 기술면접 대비) 출처 : https://www.edureka.co/blog/interview-questions/python-interview-questions/#basicinterviewquestions Python 기본 질문 list 와 tuple 의 차이 - list : 가변성, 더 느림 - tuple : 불변성(수정 불가), 더 빠름 Python 주요 특징 - interpreted language : 실행 전 컴파일이 필요 없음 - dynamically typed : 변수 사용 전 선언할 필요 없음 - 객체지향적 프로그래밍 : 상속 등과 함께 class(객체) 정의 허용 - 함수가 first-class object : 변수에 할당 가능, 다른 함수에서 반환 및 전달 가능 Scripting & Programming ..
[CS] 자료구조 (for 기술면접 대비) 선형 구조 List Array List - 배열 이용하여 구현 - 장점 : index 통한 순차적 접근 유리 - 단점 : 삽입, 삭제 시 계산량 많아짐 (해당 index 기준으로 앞/뒤 shift 연산 필요) Linked List - node = data + next로 구성 : next에 다음 node 위치 저장 - 단일 연결 (Singly Linked List) : 동적 메모리 사용하지만, 특정 데이터를 찾으려면 head부터 찾아야 함 - 이중 연결 (Doubly Linked List) : 양방향으로 각 node의 전, 후 알 수 있지만, pointer를 2개 보유해야 함 - 원형 연결 (Circular Linked List) : 마지막 node의 next가 첫번째 node 가리킴 Stack - LIF..
[NLP] BERT (Bidirectional Encoder Representations from Transformer) 이 포스트는 책 '한국어 임베딩(자연어 처리 모델의 성능을 높이는 핵심 비결 Word2Vec에서 ELMo, BERT까지, 이기창 저)'을 기반으로 작성되었습니다. 구글에서 공개한 모델인 BERT는 앞에서 소개했던 트랜스포머 블록을 사용하고 bi-directional하기 때문에 좋은 성능을 내어 많이 사용되고 있다. (논문 pdf : https://arxiv.org/pdf/1810.04805.pdf) 이전 다른 모델들(GPT, ELMo)과 BERT를 비교해보자. GPT는 주어진 sequence로 다음 단어를 예측하는 언어 모델이라서 단어 sequence를 한 방향으로만 보는 아키텍쳐를 지니고 있으며, ELMo는 bi-LSTM layer 상단은 양방향이지만 중간 layer는 한 방향으로 학습되는 모델이다. ..
[NLP] Transformer Network 이 포스트는 책 '한국어 임베딩(자연어 처리 모델의 성능을 높이는 핵심 비결 Word2Vec에서 ELMo, BERT까지, 이기창 저)'을 기반으로 작성되었습니다. 구글 NIPS에서 공개한 트랜스포머 네트워크는 자연어처리에 큰 획을 그었다. 이후 개발된 BERT, GPT 등의 모델은 모두 이 트랜스포머 블록을 기본 모델로 사용하고 있다. (논문 pdf : https://arxiv.org/pdf/1706.03762.pdf) Scaled Dot-Product Attention Transformer block의 주 요소 중 하나인 Scaled Dot-Product Attention은 아래 수식을 통해 계산된다. 행렬 형태인 입력 X는 (입력 문장 단어 수) * (입력 임베딩 차원 수) 크기를 가지고 있으며, 쿼..
[NLP] ELMo (Embeddings from Language Models) 이 포스트는 책 '한국어 임베딩(자연어 처리 모델의 성능을 높이는 핵심 비결 Word2Vec에서 ELMo, BERT까지, 이기창 저)'을 기반으로 작성되었습니다. ELMo는 문장 임베딩 기법 중 하나로, 전이 학습(transfer learning)을 NLP에 접목시킨 언어 모델이다. 단어 sequence가 얼마나 자연스러운지에 대해 확률값을 부여하며, 입력한 단어들 뒤에 어떤 단어가 올지 맞추는 방식으로 학습된다. ELMo가 등장한 이후, 모델을 pre-train시킨 뒤 각종 downstream task (classification 등 우리가 풀고 싶은 task들)에 적용하는 방식이 일반화되었으며, 이런 과정을 pre-train model을 downstream task에 맞게 fine tuning한다고 ..
[NLP] 잠재 디레클레 할당 (LDA) 이 포스트는 책 '한국어 임베딩(자연어 처리 모델의 성능을 높이는 핵심 비결 Word2Vec에서 ELMo, BERT까지, 이기창 저)'을 기반으로 작성되었습니다. 토픽 모델링 (Topic Modeling)이라고 불리기도 하는 LDA (Latent Dirichlet Allocation)란, 각 문서에 어떤 주제가 존재하는지 나타내는 확률 모형이다. LDA는 말뭉치 이면에 존재하는 정보를 추론하는, 잠재 정보를 알아내는 과정이므로 잠재(Latent)라는 단어가 붙으며, 변수 중 디레클레 분포를 따르는 변수가 있기 때문에 디레클레(Dirichlet)라는 단어로 명명되어 있다. http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf http://www.cs.columb..