# encoder
머신러닝 3일차 chapter3 (~15)
Encoder and Scaler label encoder 대상이 되는 문자로 된 데이터를 숫자-카테고리컬한 데이터로 변경 A컬럼이 알파벳에서 숫자로 바뀐것 확인 가능 fit과 transform 한번에 하는 것도 가능 역으로 다시 알파벳으로 바꾸는 inverse  주요 메서드
1. setMaxAge setMaxAge(시간(초))는 Cookie 생성 시 해당 쿠키 객체의 유지 기간을 정해주는 메서드 입니다. 소괄호 안에는 초단위의 시간이 들어가기 때문에 다음과 같이 시간을 정해 줄 수 있습니다. 2. URLEncoder, encode Cookie에는 아스키 문자가 사용 가능합니다. 이 때 사용불가능 문자를 사용하기 위해서는 URLEncoder</sp

[논문리뷰] Attention is all you need
🖊️Abstract 🖊️ > The dominant sequence transduction models are based on complex recurrent or convolutional neural networks that include an encoder and a decoder. The best performing models also connect the encoder and decoder through an attention mechanism. We propose a new simple network architecture, the Transformer, based solely on attention mechanisms, dispensing with recurrence and convolutions entirely. Experiments on two machine translation tasks show these models to be superior
Complex circuit using Gates
Adder Half Adder 2개의 bit를 입력으로 addition 수행. 이전 자리에서 넘어오는 carry에 대한 고려를 하지 않아 half adder라 불림. Full Adder 2개의 bit와 이전 자리에서 넘어오는 carry를 고려한 addition 수행 Ripple-carry Adder f

Transformer
boost course 자연어 처리의 모든 것 강의를 보고 복습차원에서 정리해 보았습니다. 앞의 chapter에서 설명드린 RNN의 구조에 대해서 간단하게 살펴보고 가겠습니다. RNN은 현 시점의 input과 이전 시점의 hidden state를 입력으로 받는다고 하였습니다. 위의 그림을 보면 time step 1에서는 "I"와 h(0)가 input으로 사용이 되었고 그 결과 h(1)이라는 output을 출력하였습니다. 여기서 만들어진 h(1)의 경우 "I"라는 단어에 대한 정보를 포함한다고 말씀드렸습니다. 이러한 방식으로 time step 2에서는 이전의 hidden state인 h(1)과 "go"라는 단어를 입력으로 사용하고 h(2)를 만들었습니다. 그렇다면 h(2)에는 "I", "go" 두가지 단어에

Sequence-to-sequence with attention
boost course의 자연어 처리의 모든 것 강의를 보고 복습차원에서 작성하였습니다. 앞선 내용들 까지는 RNN의 구조와 문제점, lstm, gru에 대해서 살펴보았습니다. 이번에서는 이러한 모델들을 가지고 Sequence-to-sequence model을 만들고 이 모델의 구조인 encoder-decoder 구조와 attention에 대해서 살펴보겠습니다. Sequence-to-sequence model Sequence-to-sequence model은 many-to-many의 type에 해당합니다. 입력값들을 모두 읽고 출력값들을 문장단위로 생성하게 됩니다. 
[토치의 호흡] 11 About Transformer PART 05 "Classification_by_DIY_TRANSFORMER"
썸네일 이미지 출처 INTRO : 06 NLP Basic Classification with GRU에서 진행했던 내용을 그대로 진행한다. 단, Model 부분을 Encoder와 TransformerEncoderModel로 교체할 뿐이다. 오늘은 그래서 글이 길지 않을 것이다. 기억을 되살려보자 <a href="https://velog.io/@heiswicked/토치의-호흡-05-NLP-Basic-Classification-

[NLP] Transformer와 Self-Attention
1. Attention is All You Need RNN 계열 모델의 단점 한정된 차원의 벡터에 source sequence(input sequence)의 모든 정보를 담기 때문에 정보를 모두 기억하지 못하고 유실할 수도 있다. Long-term dependency 문제 gradient vanishing 현상으로 인해 학습이 제대로 이루어지지 않는다. 순차적으로 학습하기 때문에 학습 속도가 느리다. (병렬 연산이 불가능하다.) Attention is All You Need 해당 논문은 Transformer라는 새로운 모델을 제시하였다. seq2seq 모델의 Encoder∙Decoder 구조를 사용하고 있으며 내부의 RNN 모듈을 Attention 모듈로 모두 대체하였다. long-term dependency 문제를 해결하였다. 병렬 연산이 가능해져 모델의 학습 속도를 올린다. Transformer 이후로 나오는 pre-tr

