# LSTM
LSTM(이론&Pytorch)
[RNN 포스팅]:https://velog.io/@skkumin/RNN-%EB%94%A5%EB%9F%AC%EB%8B%9D%EC%9D%98-%EA%B8%B0%EB%B3%B8%EC%A0%81%EC%9D%B8-%EC%8B%9C%ED%80%80%EC%8A%A4-%EB%AA%A8%EB%8D%B8%EC%9D%B4%EB%A1%A0Pytorch [kaist Lstm 강의]: https://youtu.be/cs3tSnAsyRs?si=pabKvmef3V80qPLv [주가예측 LSTM]: https://github.com/skkumin/DeepLearning-Study/blob/main/LSTM/%EC%A3%BC%EA%B0%80%EC%98%88%EC%B8%A1_LSTM.ipynb LSTM은 RNN의 단점을 보완한 모델이다. 따라서 RNN을 먼저 공부하고 LSTM을 공부하면 이해하기가 더 수월하다. RNN을 모른다면 [RNN 포스팅]을 일고 LSTM공부를 하는걸 추천하며 해당 포스팅은 여러 자료를 참고하

GRU, LSTM
RNN(Recurrent Neural Network) : 순차데이터나 시계열 데이터를 처리할 때 사용하는 순환 신경망 RNN 기본 구조 t시점의 input data x가 들어갔을 때 해당 데이터는 2개의 출력으로 나뉜다. 하나는 그대로 다음 hidden layer에 출력되어 넘겨주고 다른 하나는 다시 자신에게 가중치를 주는 것이다. 이를 일대일 구조가 아닌 다대다 구조로 한 번 보도록 하자 위와 같이 보았을 때. 순차 데이터 중 t시점의 데이터에 관한 출력값의 경우 x(t)뿐 아니라 t시점 이전에 들어온 x(t-1)

딥러닝 5
RNN RNN이란? Recurrent Neural Network (순환 신경망) -> 반복되는 구조 ▪ 1985년 Rumelhart와 Hinton에 의해 제안된 모델 ▪ 시계열 데이터와 같은 순차 데이터(Sequential Data) 처리를 위한 모델 Sequential Data(순차 데이터) https://heung-bae-lee.github.io/2020/01/12/deeplearning08/ ▪ 순서(Order)를 가지고 있는 데이터 ▪ 시계열 데이터, 자연어 데이터 등이 대표적 RNN이 필요한 이유 자연어 문장을

시계열 분석 🔁
시계열 분석이란 시간에 따라 변하는 데이터를 사용하여 추이를 분석하는 것이다. 시계열 형태는 데이터 변동 유형에 따라 불규칙 변동, 추세 변동, 순환 변동, 계절변동으로 구분할 수 있다. >- 불규칙 변동 : 어떤 규칙성이 없어 예측 불가능하고 우연적으로 발생하는 변동 추세 변동 : 시계열 자료가 갖는 장기적인 변화 추세 순환 변동 : 2 ~ 3년 정도의일정한 기간을 주기로 순환적으로 나타나는 변동 계절 변동 : 시계열 자료에서 보통 계절적 영향과 사회적 관습에 따라 1년 주기로 발생하는 것 RNN(순환 신경망) RNN(Recurrent Neural Network)은 시간적으로 연속성이 있는 데이터를 처리

