최신 글 (20)
-
BART 논문 리뷰 : Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension
BART는 Facebook에서 2019년에 발표한 논문입니다. 문장 이해와 문장 생성에 높은 성능을 가지고 있는 모델입니다. SKT에서 40GB 이상의 한국어 텍스트에 대해서 학습한 한국어 모델 KoBART를 배포해 한국어 텍스트에 대해서도 좋은 성능을 가지고 있습니다. 뉴스요약, 가사 생성 등 다양한 적용이 가능한데요! 이번 포스트에서 BART 모델의 구조와 사전학습에 대해서 소개하겠습니다. Abstract BART는 임의로 noise를 주어 텍스트를 손상 시킨 후 원래 텍스트를 재구성하기 위한 모델을 학습하는(denoising autoencoder) 사전학습 sequence-to-sequence model 입니다. Transformer 기반의 뉴럴 기계번역 구조를 사용합니다. 이는 bidirectio..
2022.08.26 22:38 -
Simple RNN, LSTM, GRU 비교 및 코드
텐서플로 케라스를 이용한 딥러닝(박유성)을 기반으로 RNN의 적용과 응용을 정리했습니다.
2022.08.20 20:25 -
RoBERTa 논문 리뷰 : A Robustly Optimized BERT Pretraining Approach
Facebook에서 2019년에 발표한 논문인 RoBERTa에 대해서 소개하겠습니다. RoBERT는 BERT를 개선시킨 모델입니다. RoBERT는 높은 성능을 가져 다양하게 사용되고 있습니다. BERT의 어떤 요소들을 개선해 성능향상을 이루어냈는지 지금부터 소개하겠습니다. Abstract 사전학습된 언어모델은 성능의 개선을 이루어냈지만 학습의 계산이 무겁고 하이퍼파라미터의 값에 따라 결과에 큰 영향이 있습니다. 이전 논문(Devlin et al., 2019)에서는 BERT에 대해서 재현 연구(Replication study)를 통해 하이퍼파라미터와 데이터 사이즈가 미치는 영향에 대해서 알아봤습니다. BERT가 완벽하지 않고 BERT를 넘어서는 모델을 만들 수 있음을 확인했습니다. 본 논문에는 RoBERT..
2022.07.30 23:34 -
Image Captioning 논문 리뷰 : Show and tell - A Neural Image Caption Generator
NLP와 CV를 연결하는 Image Captioning의 모델을 소개하겠습니다. Image Captioning은 이미지의 내용을 설명하는 문장을 생성하는 것으로 CV와 NLP를 연결하는 인공지능 분야입니다. show and tell은 2015년 Google은 발표한 논문입니다. 이 논문에서는 CV와 머신번역을 결합한 deep recurrent 구조를 사용합니다. 이 모델은 training image가 주어졌을 때, target description의 likelihood를 최대화하는 방향으로 학습합니다. Introduction 기존의 CV에서 주된 목표였던 이미지 classification이나 object recognition문제보다 어려운 문제를 가지고 있습니다. 이미지에 들어있는 물체는 인식하는 것 뿐..
2022.04.23 14:47 -
한국어 문장 관계 분류 모델 : RoBERTa+KoELECTRA+Backtrans
DACON 한국어 문장 관계 분류 경진대회 Premise 문장을 참고해 Hypothesis 문장이 참인지(Entailment), 거짓인지(Contradiction), 혹은 참/거짓 여부를 알 수 없는 문장인지(Neutral)를 판별하는 모델을 만드는 것이 목적입니다. RoBERTa와 KoELECTRA 모델을 사용했고 최종 5위를 할 수 있었습니다. 한국어 문장에 대한 다양한 전처리를 시도했고, 앙상블을 통해서 성능을 높일 수 있었습니다. 자세한 모델링 과정은 다음 데이콘에서 작성한 코드공유에서 확인할 수 있습니다! https://dacon.io/competitions/official/235875/codeshare/4596?page=3&dtype=recent [Private 6th/0.89555]RoBER..
2022.03.18 01:05 -
Image Captioning
CV와 NLP를 연결하는 image captioning에 대해서 공부해보자! image captioning 은 이미지를 언어로 설명하는 작업이다. 공부하면서 참고할 자료들을 모아두었다. https://paperswithcode.com/task/image-captioning Papers with Code - Image Captioning ( Image credit: [Reflective Decoding Network for Image Captioning, ICCV'19](https://openaccess.thecvf.com/content_ICCV_2019/papers/Ke_Reflective_Decoding_Network_for_Image_Captioning_ICCV_2019_paper.pdf) ) pap..
2022.03.08 09:38 -
Backpropagation(역전파) : 손실함수 미분 과정
텐서플로 케라스를 이용한 딥러닝(박유성)을 기반으로 역전파를 소개하고. 손실함수의 미분과정을 정리했습니다.
2022.02.20 00:22 -
BERT 논문 리뷰 : Pre-training of Deep Bidirectional Transformers for Language Unders
오늘은 다양한 분야에서 활용되고 있는 BERT를 제시한 논문 Pre-training of Deep Bidirectional Transformers for Language Understanding을 리뷰하겠습니다. 2019년 Google은 Transformer의 인코더를 사용하는 새로운 language representation model인 BERT(Bidirectional Representations from Transformers)를 소개합니다. 이전의 언어 모델과 다르게 BERT는 모든 레이어에서 왼쪽과 오른쪽 문맥 모두를 고려함으로써 라벨링 되지 않은 텍스트에서 pre-train deep bidirectional representaions를 하도록 만들어졌습니다. 질의응답, 자연어추론 등의 다양한 ..
2022.02.11 16:31 -
딥러닝 데이터와 세 가지 기본 신경망
텐서플로 케라스를 이용한 딥러닝(박유성)을 기반으로 딥러닝의 데이터와 세 가지 기본 신경망 MLP, CNN, RNN을 정리했습니다. Reference 텐서플로 케라스를 이용한 딥러닝(박유성) cs 230 Recurrent Neural Networks cheatsheet(https://stanford.edu/~shervine/teaching/cs-230/cheatsheet-recurrent-neural-networks) 사진 Utilization of Neural Network for Disease Forecasting - Scientific Figure on ResearchGate. Available from: https://www.researchgate.net/figure/Architecture-of-..
2022.02.04 08:03 -
Transformer 논문 리뷰 : Attention Is All You Need
최근 핫한 주제인 Transformer을 제시한 논문 Attention Is All You Need에 대해서 리뷰해보겠습니다! 2017년 Goolge은 논문 Attention Is All You Need을 발표했습니다. 기존의 지배적인 sequence transduction 모델은 인코더와 디코더를 attention을 통해 연결한 RNN 또는 CNN 구조였습니다. 본 논문에서는 RNN과 CNN을 사용하지 않고 오직 attention에 기반한 simple network 아키텍쳐를 제시합니다. 두가지 머신번역 태스크에서 우월한 성능을 보여주고, 병렬화(parallelizable)을 통해 학습에 필요한 시간이 줄어들었음을 보여줍니다. Introduction RNN, LSTM, Gated RNN은 sequenc..
2022.02.02 13:17 -
딥러닝 기본 개념 정리
텐서플로 케라스를 이용한 딥러닝(박유성)을 기반으로 딥러닝의 기본 개념을 정리했습니다. 통계적 관점에서 딥러닝에 대해서 생각해 볼 수 있었습니다. Reference 텐서플로 케라스를 이용한 딥러닝(박유성)
2022.01.29 15:04 -
Fasttext 논문 리뷰 : Enriching Word Vectors with Subword Information
오늘은 Word2Vec 모델을 기반으로 하는 논문 Fasttext에 대해서 리뷰해보겠습니다. 2017년 Facebook은 논문 Enriching Word Vectors with Subword Informationd을 발표했습니다. 기존의 단어 임베딩 모델이 각 단어에 별개의 벡터를 부여하면서 단어의 형태론 무시한다는 한계가 있었습니다. 특히 rare words가 많은 large vocabularies에 문제가 되었습니다. 따라서 본 논문에서 skipgram 모델에 기반한 새로운 접근방법 Fasttext를 제시합니다. Fasttext에서 각 단어는 n-gram의 구성으로 표현됩니다. 이 모델은 이름에서 알 수 있듯이 학습 속도가 빠르고, 학습데이터에 등장하지 않은 단어에 대해서도 단어벡터이 표현가능합니다...
2022.01.22 17:52 -
잡케어 추천 알고리즘 프로젝트 기록, 데이콘 공모전 후기
잡케어 추천 알고리즘 경진대회에 참가했다. 고용정보원에서 주체하는 경진대회로 잡케어 서비스에 적용 가능한 추천 알고리즘 개발하는 것이 목적이다. 잡케어는 일자리를 탐색하는 구직자에게 구직자의 이력서를 인공지능 기술로 직무역량을 자동 분석하여 훈련, 자격, 일자리 상담에 활용할 수 있도록 지원하는 시스템이다. 한달동안 개인별 맞춤형 컨텐츠 추천 모델을 만들었다! 간략하게 공모전 과정에서 어떤 생각을 하고 어떤 시도를 해봤는지 남기려고 한다. 2022년 1월 1주차 팀을 구성하고 데이터와 변수에 대해서 파악했다. -34개의 특성변수가 있고 -목적 변수는 컨텐츠 사용여부로 분류문제이다. 특성변수는 (1) 회원 속성 대한 변수, (2) 컨텐츠 속성에 대한 변수, (3) 회원과 컨테츠 속성의 매칭여부로 나눌 수 ..
2022.01.18 01:58 -
GloVe 논문 리뷰 : Global Vectors forWord Representation
오늘은 Word2Vec과 가장 많이 비교되는 모델인 GloVe를 발표한 논문 Global Vectors forWord Representation을 리뷰하겠습니다. 이전에 포스팅했던 Word2Vec의 경우 window 단위의 학습으로 단어를 표현하거나 유추하는데에는 좋은 성능을 보이지만 전체적인 통계 정보를 잘 나타내지 못한다는 한계가 존재합니다. 이에, GloVe가 word2vec의 어떤 점을 어떻게 개선시키려 했는지 알아보고자 본 논문을 선택하였습니다. 2014년 Stanford는 기존의 자연어처리 모델의 문제점을 해결하기 위해 GloVe를 제시했습니다. Introduction Semantic vector 모델을 통해서 단어의 의미를 표현하는 벡터를 만들 수 있습니다. 대부분의 벡터 방법론은 단어간의 ..
2022.01.16 01:25 -
콘텐츠 기반 필터링(Content-based filtering)
무엇이 좋은 추천인가? 어떻게 하면 추천을 잘할 수 있을까? 추천시스템을 학습하면서 이러한 질문에 대해 계속해서 고민하고자 합니다! 도매인에 따라 같은 방법론을 적용하기 힘들어 추천방법이 다르고 추천방법에 따라 완전히 다른 결과가 나올 수 있습니다. 앞으로 다양한 추천방법에 대해서 포스팅하겠습니다. 오늘은 추천시스템의 개론과 대표적인 추천시스템 방법론을 소개하겠습니다. 추천시스템에는 비개인화 추천과 개인화 추천이 있습니다. 비개인화 추천은 전체 데이터에 대해서 추천하는 방식입니다. 개인화추천은 개인평점, 개인이 시청한 항목 등 개개인의 데이터에 대해서 추천하는 방식입니다. (1) 비개인화 추천 - 랭킹 / 평점 / 등급 - 유사 콘텐츠 - 연관 분석 (2)개인화 추천 - 개인 평점 - 개인이 시청한 항목..
2022.01.14 00:24 -
Word2Vec을 활용한 추천시스템
이전 포스트에서 Word2Vec 논문을 리뷰했습니다. 오늘은 Word2Vec을 활용한 추천시스템에 대해서 소개하도록하겠습니다. Word2Vec은 비슷한 의미의 단어를 분류하고 단어끼리 계산하여 적절한 의미를 도출합니다. 자연어를 다루는 문제에서 단어의 분산표현이라는 방법으로 벡터화할 수 있습니다. 이 분산표현은 다양한 자연어처리 작업에 이용할 수 있습니다.(전이학습) 그래서 텍스트 분류, 문서 클러스터링, 기계번역 등 NLP분야에서 다양하게 적용되고 있습니다. 또한 자연어 뿐만 아니라 음성, 이미지, 동영상에도 응용되고 있습니다. Word2Vec을 활용한 추천시스템 1. 단어를 벡터화 the fat cat ___ on the mat Word2Vec(CBOW)는 "the fat cat sat on the ..
2022.01.12 21:35 -
Skip-gram 코드 구현 : Word2Vec의 Skip-gram 모델 구현
저번 포스트에서는 논문 Efficient Estimation Of Word Representations In Vector Space를 소개하고 Word2Vec의 아키테쳐에 대해 설명했습니다. 이번에는 Word2Vec 중 Skip-gram 모델을 구현해보겠습니다. Skip-gram은 Word2vec에서 제시한 모델 중 하나입니다. CBOW와 반대로 중심단어로 부터 주변단어를 예측합니다. 그림에서 볼 수 있듯이 Skip-gram의 모델의 imput layer는 하나이고 output layers는 주변단어의 수만큼 존재합니다. 따라서 각 output layer에서는 softmax with loss layer 등을 이용해 손실을 구하고 이 손실을 모두 더한 값이 최종 손실이 됩니다. 주변단어 수 만큼 손실을 계..
2022.01.10 00:01 -
Github 기본 사용방법
유튜브 메모밍 채널을 보고 차근차근 따라갔다! 아직 익숙하지 않아서 간단하게 정리하고자 한다. " Push(git에 올리기), Pull(git에서 가져오기) : Push 전에 Pull이 있다. " (처음 생성할 때는 상관없지만 작업할 때 가져오고 수정한 다음에 올려야한다. 그냥 올리면 이전에 git에서 작업한게 날라가니까 기억하기!) 1. repository 만들기 new repository 클릭 repository 이름 입력하고 create repository : 이렇게 해서 생기는 주소 복사하기 = repository adress 2. root 폴더 만들기 (web상의 git과 연결될 Local Folder) 새폴더 생성 Git Bash here $ git init $ git remote add or..
2022.01.09 00:09 -
CBOW 코드 구현 : Word2Vec의 CBOW 모델 구현
저번 포스트에서는 논문 Efficient Estimation Of Word Representations In Vector Space를 소개하고 Word2Vec의 아키테쳐에 대해 설명했습니다. 이번에는 Word2Vec 중 CBOW 모델을 구현해보겠습니다. Word2Vec은 단어출현 패턴을 학습해 단어의 분산표현을 도출합니다. 다중 클래스 분류이기 때문에 소프트맥스와 교차 엔트로피 오차만 사용하면 됩니다. 소프트맥스 함수를 이용해 점수를 확률로 변환하고, 그 확률과 정답레이블로부터 교차엔트로피 오차로 구한 손실을 사용해 학습합니다. CBOW는 Word2Vec에서 제시한 두개의 모델 중 하나입니다. CBOW는 주변단어로부터 중심단어를 예측합니다. 주변단어의 개수만큼 input layers가 있고 hidden ..
2022.01.07 00:41 -
Python_변수가 2개인 막대그래프
두개의 특성변수를 하나의 막대그래프로 나타내는 방법입니다. 실습을 위해 데이터 셋을 임의로 만들었습니다. import pandas as pd import matplotlib as plt df1 = pd.read_csv('C:/Users/ellyj/Desktop/data/example2018.csv',encoding='UTF-8') df1.head() df2 = pd.read_csv('C:/Users/ellyj/Desktop/data/example2019.csv',encoding='UTF-8') df2.head() 데이터를 불러옵니다. id가 같고 변수가 각각 v1, v2인 데이터 입니다. merge() 함수를 통해 df1과 df2를 id을 기준으로 열을 추가해 합칩니다. df3 = pd.merge(df1..
2022.01.05 14:08