728x90

2024/07 17

[알고리즘] 다이나믹 프로그래밍2 : 더 많은 예제 풀이

다이나믹 프로그래밍이란?이전 포스팅에서도 설명했지만 다시 한번 짚고 넘어가자면 다이나믹 프로그래밍(DP)은 복잡한 문제를 해결하기 위한 알고리즘 기법 중 하나로, 작은 하위 문제들을 해결한 결과를 이용하여 더 큰 문제를 해결하는 방법입니다. 이를 통해 중복 계산을 줄이고 효율적으로 문제를 풀 수 있습니다.핵심 개념문제 분할: 문제를 여러 하위 문제로 나눕니다.중복 계산 제거: 동일한 하위 문제를 여러 번 계산하지 않도록 메모이제이션을 사용합니다.최적 부분 구조: 문제의 최적 해가 부분 문제의 최적 해로 구성됩니다.저번에 대강 넘어갔던 부분이긴 합니다. DP를 사용하기 위해선 위와 같은 핵심 개념이 성립해야 풀 수 있기 때문에 이 점을 주의하시면 좋을 것 같습니다. 문제 풀이 예제 문제 15988: 1, ..

Learn 2024.07.17

[알고리즘] 다이나믹 프로그래밍 : 작은 것부터 시작하자!

1. 동적 프로그래밍(DP) 소개동적 프로그래밍은 복잡한 문제를 작은 부분 문제로 나누어 해결하는 방법입니다. 주로 최적화 문제에 사용되며, 메모이제이션 또는 테이블 방식으로 중복 계산을 줄입니다. 워낙 유명한 해결법이라 저 보다 잘 설명된 글이 굉장히 많습니다. 여기서는 재미로 대략적인 내용을 파악하는 걸로 보고 가시면 좋을 듯 합니다.2. 가장 긴 증가하는 부분 수열(LIS) 문제 해결2.1 LIS의 정의 및 문제 설명LIS는 주어진 수열에서 순서를 유지하면서 가장 긴 증가하는 부분 수열을 찾는 문제입니다.2.2 동적 프로그래밍을 이용한 LIS 알고리즘동적 프로그래밍을 사용한 LIS 알고리즘은 O(n^2)의 시간 복잡도를 가집니다. 각 요소에 대해 그 이전 요소들과 비교하여 dp 테이블을 갱신합니다...

Learn 2024.07.16

[정보] 빠르게 배우는 VSCode 디버깅