[NLP] Encoder∙Decoder 구조와 Seq2Seq, Seq2Seq with Attention
1. Seq2Seq sequence-to-sequence 모델. sequence를 입력받고 sequence를 출력하는 모델이다. (입력 sequence를 source sequence, 정답 sequence를 target sequence라고 한다.) 대표적으로 다음과 같은 분야들이 존재한다. 기계 번역(Machine Translation): 번역하려는 문장을 입력받아 번역된 문장을 출력한다. 챗봇: 질문을 입력받아 답변을 출력한다. 내용 요약(Text Summarization), Speech to Text, Image Captioning, 말의 어투를 변경하는 등 입력된 sequence를 다른 도메인의 sequence로 변경되는 곳에 많이 쓰인다. 아래서 설명하는 내용은 모두 기계 번역에 초점을 맞추어 내용을 작성하였다. 구조 seq2seq를 크게 보면 many-to-many 형태라고 볼 수 있다. 입력된 sequence를 끝까지 읽고 정보를 압축한

[DL] Transformer
해당 포스팅은 을 참고하여 정리했습니다. 항상 원문이 더 뛰어납니다.* Attention 모델이 장기의존성 문제를 해결했지만, 아직 남은 문제가 있습니다. 병렬처리 문제입니다. attention 모델도 결국 time-step마다 input되는 값을 처리하는 모델이기 때문에 데이터를 순차적으로 처리할 수 밖에 없습니다. 이번에 정리할 transformer는 이러한 문제를 해결하기 위해 등장한 모델입니다. transformer 모델은 모든 토큰을 동시에 입력받아 병렬 처리하기 때문에 GPU 연산에 최적화되어 있습니다. 1. Transformer의 구조 
Transformer_Encoder
한빛미디어 출판 "구글 BERT의 정석 " 책을 참고해서 작성하는 개인 공부 자료입니다. 혹시 내용에 저작권 등 문제가 있다면 알려주시면 감사하겠습니다. ! 내용에 신뢰도가 떨어지거나 상당부분 요약 되어 있을 가능성이 있음 ! ! 제가 수식 보는 것을 싫어하기 때문에 꼭 필요하지 않다면 생략되있을 가능성이 높습니다 ! 이전 포스팅까지 Self-Attention까지 다뤄보았고, 이제 Transformer를 위한 기반지식을 갖추게 되었다. 다시 상기해보면 쿼리 행렬( Q )과 키 행렬( K )간의 내적을 계산하고 유사도 값을 산출한다. 유사도 값을 행렬의 차원의 제곱근으로 나누어 스코어 행렬을 구한다. 스코어 행렬에 소프트맥스 함수를 적용해 정규화한다. 마지막으로 스코어 행렬에 밸류 행렬( V )를 곱해 어텐션 행렬( Z )를 산출한다.  아래의 인터페이스 중 하나를 구현 Encoder.Text for text messages Encoder.Binary for binary messages 2) @ServeEndpont의 옵션 파라미터에 인코더의 구현의 이름을 추가 3) RemoteEndpoint.Basic or RemoteEndpoint.Async interfaces 의 sendObject(Object data)