밑바닥부터 시작하는 딥러닝2 - 6장
6장 - 게이트가 추가된 RNN 앞에서 본 RNN은 과거의 정보를 기억할 수 있었다. 구조가 단순해서 구현도 쉽지만, 안타깝게도 성능이 좋지 못하다. 그 원인은 대부분의 경우 시계열 데이터에서 시간적으로 멀리 떨어진, 장기(long term) 의존 관계를 잘 학습할 수 없다는 데 있다. 요즘은 단순한 RNN 대신 LSTM이나 GRU라는 계층이 주로 쓰인다. LSTM이나 GRU에는 게이트$^{gate}$라는 구조가 더해져 있는데, 이 덕분에 시계열 데이터의 장기 의존 관계를 학습할 수 있다. 6.1 - RNN의 문제점 기본적인 RNN은 시계열 데이터의 장기 의존 관계를 학습하기 어렵다. 그 원인은 BPTT에서 기울기 소실 혹은 기울기 폭발이 일어나기 때문이다. >- 기울기 소실: 역전파 값이 점점 작아지다가 0이 되어 사라지는 현상 기울기 폭발: 역전파의 값이 매우 큰 수가 되는 현상 6.1.1 - RNN 복습 RNN 계층은 시계열 데이터인 $\bold
[논문 리뷰] Are Transformers Effective for Time Series Forecasting? (AAAI, 2023) (NLinear, DLinear)
📌 본 내용은 논문 입문자가 개인적으로 필기한 내용입니다. 내용에 오류나 피드백이 있으면 말씀해주시면 감사히 반영하겠습니다.📌 😊 개인 기록용 포스트입니다 0. Abstract LTSF해결위한 Transformer based 해결책의 급증 Transformer는 의미론적인 상관관계를 잘 해결함 순서가 있는 연속적인 point에서 시간적 관계추출해야됨 Transformer에서 encoding, token이용하면서 정보를 순서대로 놓아도, self attention매커니즘의 순서가 변하지 않는 것은 일시적 정보손실을 반드시 낳는다 LTSF-Linear가 기존의 정교한 Transformer-based LTSF 를 넘어서 좋은 성능 보여줌 1. Introduction 시계열 시계열 문제는 data기반 세계에 만연함 시계열 문제 해결 변천사 : 머신러닝 → 딥러닝 Transf
[시계열] 02. RNN의 문제점과 LSTM의 등장
😍 먼저, 시계열에 대한 블로그 내용은 밑바닥부터 시작하는 딥러닝 2 도서를 기반으로 작성되었음을 밝힙니다. RNN의 문제점 RNN은 아래 두 가지 원인으로 **

텍스트를 위한 인공 신경망
순차 데이터와 순환 신경망 순차 데이터 > 순차 데이터(sequential data)는 텍스트나 시계열 데이터(time series data)와 같이 순서에 의미가 있는 데이터를 말한다. ex) I am a boy. -> boy am a I 순서가 다르면 의미가 사라진다. 지금까지 다루었던 데이터는 순서와는 상관이 없었다. 오히려 데이터를 적절히 섞는 것이 결과가 더 좋게 나오기도 했다. 이번 시간에 사용하려는 댓글, 즉 텍스트 데이터는 단어의 순서가 중요한 데이터이다. 순차 데이터를 다룰 때는 이전에 입력한 데이터를 기억하는 기능이 필요하다. 그러기 위해서는 입력 데이터의 흐름이 앞으로만 전달되는 신경망이 필요한데, 이러한 특징을 가진 신경망이 '피드포워드 신경망'이다. 이전 장에서 배웠던 완전 연결 신경망과 합성곱 신경망이 모두 피드포워드 신경망에 속한다. 순환 신경망 > 신경망이 이전에 처리했던 샘플을 다음

