본문 바로가기

728x90
반응형

데이터와 인공지능

(21)
[Matplotlib] 구글 코랩(Colab)에서 한글 깨짐 문제 해결하기 matplotlib나 seaborn에서 x축, y축, 그리고 label 등 한글을 사용하면 한글이 깨져 그래프가 제대로 그려지지 않는다. 그래서 local이든 colab이든 별도로 폰트를 다운로드하고 적용시키는 작업을 수행해야 하는데 오늘은 colab에서 한글 깨짐 문제를 해결하는 방법을 공유한다. 생각보다 매우 간단하다. 1. 나눔 폰트 설치 !sudo apt-get install -y fonts-nanum !sudo fc-cache -fv !rm ~/.cache/matplotlib -rf 2. Colab 런타임 다시 시작 상단탭에서 [런타임] > [런타임 다시 시작] 클릭 3. matplotlib 폰트 변경 import matplotlib.pyplot as plt plt.rcParams['font.f..
[NLP] HuggingFace 토크나이저 커스텀하기 (커스텀 토큰 추가) 지금 NLP 분야에서는 새로운 모델을 학습시키는 것보다 Pre-trained 된 모델을 가져와 재학습 시키는 경우가 많다. 그럼 해당하는 모델이 사용하는 Embedding Layer를 지나가기 위해 토큰 정보를 담은 토크나이저는 수정할 수 없는걸까? 아니 커스터마이징 할 수 있다. 지금 내가 해결하고자 하는 문제에 대한 단어들이 토크나이저에 없을 수 있는데 추가할 수 있는 방법은 매우 간단하다. 일단 추가할 토큰을 명시하고 토크나이저에 추가한 다음에 해당 모델의 Embedding Layer input을 바꿔주면 된다. 1. 추가할 토큰 명시 add_tokens = ['[NEW'] 2. 토크나이저 업데이트 tokenizer = AutoTokenizer.from_pretrained({model_name}) ..
[DART] 공시대상회사 정보 가져오기 대한민국 전자공시시스템(DART : Data Analysis, Retrieval and Transfer System)은 상장법인 등이 공시서류를 인터넷으로 제출하고, 투자자 등 이용자는 제출 즉시 인터넷을 통해 조회할 수 있도록 하는 종합적 기업공시 시스템이다. 웹 사이트에 접속해 검색이 가능하지만 좀 더 방대한 자료를 원한다면 DART에서 API를 제공하기 때문에 python 코드로 손쉽게 구현 가능하다. Open API Key는 여기에서 받으면 되고, 일일 호출 2만 회로 제한되어 있다. 다양한 API를 제공하기 때문에 원하는 정보를 손쉽게 가져올 수 있지만, 우선적으로 작업해야 하는 것이 있다. 그건 기업 정보를 가지고 있어야 해당 기업 검색이 가능한데 [개발 가이드] > [공시 정보] > [4. ..
[논문 리뷰] Efficient Estimation of Word Representations in Vector Space 문제점 및 기여 부분 텍스트 데이터를 벡터화 하기 위해 가장 많이 사용된 One-Hot Encoding 방식 대신 새로운 방법론인 CBOW와 Skip-gram을 제시하며 Word2Vec의 대표적인 알고리즘으로 자리잡았다. 목차 Introduction Models Results 1. Introduction 텍스트 데이터는 단어 혹은 문장이기 때문에 바로 학습할 수 없다. 그래서 학습을 위해 범주형 데이터를 수치형 데이터로 변환해줘야 하는데 기존에는 One-Hot Encoding 방식이 가장 많이 사용됐다. One-Hot Encoding이란, 표현하고자 하는 단어를 1, 나머지 단어를 0으로 채운 (1, 단어 개수) 크기의 벡터이다. 위에 그림처럼 사과~참외까지의 거리가 100이라면 단어 개수는 100개이다..
[CS231n] Lecture 4. Backpropagation and Neural Networks Table of contents 1. Introduction 1.1 Forward propagation 1.2 Backward propagation 1.3 computational graph 1.4 chain rule 1.5 Partial Derivative 2. Backward propagation 2.1 Backward propagation 2.2 Gradients for Vector 3. Neural Networks 3.1 Neural Networks 1. Introduction 미분을 통해 최적화를 하는 방법에는 크게 두가지가 있었습니다. Numerical gradient (수치적 미분) : 속도가 느리고 근사치를 찾는 방법임. Analytic gradient (해석적 미분) : 빠르고 정확하지만..
[CS231n] Lecture 8. Deep Learning Software 목차 1. CPU vs GPU 2. Deep Learning Frameworks 2.1 Pytorch 3. Static vs Dynamic Graphs 1. CPU vs GPU CPU와 GPU에 대해 이야기를 하자면 왼쪽 그림은 CPU 칩의 모습이고 오른쪽 그림은 GPU의 모습이다. 위 그래프는 x축은 모델, y축은 연산에 소요된 시간인데 성능이 하드웨어 크기에 비례하는 것인지 GPU(빨, 주)가 CPU(파)보다 훨씬 적은 시간이 소요됐다. 64~76배 차이가 있는데 무조건 GPU를 쓰는게 좋다는 것을 알 수 있다. 강의에서 말하기를 CPU에서는 병목 현상(bottleneck)이 발생할 수 있기 때문에 GPU를 사용하는게 좋고 데이터는 CPU에 저장하며, 모델은 GPU에서 작동하는 것이 좋다고 한다. 2..
[SVM] 서포트 벡터 머신 (Support Vector Machine) 딥러닝이 나오기 이전에 많이 사용되고 좋은 성능을 보여준 서포트 벡터 머신에 대해 리뷰하겠다. 글의 내용은 책 핸즈온 머신러닝을 참고하여 작성했다. 0. SVM이란 SVM(Support Vector Machine)이란, 매우 강력한 머신러닝 알고리즘으로 머신러닝을 배운 사람이라면 반드시 알고 있어야 하는 모델이다. 선형이나 비선형 분류, 회귀, 이상치 탐지에도 사용할 수 있는 다목적 머신러닝 알고리즘으로 특히 분류에서 성능이 뛰어나기 때문에 주로 분류에서 많이 사용된다. 위 그림에서 Separating Hyperplane은 일종의 Decision Boundary 결정 경계이다. Decision Boundary란 분류를 하기 위한 기준 선이라고 생각하면 된다. 지금은 간단한 2-dimension에서의 De..
[CV] Object Detection 검증 지표 Object Detection 문제에서 모델 성능을 평가할 때 단일 레이블이먄 AP(Average Precision)을 사용하고 다중 레이블이면 mAP(mean Average Precision)을 사용한다. mAP는 AP로 계산할 수 있고 AP는 PR 곡선(Precision-Recall Curve)으로 구하며, PR 곡선은 Precision과 Recall으로 구하기 때문에 Object Detection 문제를 해결하는 모델의 성능을 검증하기 위해서 Precision과 Recall을 먼저 알아야 한다. Precision과 Recall을 설명하기 이전에 Confusion Matrix라고 하는 아래 표를 보고 용어를 이해해야 한다. 1. Precision Precision은 정확도를 의미하며 검출 결과 중 올..

728x90
반응형