Processing math: 100%

전체 글 109

코드 스타일 통일을 위해 Black 적용하기

팀원들과 파이썬 프로젝트를 진행하면서 코드의 스타일과 포맷을 일관성 있게 맞춰야겠다는 필요성을 느끼게 되었다. 파이썬에는 PEP8이라는 파이썬 코드의 공식 스타일 가이드가 존재한다. PEP 8 – Style Guide for Python Code | peps.python.org PEP 8 – Style Guide for Python Code Author: Guido van Rossum , Barry Warsaw , Nick Coghlan Status: Active Type: Process Created: 05-Jul-2001 Post-History: 05-Jul-2001, 01-Aug-2013 Table of Contents This document gives coding conventions for t..

Backend/Python 2023.04.26

Latex 명령어 정리

기본 명령어 a, b, c와 같은 문자, 1, 2, 3과 같은 숫자, +, -, *, /와 같은 기호, ()와 같은 소괄호는 문자 그대로 사용한다. {}, []와 같은 중괄호나 대괄호는 그룹화나 배열 작성에 사용한다. 수식 명령어 \frac{a}{b}: ab (분수) \sqrt{x}: x (제곱근) \sqrt[n]{x}: nx (n 제곱근) \sum_{i=1}^{n} a_i: ni=1ai (시그마 합) \prod_{i=1}^{n} a_i: ni=1ai (파이 곱) \int_{a}^{b} f(x)dx: baf(x)dx (적분) \iint_{D} f(x,y)dxdy: $\iint..

AI/AI Math 2023.04.24

문장 간 유사도 측정(STS) 대회 회고

대회 개요 STS (Semantic Textual Similarity) task는 두 개의 문장이 주어졌을 때, 이 두 문장 사이의 의미적 유사도를 측정하는 자연어 처리(NLP) task이다. STS task는 NLP 분야에서 중요한 문제 중 하나로, 텍스트 매칭, 정보 검색, 자동 요약, 기계 번역 등의 응용 프로그램에서 유용하게 활용된다. STS task는 주로 평가를 위해 사용되며, 주어진 두 문장 사이의 유사도를 0부터 5까지의 점수로 평가하는 것이 일반적이다. 이때, 0은 전혀 유사하지 않음을 나타내고, 5는 매우 유사함을 나타낸다. 학습 데이터셋 9324개, 검증 데이터셋 550개를 활용해 1100개의 평가 데이터에 대한 예측을 진행한다. 데이터 셋에는 두 개의 문장과 ID, 유사도 점수가 담..

프로젝트 회고 2023.04.23

Huggingface의 Transformer 라이브러리에서 pre-trained된 모델 활용하기

Transfer Learning은 많은 양의 데이터로 사전 훈련된 모델을 가져와 새로운 태스크를 학습시키는 기술이다. Hugging Face의 Transformers 라이브러리는 다양한 사전 훈련된 모델을 제공하며, 이러한 모델을 fine tuning하여 새로운 태스크를 수행할 수 있다. 이번 포스팅에서는 Hugging Face의 Transformers 라이브러리를 사용하여 Transfer Learning을 수행하는 방법에 대해 알아보자. 1. Downstream Task에 알맞게 pre-trained된 모델 수정 from_pretrained() 메서드를 사용하여 사전 훈련된 모델과 토크나이저를 불러올 수 있다. Downstream Task를 수행하기 위해서는 pre-trained 모델의 출력 차원을 조..

AI/기타 2023.04.21

HuggingFace Trainer로 모델 학습 및 평가하기

HuggingFace Trainer는 PyTorch와 같은 딥러닝 프레임워크에서 모델을 학습하기 위한 편리한 인터페이스를 제공하는 파이썬 라이브러리이다. Trainer 클래스와 TrainingArguments 클래스는 Trainer를 사용하여 모델을 학습시키기 위한 설정과 제어를 담당하는 중요한 클래스들이다. 이 두 클래스를 통해 모델 학습의 다양한 설정을 조정하고, 학습 과정을 관리할 수 있다. Trainer 클래스 Trainer 클래스는 모델의 학습을 관리하고 제어하는 클래스로, transformers 라이브러리에서 제공되는 핵심 클래스 중 하나이다. Trainer 클래스를 사용하면 모델 학습에 필요한 다양한 기능들을 활용할 수 있다. 주요 속성 model: 학습할 모델 객체. PyTorch와 같은 ..

