반응형

전체 글 184

[Going Deeper(NLP)] 10. Transformer로 번역기 만들기

해당 포스팅은 AIFFEL에서 제공한 학습자료를 통해 공부한 것을 정리한 것임을 밝힙니다. 준비물 터미널을 열고 프로젝트를 위한 디렉토리를 생성하자. $ mkdir -p ~/aiffel/transformer 실습에서 한국어가 포함된 말뭉치를 사용하기에 한국어를 지원하는 폰트를 지정하여 실행하자. import matplotlib as mpl import matplotlib.pyplot as plt import matplotlib.font_manager as fm %config InlineBackend.figure_format = 'retina' fontpath = '/usr/share/fonts/truetype/nanum/NanumBarunGothic.ttf' font = fm.FontProperties(..

[Going Deeper(NLP)] 9. Transformer가 나오기까지

해당 포스팅은 AIFFEL에서 제공한 학습자료를 통해 공부한 것을 정리한 것임을 밝힙니다. 학습 목표 트랜스포머 이전의 Attention 기법에 대해 간단하게 복습한다. 트랜스포머에 포함된 모듈들을 심층적으로 이해한다. 트랜스포머를 발전시키기 위해 적용된 여러 테크닉들을 알아본다. 1. Attention의 역사 Seq2seq는 두 개의 RNN을 결합한 Encoder-Decoder 구조를 만들어 문맥 전체를 반영한 번역이 가능하게 했다. Before) Step1: [나는] -> [I] Step2: [나는] [점심을] -> [I] [lunch] Step3: [나는] [점심을] [먹는다] -> [I] [lunch] [eat(?)] After) Encode(나는 점심을 먹는다) -> 고정된 크기의 컨텍스트 벡터..

[Going Deeper(NLP)] 7. Seq2seq와 Attention

해당 포스팅은 AIFFEL에서 제공한 학습자료를 통해 공부한 것을 정리한 것임을 밝힙니다. 학습 목표 언어 모델이 발전해 온 과정을 개략적으로 파악한다. 기존 RNN 기법이 번역에서 보인 한계를 파악하고, 이를 개선한 Seq2seq를 이해한다. Seq2seq를 발전시킨 Attention에 대해 알아본다. 1. 우리가 만드는 언어 모델 언어모델(Language Model)이란, 주어진 단어들을 보고 다음 단어를 맞추는 모델이다. 즉, 단어의 시퀀스를 보고 다음 단어에 확률을 할당하는 모델이다. 언어 모델은 n-1개의 단어 시퀀스가 주어졌을 때, n번째 단어로 무엇이 올지 예측하는 확률 모델로 표현된다. 파라미터 θ로 모델링하는 언어 모델을 다음과 같이 표현할 수 있다. 1.1 통계적 언어 모델(Statis..

[FUN] 6. 파이썬으로 코딩 시작하기

해당 포스팅은 AIFFEL에서 제공한 학습자료를 통해 공부한 것을 정리한 것임을 밝힙니다. 1. 함수 인자 (argument) : 입력값 매개변수 (parameter) : 인자를 받는 변수 def say_hi_somebody(name): print(name + ', 안녕!') say_hI_somebody('준이') → name : 매개변수, '준이' : 인자 2. 스코프(scope) : 변수가 유효한 범위 name = '하루' def change_name(): name = '시우' change_name() print(name) → 함수 내에서 선언한 '시우'는 함수 밖에서는 알 순 없으니 change_name()에서 출력이 되지 않음. → print(name)에서 '하루'만 출력이 됨. ▶ 전역스코프(g..

AIFFEL/Fundamental 2022.03.29

[Going Deeper(NLP)] 6. 임베딩 내 편향성 알아보기

해당 포스팅은 AIFFEL에서 제공한 학습자료를 통해 공부한 것을 정리한 것임을 밝힙니다. 학습 목표 데이터의 편향성에 대한 문제의식을 갖는다. 임베딩 모델의 편향성을 체크하는 방법 중 하나인 Word Embedding Association Test (WEAT)를 알아본다. WEAT 수식의 의미를 이해하고 이를 구현해본다. pre-train된 모델을 불러와서 WEAT score를 구해본다. 목차 워드 임베딩의 편향성 WEAT를 통한 편향성 측정 WEAT 구현하기 사전학습된 Word Embedding에 WEAT 적용 직접 만드는 Word Embedding에 WEAT 적용(1) 직접 만드는 Word Embedding에 WEAT 적용(2) 프로젝트 : 모든 장르 간 편향성 측정해 보기 참고 자료 아마존 채용 ..

[Going Deeper(NLP)] 5. 워드 임베딩

해당 포스팅은 AIFFEL에서 제공한 학습자료를 통해 공부한 것을 정리한 것임을 밝힙니다. 1. 벡터화 기계는 텍스트보다 수치화된 숫자를 더 잘 처리할 수 있기에 기계가 자연어 처리를 원활히 할 수 있도록, 전처리 과정에서 텍스트를 벡터로 변환하는 벡터화(Vectorization)라는 과정을 거친다. 텍스트를 벡터화하는 방법을 정리해보자. 1.1 Bag of words / DTM(Document-Term Matrix) [Going Deeper(NLP)] 3. 텍스트의 분포로 벡터화 하기 해당 포스팅은 AIFFEL에서 제공한 학습자료를 통해 공부한 것을 정리한 것임을 밝힙니다. 목차 단어 빈도를 이용한 벡터화 (1) Bag of Words (2) Bag of Words 구현해보기 (3) DTM과 코사인 유..

[Going Deeper(NLP)] 3. 텍스트의 분포로 벡터화 하기

해당 포스팅은 AIFFEL에서 제공한 학습자료를 통해 공부한 것을 정리한 것임을 밝힙니다. 목차 단어 빈도를 이용한 벡터화 (1) Bag of Words (2) Bag of Words 구현해보기 (3) DTM과 코사인 유사도 (4) DTM의 구현과 한계점 (5) TF-IDF (6) TF-IDF 구현하기 LSA와 LDA (1) LSA (2) LSA 실습 (3) LDA (4) LDA 실습 텍스트 분포를 이용한 비지도 학습 토크나이저 (1) 형태소 분석기와 단어 미등록 문제 (2) soynlp 1. 단어 빈도를 이용한 벡터화 머신러닝 모델은 기계이기에 텍스트보다 수치화된 숫자를 잘 처리할 수 있다. 그래서 자연어 처리에서는 전처리 과정에서 텍스트를 숫자 벡터로 변환하는 벡터화(Vectorization)를 거친..

[프로그래머스 코딩테스트 연습] 22. 하샤드 수

코딩테스트 연습 - 하샤드 수 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하 programmers.co.kr 1) 문제 설명 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 2) 제한 조건 x는 1 이상, 10000 이하인 정수입니다. 3) 입출력 예 입출력 예 #1 10의 모든 자릿수의 합은 1입니다. 10은 1로 ..

[프로그래머스 코딩테스트 연습] 21. 두 개 뽑아서 더하기

코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 1) 문제 설명 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 2) 제한사항 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. 3) 입출력 예 입출력 예 #1 2 = 1 + 1 입니다. (1..

[프로그래머스 코딩테스트 연습] 19. 문자열 내 마음대로 정렬하기

코딩테스트 연습 - 문자열 내 마음대로 정렬하기 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱 programmers.co.kr 1) 문제 설명 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. 2) 제한 조건 strings는 길이 1 이상, 50이하인 배열입니다. stri..

반응형