자연어 처리 모델 참고 영상 https://www.youtube.com/watch?v=fTQRplbzI1o&t=89s GPT 데이터 플로우 단방향 두 단계로 나누어 학습 (비지도 학습 pre-training, fine tuning) 시퀀스 투 시퀀스 모델링에서의 디코더 Pre-training 단어들의 관계를 최대화 시키는 과정 뒤에 나올 단어의 확률을 최대화시킴 Fine-tuning: 학습 과정. task에 맞춰서 파라미터를 튜닝함. GPT의 구조 left to right 문장이 흘러가는 방향대로 attention GPT2, GPT3 BERT Bidirectional Encoder Representation from Transformers 단방향 학습하는 GPT와 다르게 데이터 플로우 양방향 GPT와 유..
파이토치로 시작하는 딥러닝기초 출처: https://www.boostcourse.org/ai214 순환신경망(Recurrent Neural Network) Sequence-To-Sequence 시퀀스를 입력받아서 시퀀스를 출력 대표적인 사용처: 번역이나 챗봇 Encoder - Decoder 구조 인코더로 압축된 벡터를 디코더에 전달 스타트 플래그와 함께 모델 시작 아웃풋을 reply에 첫번째에 두고, 이 아웃풋이 다음으로 또 들어간다. -> 완전한 문장 생성 모든 문장을 들은 후에 답변을 생성한다 RNN 2개를 생성해서 중간을 연결한 형태 pytorch로 구현 가능 마지막 10줄의 코드가 전체 200줄 정도의 내용을 압축하고 있는 코드 이 예시는 번역 task를 수행하는 모델 source text (영문..
해당 내용은 멋쟁이사자처럼 AI School 오늘코드 박조은 강사의 자료입니다. 형태소 분석 KoNLPy: 파이썬 한국어 NLP — KoNLPy documentation KoNLPy: 파이썬 한국어 NLP — KoNLPy 0.6.0 documentation KoNLPy: 파이썬 한국어 NLP KoNLPy(“코엔엘파이”라고 읽습니다)는 한국어 정보처리를 위한 파이썬 패키지입니다. 설치법은 이 곳을 참고해주세요. NLP를 처음 시작하시는 분들은 시작하기 에서 가 konlpy.org - 형태소 분석 전 문자 전처리 (map을 통해 일괄 적용 후 사용) # 정규표현식 import re def preprocessing(text): # 한글, 영문, 숫자만 남기고 모두 제거하도록 합니다. text = re.sub(..
해당 내용은 멋쟁이사자처럼 AI School 오늘코드 박조은 강사의 자료입니다. 사용 데이터셋 출처: 뉴스 토픽 분류 AI 경진대회 - DACON KLUE Benchmark(https://klue-benchmark.com/) 문자 길이 세기 len 문장 길이 word_count 단어 수 unique_word_count 중복 제거 단어수 # apply, lambda를 통해 문자, 단어 빈도수 파생변수 만들기 # df["len"] = df["title"].map(lambda x: len(x)) df["len"] = df["title"].str.len() df["word_count"] = df["title"].map(lambda x : len(x.split())) # 형태소 분석기를 사용하면 단어의 수를 셀때..
해당 내용은 멋쟁이사자처럼 AI School 오늘코드 박조은 강사의 자료입니다. NLP 단어 벡터화하기 BOW(bag of words) 가장 간단하지만 효과적이라 널리쓰이는 말뭉치 방법 각 단어가 이 말뭉치에 몇 번 나타나는지 파악(출현 회수 카운트) BOW는 단어의 순서가 완전히 무시 된다는 단점이 있다. it's bad, not good at all. it's good, not bad at all. 위 두 문장은 의미가 전혀 반대지만 완전히 동일하게 반환된다. 이를 보완하기 위해 n-gram을 사용한다. (n-gram은 n개의 토큰을 사용한다.) CountVectorizer CountVectorizer 는 사이킷런에서 제공하는 bag of words 를 만들 수 있는 방법이다 (https://scik..
활성화 함수 친구들 출처_https://www.linkedin.com/pulse/activation-functions-101-sigmoid-tanh-relu-softmax-ben-hammouda?trk=articles_directory 오늘의 복습 키워드: SoftMax 쉽고 간단하게만 이해해보기 빠른 결론: 시그모이드는 이진분류(binary classification)에, 소프트 맥스는 다중클래스 분류(multiclass problems)에 사용된다. 시그모이드 vs 소프트맥스 시그모이드 함수는 로지스틱 함수의 한 케이스라 볼 수 있고, 인풋이 하나일 때 사용되는 시그모이드 함수를 인풋이 여러개일 때도 사용할 수 있도록 일반화 한 것이 소프트맥스 함수이다. 내용출처 🌱 logit vs sigmoid v..
혼동행렬 (confused matrix) 혼동행렬(confusion matrix)은 모델의 분류 성능을 평가할 때 사용되는 지표이다. 관련 자료마다 예측, 실제, T, F 위치가 다 다르기 때문에 주의해야 한다. 이번 포스팅의 기준 TN: 예측 X, 실제 X FP (1종 오류): 예측은 O, 실제론 X FN (2종 오류): 예측은 X, 실제 O TP 예측 O, 실제 O 한눈에 보기 가장 잘 정리된 이미지 이미지 후출처_https://velog.io/@hajeongjj/Eval-Metrics 정확한 원 출처를 찾지 못했습니다. 문제가 된다면 알려주세요 좀 더 쉽게 이해하기 1종 오류와 2종 오류 예시 1종 오류 실제는 임신이 아닌데(0), 임신(1)로 예측 스팸메일이 아닌데 스팸메일로 예측 무고한 피고인에..
최적화란? 최적화(Optimization)란 손실함수(Loss Function)값을 최소화하는 파라미터를 구하는 과정이다. 이때 손실함수는 예측값과 실제 정답값의 차이를 의미한다. Gradient Descent(경사하강법)의 정의 gradient는 기울기, 경사를 의미하며 경사하강법의 주된 목적은 함수의 최소값을 찾는 것이다. 이에 따라, 경사하강법은 기울기가 작아지는 방향을 찾고 해당 방향으로 한 걸음 씩 계속 내딛으면서 값이 제일 작은 곳을 찾아 나가는 방법이다. 💡 함수 최소값 탐색에 미분계수가 0이 되는 지점을 찾지 않고 GD 사용하는 이유는? 우리가 주로 실제 분석에서 맞닥뜨리게 되는 함수들은 닫힌 형태(closed form)가 아니거나 함수의 형태가 복잡해 (가령, 비선형함수) 미분계수와 그 ..
오늘은 K-MOOC 강의를 통해 그동안 배운 내용을 복습했다 Introduction to Machine Learning 머신러닝이란 input (data) → function → output 결국에 머신러닝이라고 하는 건 함수를 학습하는 것이다. 컴퓨터를 학습시킬 수 있는 알고리즘을 컴퓨터에게 입력시켜주면 컴퓨터가 스스로 데이터 안에 있는 유용한 패턴을 찾아서 함수를 찾아주는 것이다. 그렇게 도출된 유용한 함수를 사용하는 것이다. 딥러닝, 머신러닝, 이러한 개념의 차이는 데이터를 입력하고, 그 다음에 function의 기본적인 형태를 컴퓨터에게 알려주면 트레이닝 과정을 통해서 최종적인 optimal function, 굉장히 좋은 유용한 함수를 컴퓨터 스스로 학습을 한다는 것이다. CPU Computing..