AI/기타 2023.04.18

WandB(Weights & Biases)로 하이퍼 파라미터 튜닝하기

모델의 성능을 개선하기 위해 다양한 하이퍼 파라미터를 조정하고, 여러 번의 실험을 반복하며 모델의 동작을 이해하는 것은 필수적이다. 이를 위해 Weights & Biases(WandB)라는 도구를 사용하면 효과적으로 모델 실험을 관리하고 하이퍼 파라미터 튜닝을 할 수 있다. 이번 글에서 WandB에 대한 간략한 소개와, PyTorch 프레임워크에서 WandB Sweep을 사용하는 방법에 대해 알아보자. WandB(Weights & Biases)란? WandB(Weights & Biases)는 머신러닝 실험 관리를 위한 오픈소스 도구로, 실험의 결과와 메트릭을 추적하고 시각화하는 기능을 제공한다. 또한, 하이퍼파라미터 튜닝을 위한 Sweep 기능을 제공하여 자동화된 하이퍼파라미터 검색을 수행할 수 있다. ..

AI/기타 2023.04.18

[Matplotlib] Bar plot

세로 막대 그래프 / 가로 막대 그래프 fig, axes = plt.subplots(1, 2, figsize=(12, 7)) x = list('ABCDE') y = np.array([1, 2, 3, 4, 5]) axes[0].bar(x, y) # 세로 막대 그래프 axes[1].barh(x, y) # 가로 막대 그래프 plt.show() 막대 그래프에 색 넣기 color 파라미터를 사용하여 색 지정 fig, axes = plt.subplots(1, 2, figsize=(12, 7)) x = list('ABCDE') y = np.array([1, 2, 3, 4, 5]) clist = ['blue', 'gray', 'gray', 'gray', 'red'] axes[0].bar(x, y, color=clist..

[Deep Learning] LSTM을 직접 구현해보자!

LSTM Cell 위 그림은 LSTM Cell의 구조이다. LSTM의 Cell을 구현한 코드는 아래와 같다. from typing import Optional, Tuple import torch from torch import nn class LSTMCell(nn.Module): def __init__(self, input_size: int, hidden_size: int): super().__init__() self.hidden_lin = nn.Linear(hidden_size, 4 * hidden_size) self.input_lin = nn.Linear(input_size, 4 * hidden_size, bias = False) def forward(self, x: torch.Tensor, h: t..

AI/Deep Learning 2023.03.29

[논문 리뷰] Sequence to Sequence Learning with Neural Networks

논문이 다루는 Task 본 논문에서는 LSTM을 활용해 높은 정확도로 입력 sequence가 주어졌을 때, 그에 상응하는 출력 sequence를 생성해내는 아키텍쳐를 제안하고, 이를 기계 번역 task에 사용한다. 기존 연구 한계 DNN (Deep Neural Network) DNN은 입력 벡터와 출력 벡터의 차원이 고정적이다. 따라서, 출력 벡터의 차원(출력 sequence의 길이)를 사전에 알기 힘든 Seq2Seq task에는 적합하지 않다. RNN (Recurrent Neural Network) 일반적으로 sequence 학습을 위해서는 RNN을 활용한 encoder와 decoder 구조를 사용한다. 그러나 이 방법은 long-term dependency 문제로 인해 이전의 정보들이 뒤로 갈수록 보..

AI/논문 리뷰 2023.03.28

[Deep Learning] RNN의 구조

sequential data를 처리하기 위한 모델인 RNN(Recurrent Neural Network)에 대해 알아보자. Sequential Model Naive sequence model Autoregressive model Markov model Latent autoregressive model RNN (Recurrent Neural Network) The problem of long-term dependencies RNN 구조에서는 먼 과거에 대한 정보가 잘 고려되지 않는 문제점이 있다. LSTM (Long Short Term Memory) RNN 구조의 한계인 long-term dependency 문제를 해결하기 위해 등장했다. previous cell state cell 밖으로 나가지 않는 정..

AI/Deep Learning 2023.03.24