Transformer
위 블로그 내용은 아래의 유튜브 및 블로그 글을 참고했습니다. [https://nlpinkorean.github.io/illustrated-transformer/](https://nlpinkorean.github.io/illustrated-transformer/ ) @adityathiruvengadam/transformer-architecture-attention-is-all-you-need https://sonsnotation.blogspot.com/2020/11/10-3-transformer-model.html Transformer Algo

BERT - Pre-training of Deep Bidirectional Transformers for Language Understanding
BERT는 대표적인 NLU 태스크에 적합한 pre-trained 모델이다. bert는 양방향 인코더를 활용해 레이블이 없는 자연어를 학습시켜 단순하게 마지막에 가까운 레이어만 fine tuning하면 당시 QA 등의 다양한 SOTA를 달성할 수 있었다. BERT는 현재까지도 강한 영향력을 가지는 모델이므로 하나씩 살펴보도록 하자. 1. Intro 버트 이전의 상황을 요약해보자면, 사전학습된 language representation을 활용하여 다운스트림 태스크를 수행하는 방법론에는 "feature-based"와 "Fine-tuning", 두가지 접근법이 있었다. Feature based한 접근법을 택한 모델 중 유명한 것이 ELMo가 될 것이다. 모델의 입력으로 사용하는 임베딩 벡터를 좀 더 정교하게 만들기 문맥 정보를 활용한 모델이기 때문이다. 반대로 Fine tuning한 접근법을 사용하는 모델로는 GPT가 있을 것이다. 범용적으로 사용할 수 있는 대형 모델을 만들고, 여

[Basic NLP] Sequence-to-Sequence with Attention
Intro 최근 몇 년간 Transformer 모델의 등장 이후 BERT, GPT, RoBERTa, XLNet, ELECTRA, BART 등과 같은 언어 모델(Language Model)이 매해 새로운 SOTA를 달성하며 등장하고 있다. 특히 언어모델의 경우 self-supervised learning으로 영어 뿐만 아니라 최근 다양한 언어로 학습된 모델이 등장하고 있고, 그 덕에 다양한 자연어 처리 태스크들에서 fine-tuning시 데이터가 많지 않더라도 좋은 성능을 보여주고 있다. 이러한 트렌드를 이끈 것은 Transformer의 역할이 크지만 그 전에 Transformer의 전신인 Sequence-to-Sequnce모델과 Attention mechanism에 대해 먼저 간단하게 살펴보려고 한다. Sequnece-to-Sequence 
Autoencoder와 LSTM Autoencoder
Intro 대표적인 자기 지도 학습인 Autoencoder와 Autoencoder에 LSTM cell을 적용해 시퀀스 학습이 가능한 LSTM Autoencoder에 대해 소개한다. 이후 다음 포스팅에는 LSTM Autoencoder를 통해 미래에 발생 할 고장이나 이상신호를 조기 예측하기 위한 Anomaly Detection 방안에 대해 소개할 것이다. 1. Autoencoder? 오토인코더는(autoencoder)는 라벨이 없는 훈련 데이터를 사용한 학습(즉, 지도 학습) 없이도 입력 데이터의 표현을 효율적으로 학습할 수 있는 인공신경망이다. 오토인코더는 아래 그림과 같이 input 레이어, hidden 레이어, output 레이어로 구성되어 있으며 일반적으로 Input 유닛보다 훨씬 낮은 차원의 hidden 유닛을 가지므로 주로 차원 축소(Dimensionality Reduction) 목적으로 사용된다. 또한 오토인코더는 강력한 featur
My first Project
입사 후 내 첫 작품 Pager Encoder 입사 후 내가 맡은 첫 프로젝트 Pager Encoder (무선호출기 일명 삐삐에 신호를 보내는 장치) 를 만드는 거 였다. 무선호출기가 신호를 받으려면 당연히 신호를 보내는 장치가 있어야 한다. 신호를 보내는 장치를 Encoder라고 불렀다. 우리가 일반적으로 무선호출기를 호출 하려면 호출기 번호에 전화를 걸고 이후 번호를 남기면 남긴 번호가 호출기 LCD 창에 표시된다. 그런데, 실험실에서 실험을 위해 매 번 이렇게 기지국에 전화를 할 수 없으니 호출할 수 있는 장치가 필요하다. 그 때 실험실에서 사용하던 장비가 있었는데 호출번호로 1분 또는 3분 간격으로 기지국에 전화를 걸고 메시지는 하나씩 증가하는 장비였다. 이 장비는 DTMF 신호를 발생해서 기지국으로 신호를 전송하는 장비로 그 때 가격이 대략 $10,000 였으니 꽤나 비싼 장비였다. 비싸기도 했지만 실험실에서 사용하는 다양한 목적에 부합하지 않아 새로운 장비의 필요