본문 바로가기
728x90

Drawing (AI)113

[논문 리뷰] Attention is all you need (2) Attention is all you need NIPS 2017 Google Decoder 이전 글에서 다뤘던 Encoder의 결과 텐서가 Decoder에서 이된다고 보면 된다. Decoder는 Encoder와 구조적으로 굉장히 유사하다. 코드로 차이를 살펴보면 아래와 같이 빨간 표시가된 부분에만 차이가 있다. self attention layer가 decoder에서는 두번 반복되고 두번째 layer는 input에서 차이가 있음을 볼 수 있다. 또한 마스크로 encoder에서는 source mask를 이용한 반면 decoder에서는 target mask를 이용한다. Masking 인코더에서는 아래와 같이 padding에 대해서 masking을 진행하기 때문 padding masking이라고도 불리지만 디.. 2023. 7. 25.
CNN for NLP NLP를 위한 합성곱 신경망 CNN은 주로 vision 분야에서 사용되는 알고리즘이지만 이를 응용해서 자연어 처리에 사용하기 위한 방법들이 연구되고 있다. 합성곱 신경망이 어떤식으로 텍스트 처리에서 쓰일 수 있는지 알아보자. 우선 합성곱 신경망에 대해서 알아보자. 위는 합성곱 신경망의 기본적인 구조이다. CONV는 합성곱 연산이고 그 결과가 활성화 함수 ReLU를 통과한다. 이때 CONV와 ReLU를 합쳐서 합성곱층이라고 한다. 다음으로 POOL은 풀링 연산을 하는 부분이고 풀링층이라고 한다. 합성곱 신경망이 조명받은 이유는 아래에서 볼 수 있다. 위와 같이 정자로 쓴 Y가 있고 조금 흘려쓴 Y가 있을때 이를 1차원 텐서로 변환하여 일반적으로 분석하려하면 문제가 발생한다. 위 그림을 보면 느낌이 오겠지만.. 2023. 7. 22.
[논문 리뷰] Attention is all you need(1) Attention is all you need NIPS 2017 Google 기존에 SOTA를 달성하였던 Seq2Seq보다 뛰어난 성능으로 인공지능 학계를 뒤집은 Transformer가 데뷔한 논문이다. 현재는 vision분야에서도 ViT(Vision Transformer)라는 이름으로 이용되고 있다. 가장 최근에 얀르쿤이 공동저자로 참여하여 Meta에서 발표한 논문에서도 ViT를 이용하였다. Background Seq2Seq Sequence-to-Sequence는 아래와 같이인코더와 디코더라는 두 개의 모듈로 구성된다. 인코더는 입력 문장의 모든 단어들을 순차적으로 입력받은 뒤에 마지막에 이 모든 단어 정보들을 압축해서 하나의 벡터로 만드는데, 이를 컨텍스트 벡터(context vector)라고 한다... 2023. 7. 19.
[논문 리뷰] AutoRec: Autoencoders Meet Collaborative Filtering AutoRec: Autoencoders Meet Collaborative Filtering Suvash Sedhain, Aditya Krishna Menon, Scott Sanner, Lexing Xie Abstract 이 논문에서는 collaborative filtering(CF)을 위한 새로운 autoencoder 프레임워크인 AutoRec를 제안한다. 실증적으로, AutoRec를 이용하여 적절하게 설계된 모델은 Movielens와 Netflix 데이터셋을 이용한 CF 기술에서 SOTA를 달성했다. Background Collaborative Filtering 협업 필터링(Collaborative Filtering)은 사용자와 아이템 간의 상호 관계(interaction)를 기반으로 사용자들에게 적절.. 2023. 7. 10.
딥러닝 직접 구현하기 - (신경망 학습) 데이터 접근 방법 아래와 같은 손글씨 5에 대한 데이터를 보고 5라고 판단하기 위한 로직을 만들어보려고 하면 크게 두 가지의 접근법이 있다. (1) 사람이 생각한 특징(SIFT, SURF, HOG 등) -> Machine Learning(SVM, KNN등) 이미지에서 특징(feature)을 추출. SIFG, SURF, HOG 등의 특징 사용. 벡터로 기술. Machine Learning: 데이터로부터 규칙을 찾아내는 역할 (2) 신경망(Deep Learning): 이미지를 그대로 학습 손실함수(loss function) 신경망은 어떠한 지표를 기준으로 최적의 매개변수 값을 탐색하기 위해 손실함수를 이용한다. Sum of squares for error(SSE) 오차 제곱합은 아래와 같이 계산된다. 이는 .. 2023. 7. 6.
딥러닝 직접 구현하기 - (신경망) 손글씨 숫자 인식 MNIST 데이터셋을 이용하여 손글씨 숫자를 분류하는 실습을 진행해 보았다. 이때의 추론 과정은 신경망의 순전파를 통해 진행된다. MNIST 데이터 셋은 아래와 같이 28 x 28 사이즈의 회색조 이미지이다. 훈련 이미지 60,000장, 테스트 이미지 10,000장이 존재한다. 이러한 데이터셋을 구분해내는 능력이 현재 학계에서 평가하는 지표로 많이 쓰이곤 한다. 아래와 같은 코드를 이용해 MNIST 데이터셋을 내려받아 이미지를 넘파이 배열로 전환할 수 있다. import sys, os sys.path.append(os.pardir) # 부모 디렉터리의 파일을 가져올 수 있도록 설정 from dataset.mnist import load_mnist # 처음 한 번은 몇 분 정도 걸립니다... 2023. 7. 1.
딥러닝 직접 구현하기 - (퍼셉트론) Intro 이 공부 시리즈는 다양한 딥러닝 기술들을 직접 구현해보는 능력을 키우기 위한 공부이다. 밑바닥부터 시작하는 딥러닝이라는 책과 다양한 웹사이트를 참고하여 해보려한다. 이미 아는 내용도 있지만 직접 구현해본 내용은 많지 않아서 책을 한번 따라가 보려고 한다. 따라서 구현해보는 것이 의미가 있어 보이는 내용들을 위주로 블로그에 정리해 보고자 한다. 신경망 신경망에서의 행렬곱은 아래와 같이 연산된다. 이러한 행렬곱에 해당하는 간단한 예시를 코드로 표현해보면 numpy를 활용하여 아래와 같이된다. import numpy as np X = np.array([1,2]) print(X.shape) W = np.array([[1,3,5], [2,4,6]]) print(W) print(W.shape) Y = n.. 2023. 6. 21.
Udemy - 머신러닝의 모든 것 (Naive Bayes) Bayes theorem (베이즈 정리) 베이즈 정리는 데이터라는 조건이 주어졌을 때의 조건부확률을 구하는 공식이다. 베이즈 정리를 쓰면 데이터가 주어지기 전의 사전확률값이 데이터가 주어지면서 어떻게 변하는지 계산할 수 있다. 따라서 데이터가 주어지기 전에 이미 어느 정도 확률값을 예측하고 있을 때 이를 새로 수집한 데이터와 합쳐서 최종 결과에 반영할 수 있다. 데이터의 개수가 부족한 경우 아주 유용하다. 데이터를 매일 추가적으로 얻는 상황에서도 매일 전체 데이터를 대상으로 새로 분석작업을 할 필요없이 어제 분석결과에 오늘 들어온 데이터를 합쳐서 업데이트만 하면 되므로 유용하게 활용할 수 있다. 베이즈 정리의 식은 아래와 같이 쓸 수 있다. 𝑃(𝐴|𝐵): 사후확률(posterior). 사건 B가 발생한 .. 2023. 6. 20.
Fake news detection Introduction 간단한 프로젝트를 진행하기 위해 사회적으로 문제가 되는 이슈를 해결해보고자 한다. 가짜뉴스는 최근 몇년간 더욱 그 문제가 부각되고있다. 왜냐하면 디지털 시대에 우리는 정보에 쉽게 접근할 수 있지만, 그만큼 거짓 정보와 혼란스러운 소식에 노출되기 때문이다. 특히 가짜 뉴스는 사회적 분열과 혼란을 일으키며, 개인과 사회의 안녕을 위협한다. 이러한 상황에서 진실을 매도하고 극심하게 확산되는 가짜 뉴스를 탐지하는 혁신적인 솔루션을 필요로 한다고 생각했다. Data Analysis 아래의 데이터들을 조합하여 새로운 데이터셋을 만들어서 하나의 데이터 셋의 스타일에 overfitting되는 것을 방지하고자 하였다. import pandas as pd SEED = 10 # Load the WEL.. 2023. 6. 15.
728x90