시작하기 55

[논문 리딩] Efficient Estimation of Words Representations in Vector Space - Word2Vec(CBOW, Skip-gram)

들어가기에 앞서 논문을 참고하며 작성한 글로, 잘못 이해한 부분이 있을 수 있습니다. 참고 바랍니다. 논문의 저자 Tomas Mikolov, Kai Chen, Greg Corrado, Jeffrey Dean, (2013) 논문 요약 Continuous 하고, distributed 한 word의 representation을 보다 high quailty로 제시하고자 두 개의 novel architecture를 소개한다. 단어를 표현하는 continuous representation 이전 기법들에 비해 computational cost를 줄이고, 성능을 개선시켰다. CBOW, Skip-Gram을 소개한다. 이전의 NNLM에서 가장 많은 computational complexity를 발생시키는 구간은 Hidde..

NLP study 2023.03.14

Recurrent Neural Network에서의 Backpropagation 살펴보기(From scratch)

RNN 네트워크의 구조(간단 버전, 시그모이드 생략) Recurrent 하게 나타낼 수 있다. 아주 간단하게(LSTM, GRU 가 아닌) 표현하면, Hidden State를 저장하는 weight matrix W_h 가 Sequential input X_t에 recurrent 하게 적용되며, 해당 t time별로 Hidden State H_t가 기록된다. 아래와 같이 간단히 나타낼 수 있다. RNN 네트워크 함수로의 표현 H를 Hidden State로 표현하면 위와 같이 간단하게 표현할 수 있다. 마지막 Hidden state H_n의 경우, 그리고 RNN 이 Many-to-one classification에 사용된다면 H_n은 시그모이드 함수를 거친 뒤 predicted output Y_hat으로 계산되..

AI Basic 2023.03.08

Gradient Descent 수식적 계산(Linear Regression, Logistic Regression)

Gradient Descent란 경사 하강법을 의미하며, 딥러닝에서 regression/classification을 수행할 때 target과 예측된 값 사이의 loss function을 최소화하기 위해서 사용되는 개념으로, 함수의 기울기가 0이되는 지점을 구하는 데 사용되는 방법이다(변수들에 대한 편미분을 한다) 기울기가 0이 되는 지점이 무조건 최소 지점이냐? 라는 질문에 대답하는 것은 조금 다른 문제이지만(함수의 초기값 설정 및 추가 방법이 필요하기도 함), 궁극적으로 loss function을 최소화하여 성능을 올리는 데에 핵심적인 방법이다. 수치해석처럼 Gradient Descent 계산하기 미분의 원리를 이용해서 h를 아주 작은 수로 설정해둔 뒤, 반복한다 until 미분지점이 0이 되는 곳까지..

AI Basic 2023.03.07

파이썬 기초 - 파이썬을 파이썬답게

출처: https://school.programmers.co.kr/learn/courses/4008/lessons/13318 프로그래머스 강좌를 바탕으로 파이썬 코드를 작성할 때 유용하게 사용될 수 있는 함수들을 정리하였습니다. map() 함수 map(func, iter): 반복가능한 객체에 대해 given function을 적용하여 map object로 반환한다. func에는 int, str, list 등이 가능하며, custom 함수도 적용이 가능하다. iterable object에 반복적인 함수 적용이 필요할 때 사용하는 듯 하다. 리턴형은 map 객체이기 때문에, list 혹은 tuple로 변환시켜주어야 한다.loop 함수를 쓰는 것보다 빠르게 함수를 처리할 수 있으며, 메모리 사용량을 줄일 수 ..

AI Basic/Python 2023.02.26

[Pytorch] pad_sequence와 pack_padded_sequence 그리고 collate_fn

1. pad_sequence, pack_padded_sequence 란 무엇인가? 딥러닝 모델 학습에는 batch_size 설정이 필수적이다. GPU를 이용하여 computation을 parallelize할 수 있기 때문이다. 자연어처리에서는 input data의 길이가 variable하므로, batch를 설정할 때, 사진과 같이, 5개의 text를 하나의 batch 라고 할 때, 문장의 길이가 다르기 때문에 빈 공간이 생기게 된다(일반적으로 padding 처리를 한다.) 문장의 길이가 다른 것을 same input feature로 만들기 위해서 padding처리를 한 뒤 RNN모델과 같은 DL 모델에 input으로 들어가게 되는데, 이 때 이러한 input batch는 다음과 같은 문제점을 갖는다. V..

NLP study 2023.02.22

REST API란?

API의 개념 API란 Application Programming Interface의 약자로, protocol, routines, tools for building SW application의 집합이다. 서로 다른 소프트웨어 component끼리의 interaction, data exchange and service를 가능하게 한다. 다시 말해서, 서로 다른 디바이스, 어플리케이션끼리 통합하거나 데이터를 주고받을 수 있게 하는 데 사용되는 interface이다. "APIs play a critical role in modern software development, enabling developers to build powerful applications quickly and efficiently by ..

AWS/AWS 기초 2023.02.20

두려워서 자꾸 도망간다.

타인과 자기자신을 비교하는 것은 현대 경쟁 사회, 능력주의 사회를 살아가는 현대인들의 피할 수 없는 행위가 되었다. 본인의 의지가 아니어도 다양한 경로를 통해 간접적으로라도 경험하게 된다. 항상 밝고 즐거운, 최선의 모습만이 드러나는 인스타그램을 싫어했다. 어떠한 가치관을 주장해야만 할 것 같고, 컨셉을 잡고 꾸며야 할 것 같았으며, 그게 아니더라도 자꾸만 올라오는 친구들의 스토리가 계속 궁금해서 들여다보며 무의식적으로 나 자신과 비교하게 되었다. 비교하는 게 싫어질 때면 재미있는 짤이나 영상을 보면서 나를 비교하는 행위를 회피했었다. 끊어내지 못하고. 생각해보면 누군가의 삶을 들여다보는 행위는 나 자신의 치부를 드러내는 일이 아니기 때문에 부끄러운 일이 전혀 아니다. 나를 대중에 드러내는 일이 아니기 ..