[CV 프로젝트] 수화 번역 선행연구 정리
[0] OpenPose Carnegie Mellon University에서 개발한 오픈소스 라이브러리이다. Body, Hand, Face 세 종류의 뼈대(Skeleton) 위치를 추정하고, 그 위치를 나타내는 키포인트(총 135개)를 제공한다. 또한 이미지 및 비디오 내에서 핵심 좌표 데이터를 추출하는데 있어서 다수의 사람이 포함되어 있더라도 각각의 사람에 대한 신체 핵심 좌표 데이터를 구분하여 제공해 준다. 그러나 학습량에 따라 일반적으로 잘 취하지 않는 자세의 경우, 신체의 일부가 가려진 경우, 여러 사람이 겹치는 경우 등에서 신체에 대한 좌표 데이터를 생성하기 어렵다는 문제가 있다 MediaPipe MediaPipe는 구글에서 개발한 오픈소스 프레임워크이다. 사진 또는 영상에서 실시간으로 사람의 동작을 감지하여 몸 관절에서 33개, 손 관절에서 21개의 3D 랜드마크를 추론할 수 있다. 기본적인 얼굴 인식(Face Detect
기록5. 영상의 댓글/ 하이라이트 타임라인을 요약해보자 (감성분석)
영상을 올리고 해당 영상의 민심(?), 반응이 어떤지 확인할 수 있는 comment 분석기 기능을 추가해봤습니다. 데이터 학습에 필요한 데이터를 모아봤습니다. >* 한국어 단발성 대화 한국어 악성댓글 데이터 욕설이 들어갔거나, 강한 혐오표현, 비난 욕설 감지 데이터셋 단순 욕설, 인종 차별적인 말, 정치적 갈등을 조장하는 말, 성적·성차별적인 말, 타인을 비하하는 말, 그 외에 불쾌감을 주거나 욕설로 판단되는 말 youtube comment 수집하여 일부 라벨링 >### 전처리, tokenizer 모델 일부 인터넷 용어들 사전을 따로 만들어주기위해 커스텀하기 쉬운 ckonlpy로 선정 ckonlpy >### 학습모델 LSTM, LSTM+A

[DeepLearning] LSTM 공부하기
LSTM(장단기 메모리) 가장 단순한 형태의 RNN인 Vanilla RNN(Simple RNN)의 한계를 극복하기 위한 다양한 RNN의 변형이 생겨났는데, 그 중 하나가 LSTM이다. 바닐라 RNN의 한계 그럼, 바닐라 RNN은 어떤 한계가 있어서 극복하려하는걸까? 첫번째는 시퀀스가 길어질 수록 앞의 정보가 뒤로 충분히 전달되지 못한다는 점이다. 바닐라 RNN은 현재 시점의 출력이 이전 시점의 계산 결과에 의존하기 때문에 시점이 길어지면 초반 시점의 정보가 손실되어 가는 것이다. 예를 들어, 이런 문장이 있다고 하자. > "모스크바에 여행을 왔는데 건물도 예쁘고 먹을 것도 맛있어. 다음에 꼭 같이 오자. 여기는 겨울이 정말 예쁘대! 그래서 우리의 다음 여행지는 (_)" 그리고 빈칸에 들어갈 단어을 예측해본다면 초반에 나온 정보인 모스크바를 문장의 마지막인 빈칸까지 기억하지 못해서(전달되지 못해서) 엉뚱한 장소를 예측할 수 있다. 이를 **장기

6. Transformer
VGG와 ResNet을 다루다가 갑자기 Transformer에 대해 다루게 되었다.... 이 Transformer는 요즘 아주아주 뜨거운 감자인 ChatGPT에 핵심 구조라고 볼 수 있다. 당연히 자연어 처리(NLP)쪽 모델이고, Transformer를 이해하기 위해서는 RNN, LSTM, Encoder-Decoder, Attention 정도만 이해하고 있으면 된다. 사실 다 나열해서 그렇지, RNN-LSTM은 거의 하나로 보면 되고, Encoder-Decoder는 아직 나도 공부를 안해서 모르겠다.... 관련 논문을 읽는대로 정리해보도록 하겠다. >근데 무엇보다 Attention이 이 Transformer를 이해하는데 가장 중요하다. Transformer를 소개한 논문 제목조차 Attention is all you need일 정도로.... 그렇기에 이 포스트에서는 RNN과 LSTM이 어떻게 생기고 어떻게 작동하는지, 그리고 Attention에 대해 간단히 이해하고 Transf

[플레이데이터] 5월 23일 수업(LSTM & GRU 셀, airflow 맛보기)
LSTM & GRU 셀 버퍼 오버플로우: 컴퓨터가 처리 가능한 용량을 넘어서 컴퓨터가 바보가 됨 순환신경망은 그레디언트 소실문제 발생 -> LSTM 구조를 사용하자 ! : 결과값에서 그레디언트 값이 점점 줄어드는 문제를 방지하고자 함 단기기억을 오래 기억하기 위해 고안 (Long Short-Term Memory) = LSTM 입력 -> 시그모이드 함수를 거친 값이 은닉층으로 + tanh 거친 값이 다시 은닉층으로(시그모이드 활성화 함수 사용) 은닉상태 말고 셀상태(cell state)가 존재 은닉상태와 달리 셀상태는 다음층으로 전달 X 안에서만 계속 순환 배치 사이즈(=숟가락 크기라고 생각하면 됨) 클수록 메모리를 많이 먹음, 배치사이즈에 따라 모델의 성능이 바뀜. 하이퍼파라미터(⬅학습 중 수정 필요) 배치사이즈가 클수록 빠름 배치사이즈가 작을수록 느림 데이터가 적은 추론같은 경우는 CPU로 돌리기 GPU로 할 필요 없음 ! GPU메모리는 하
[딥러닝] LSTM과 GRU 셀
RNN RNN 개요 시퀀스 데이터 처리에 강점을 가진 모델로써 시계열, 자연어 등의 분야에서 많이 사용 RNN은 이전 타임 스텝에서의 어떠한 정보(hidden state)를 다음 타입스텝으로 계속 전달하여 연산하는 방식 순환 신경망은 은닉층을 거친 결과값을 재사용하는 특징으로 인해 그래디언트 소실 & 폭주 문제가 발생 가능 RNN의 기본구조 출처:https://wikidocs.net/60762 전 시점의 정보 hidden state를 넘겨주기 위해 특정시점의 입력값에 대한 가중치의 곱과 전 시점의 hidden state와 그 가중치 곱의 합 구하기 LSTM LSTM 개요 단기 기억을 오래 기억하기 위해 고안된 모델 순환신경망은 은닉층을 거친

Attention is all you need
_ 31st Conference on Neural Information Processing Systems (NIPS 2017), Long Beach, CA, USA _ 
Sequential 모델, Keras Dense acivation(활성화 함수)
Sequential 모델은 계층을 선형으로 쌓은 것입니다. 다음과 같이 계층 인스턴스 리스트를 생성자에 전달하여 Sequential 모델을 만들 수 있습니다. .add() 메소드를 이용해 계층을 쉽게 추가할 수도 있습니다: mse : 오차의 제곱의 합의 평균 rmse : 오차 제곱의 합의 제곱근의 편균 mae : 오차의 절댓값의 합의 평균 r-squared(설명계수) : 설명할 수 있는 변동/총 변동 meanabsolutepercentagerror : ((ytest - ypred) / y_test)의 절댓값의 평균 meansquaredlogarithmicerror : mse 식에 로그적용 binarycrossentropy : 이진분류 categoricalcrossentropy : 다중분류 (one-hot encoding 클래스) sparsecategoricalcrossentropy : 다중분류 (

Air pollution Forecasting LSTM
필수 모듈을 불러온다 . 데이터를 불러온다. 문자열 데이터를 확인하고 숫자로 변환해준다. 각 컬럼들을 시각적으로 변환하여 본다. 지정된 시간에 걸친 오염 변화를 확인하여 준다. 데이터를 정리하고 데이터프레임의 값을 불러오고 실수형으로 변환한다. MinMaxScaler를 통해 데이터를 스케일링해준다. MinMaxScaler는 데이터 값을 0~1사이의 값으로 변환해주며 음수값이 있으면 -1에서 1값으로 변환한다. 데이터의 분포가 정규분포(가우시안 분포)가 아닐경우 적용해 볼 수 있다. 샘플의 입력층을 3차

KT 에이블스쿨 41일차(1)
오늘은 코드 구조 분석과 Bidirectional에 대해 배웠습니다. LSTM 과 GRU 실습 먼저 LSTM 실습코드 부터 보겠습니다. 코드를 실행하면 아래와 같은 모델 구조를 확인할 수 있습니다. 파라미터수를 보게 되면 RNN과 차이가 있는데 어제 설명 드린거와 같이 LSTM은 RNN보다 4배 더 무겁기 때문에 계산을 해보면 첫번째 LSTM은 (6+16+1)\16\4를 해주어 계산해야됩니다. 그럼 다음으로 GRU는 RNN보다 3배 무겁기 때문에 계산을 (16+32+1)\32\3 전체적인 사용방법은 RNN과 같습니다. 히든스테이트를 옵션으로 주고 return_sequences와 같은 여러 옵션을 적절하게 사용해주면 됩니다. 추가 해설 카
KT 에이블스쿨 40일차(1)
오늘은 어제 코드 구조 분석에 이어 LSTM과 GRU를 배웠습니다. 코드 구조 분석 추가 어제 포스팅했던 코드 구조에 대해 분석을 이어하겠습니다. 를 어제 다뤘는데 어제 코드 같은 경우 둘다 False로 설정하게되면 에러가 발생하게 되는데 해당 에러는 shape문제로 발생하는 에러로 keras구조 문제로 생기는 에러입니다. 파라미터 계산 어제 포스팅한 모델의 구조를 보면 파라미터를 볼 수 있는데 해당 파라미터를 계산하는 방법은 아래와 같습니다. 먼저 첫번째 레이어 인풋 레이어는 (20, 6)이고 다음 레이어인 simple_rnn의 파라미터를 계산하면 (이전 레이어의 노드수 + RNN의 노드 수 + bias편향) * (RNN의 노드 수)로 구할 수 있습니다. 현재 코

CS224n Lec 6: Simple and LSTM Recurrent Neural Networks
LSTM RNN은 예측 시점으로부터 최근에 있는 데이터를 필요로 하는 예측에는 성공적이다. 그러나 가까이 있는 문맥만으로는 부족하고 더 많은 양의 문맥이 필요한 경우에는 RNN이 정보를 서로 연결짓지를 못한다. 이론적으로 시간 차이가 많이 나는 입력들 사이의 의존성을(일명 Long-term dependencies) 학습할 수 있어야 한다. 그러나 실제로는 RNN은 장기 의존성을 학습하지 못하였다. LSTM Networks LSTM은 long-term dependencies를 학습할 수 있는 특수한 종류의 RNN이다. LSTM은 장기 의존성 문제를 일으키지 않도록 설계되었다. ![](https://velog.velcdn.com/images/ndkim11/post/f58bed78-0d34-4099-bb