1. VS Code 디버깅 소개지금까지 디버깅을 크게 사용하지 않고 단순 무식하게 코드를 짰었는데, 이번에 논문의 코드를 보다보니 도저히 알 수 없는 경우가 많아서 이제서야... 디버깅을 써보기로 했습니다. 이 글에서는 간략하게 VScode의 디버깅을 설명하고 실제로 해보는 걸 목표로 합니다.2. 기본 설정 및 준비당연히 VS Code가 설치 되어있고 Python 환경 설정이 이미 해결된 상태라고 가정하고 설명하겠습니다.3. 기본 디버깅 사용법코드 작성 및 브레이크포인트 설정간단한 Python 코드를 작성합니다:def add(a, b): result = a + b return resultif __name__ == "__main__": x = 5 y = 10 sum = add(x..

Learn 2024.07.16

[알고리즘] 배열을 쓰지말고 풀어봐 : 비트마스크

비트 마스크 (Bitmask)란 무엇인가?비트 마스크(Bitmask)는 비트 연산을 사용하여 데이터를 효율적으로 처리하고 조작하는 방법입니다. 특히, 원소의 개수가 적고 원소의 범위가 제한된 경우 매우 유용하게 사용됩니다. 비트 마스크는 메모리를 절약하고, 특정 연산을 빠르게 수행할 수 있는 장점이 있습니다. 막 주로 사용되는 알고리즘은 아니지만 분명히 알아둬야 하는 방법입니다.비트 연산의 기초비트 연산은 AND(&), OR(|), XOR(^), NOT(~) 및 시프트 연산(>) 등을 사용하여 이진 데이터를 조작합니다. 각 비트 연산은 다음과 같은 기능을 수행합니다:AND(&): 두 비트가 모두 1일 때 1, 그렇지 않으면 0.OR(|): 두 비트 중 하나라도 1일 때 1, 그렇지 않으면 0.XOR(^)..

Learn 2024.07.09

[LTSF] Are Transformers Effective for Time Series Forecasting?

AbstractTransformer에서 위치 인코딩을 사용하고 서브시리즈를 임베딩하는 것은 일부 순서 정보를 유지하는 데 도움을 주지만, 변환 불변의 Self-attention machanism의 특성상 시간 정보 손실이 불가피합니다.이 주장을 검증하기 위해, 비교를 위해 LTSF-Linear라는 매우 간단한 단일층 선형 모델 세트를 소개합니다. 9개의 실제 데이터셋에서 실험한 결과, LTSF-Linear는 기존의 복잡한 Transformer 기반 LTSF 모델들보다 모든 경우에서 놀랍게도 더 우수한 성능을 보였고 더불어, LTSF 모델의 다양한 설계 요소들이 시간적 관계 추출 능력에 미치는 영향을 탐구하는 포괄적인 경험적 연구를 수행했습니다. 향후 시계열 분석 작업(e.g., 이상 감지)을 위한 Tra..

Learn 2024.07.08

[LSTF] Autoformer: Decomposition Transformers withAuto-Correlation for Long-Term Series Forecasting

1. Introduction시계열 예측은 에너지 소비, 교통 및 경제 계획, 날씨 예보, 질병 전파 예측 등 다양한 실제 응용 분야에서 중요한 역할을 합니다. 이러한 응용 분야에서는 장기적인 예측이 특히 중요한데, 이는 장기 계획과 조기 경고에 필수적이기 때문입니다. Transformer 기반 모델은 시계열 데이터의 장기 의존성을 모델링하는 데 강력한 성능을 보이지만, 복잡한 장기 패턴과 계산 효율성 문제로 인해 기존 모델들은 한계를 가집니다. 이 논문에서는 Auto-correlation, Decomposition을 이용해서 좋은 성능을 이끌어 냈습니다.2. Related workModels for Time Series Forecasting시계열 예측을 위한 다양한 모델들이 개발되었습니다. ARIMA 모..

Learn 2024.07.07

[LSTF] Informer: Beyond Efficient Transformer for Long SequenceTime-Series Forecasting

Introduction시계열 예측은 다양한 도메인에서 중요한 역할을 합니다. 특히, 긴 시퀀스 시계열 예측(LSTF)은 모델의 높은 예측 능력을 요구합니다. Transformer 모델은 긴 종속성을 포착하는 데 우수한 성능을 보이지만, 계산 복잡도와 메모리 사용량이 커 LSTF에 적용하는 데 어려움이 있습니다. 본 논문에서는 이러한 문제를 해결하기 위해 Informer를 제안합니다.> 여기서 저자는 Long sequence에 대한 정의를 48개 이상의 출력물을 내는 것을 의미한다고 정의하며 시작합니다. 이는 LSTM에서 MSE의 값이 늘고, Inference speed가 급격히 줄어드는 기준으로 설정한 것임을 확인할 수 있습니다.Transformer의 한계Vanilla Transformer는 세 가지 주..

Learn 2024.07.07

[LSTF] LogTrans : Enhancing the Locality and Breaking the MemoryBottleneck of Transformer on Time Series Forecasting

1. Introduction시계열 예측은 자원 관리와 의사 결정을 돕기 위해 중요한 역할을 합니다. 전통적인 시계열 예측 모델인 상태 공간 모델(SSM)과 자기회귀(AR) 모델은 각 시계열을 독립적으로 적합시키도록 설계되었으며, 전문가의 수동 선택이 필요합니다. 이로 인해 대규모 시계열 예측 작업에 적용하기 어렵습니다.이를 해결하기 위해 심층 신경망(DNN)이 대안 솔루션으로 제안되었습니다. 특히, 순환 신경망(RNN)은 시계열을 자기회귀 방식으로 모델링하는 데 사용됩니다. 그러나 RNN은 기울기 소실 및 폭발 문제로 인해 훈련하기가 어렵습니다. Transformer는 주의 메커니즘을 활용하여 시퀀스를 처리하는 새로운 아키텍처로, 장기 종속성을 포착하는 데 더 적합할 수 있습니다. 그러나 Transfor..

Learn 2024.07.07

[LTSF] Long-term Time Series Forecasting 정리

이 글은 Long-term Time Series Forecasting에 관한 내용을 공부하고 정리해놓은 곳입니다.논문 작성하기 전까지 계속 업데이트 예정입니다. 각 내용은 하나의 블로그 포스팅으로 작성될 예정입니다.해야할 일 (2024.07.05)각 Transformer 분야에 대해서 정리 및 분류그에 따른 Survey 논문 Forecasting에 관해 정리기준 Survey 논문1. Transformer 분야 : Transformers in Time Series: A Survey(2023)2. CNN 분야 : -3. RNN, LSTM 분야 : -현재 진행 상황1. Transformer 이전의 CNN, RNN, LSTM을 이용한 LTSF2.  Transformer를 이용한 LTSFLogTrans(2019)..

Learn 2024.07.05

[생각정리] 팰리컨식 사고 : 일단 입에 넣고 생각

팰리컨식 사고란 무엇인가?팰리컨식 사고(Pelican Thinking)는 일단 무언가를 입에 넣어보고 시도해보는 것을 의미합니다. 제가 좋아하는 말이기도 한데 '일단 해보고 안되면 돌아오자' 입니다. 이전 포스팅 글에서 설명한 것 중에 하나도 이와 관련이 있는데, 생각만 해서는 정말 아무것도 변하지 않더라구요. 그러면서 변하지 않는 거에 대해서 생각하고... 이렇게 되면 끝이 없기에 일단 해보는 겁니다. 제 나름대로 팰리컨식 사고의 원리와 철학나름대로 정리해보면 팰리컨식 사고의 핵심 원리는 다음과 같습니다:즉각적인 시도: 무언가 새로운 것을 접했을 때, 깊이 생각하기보다는 우선 시도해보는 것이 중요합니다. 정말 티클만한 거라도 좋으니 일단 해봅시다. 몸을 만드는 거라면 일단 침대에서 일어나는 거만 해도 ..

Life, Hobby 2024.07.05
728x90