본문 바로가기

전체 글85

[ML][Time - Series Analysis] ARIMA(Autoregressive Integrated Moving Average, 자기 회귀 누적 이동 평균) 모델 ARIMA(Autoregressive Integrated Moving Average)모델이란?AR과 MA를 모두 고려하는 모형인데, ARMA와 달리 과거 데이터의 선형 관계뿐만 아니라 추세(Cointegration)까지 고려한 모델ARIMA 모델의 기본 이론자기 회귀(AR, Auto Regressive) : 과거의 값들이 미래 값에 어떤 영향을 미치는지 설명p 차수통합,차분(I, Integrated) : 데이터의 비정상성(non-stationarity)을 제거하기 위해 데이터를 차분하여 안정화d 차수 / 차분은 데이터의 연속된 관측값들의 차이를 취하는 과정이동평균(MA, Moving Average) : 과거 예측 오차가 현재의 예측에 미치는 영향을 설명 q 차수 수식$$ Z_{t}^{'} = \.. 2025. 5. 17.
[DL][RNN] GRU(Gate Recurrent Unit, 게이트 순환 신경망) 개념 1. GRU(Gate Recurrent Unit, 게이트 순환 신경망)이란?GRU란 Gate 메커니즘이 적용된 RNN 모델의 한 종류입니다.RNN의 문제점인 기울기 소멸 문제를 해결하기 위해 "Cell State"와 세 개의 Gate 메커니즘을 도입한 LSTM(Long Term Short Term Memory)은 상대적으로 복잡한 구조로 인해 계산 비용이 너무 크다는 단점이 있습니다.따라서, GRU는 LSTM의 네트워크를 개선하기 위한 모델로, 정보의 흐름을 제어하기 위해 두 개의 Gate를 사용하여 계산을 효율적으로 합니다. 이를 통해 빠른 학습이 가능하고 낮은 시간 복잡성을 가지게 됩니다.2. GRU의 구조 및 특징2.1 GRU의 구조GRU는 LSTM에서 사용하는 Forget Gate와 Input G.. 2025. 5. 16.
[Coding Test][Python][프로그래머스] Level 3 다단계 칫솔 판매 문제)민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, 조직을 운영하던 민호는 조직 내 누가 얼마만큼의 이득을 가져갔는지가 궁금해졌습니다. 예를 들어, 민호가 운영하고 있는 다단계 칫솔 판매 조직이 아래 그림과 같다고 합시다.민호는 center이며, 파란색 네모는 여덟 명의 판매원을 표시한 것입니다. 각각은 자신을 조직에 참여시킨 추천인에 연결되어 피라미드 식의 구조를 이루고 있습니다. 조직의 이익 분배 규칙은 간단합니다.모든 판매원은 칫솔의 판매에 의하여 발생하는 이익에서 10% 를 계산하여 자신을 조직에 참여시킨 추천인에게 배분하고 나머지는 자신이 가집니다.모든 판매원은.. 2025. 5. 7.
[DL][CNN] ResNet 개념 및 Pytorch 구현 1. ResNet이란?MicroSoft에서 개발한 알고리즘으로 "Deep Residual Learning for Image Recognition"이라는 논문에서 발표하였습니다. ResNet의 핵심은 깊어진 신경망을 효과적으로 학습하기 위한 방법으로 Residual이라는 개념을 고안하였습니다. 일반적으로 신경망이 깊어질수록 성능이 좋아질거 같지만 일정한 단계에 다다르면 오히려 성능이 나빠지는 문제를 해결하기 위해 Residual Block을 도입하였습니다. 이러한 개념이 필요한 이유는 2014년에 공개된 GoogLeNet은 Layer가 22개로 구성된 것에 비해 ResNet은 Layer가 총 152개로 구성되어 기울기 소멸 문제가 발생할 수 있기 때문입니다. 따라서, Shortcut을 두어 기울기 소멸 .. 2025. 4. 30.
[Coding Test][Python][프로그래머스] Level 3 보석 쇼핑 문제)개발자 출신으로 세계 최고의 갑부가 된 어피치는 스트레스를 받을 때면 이를 풀기 위해 오프라인 매장에 쇼핑을 하러 가곤 합니다.어피치는 쇼핑을 할 때면 매장 진열대의 특정 범위의 물건들을 모두 싹쓸이 구매하는 습관이 있습니다.어느 날 스트레스를 풀기 위해 보석 매장에 쇼핑을 하러 간 어피치는 이전처럼 진열대의 특정 범위의 보석을 모두 구매하되 특별히 아래 목적을 달성하고 싶었습니다.진열된 모든 종류의 보석을 적어도 1개 이상 포함하는 가장 짧은 구간을 찾아서 구매 예를 들어 아래 진열대는 4종류의 보석(RUBY, DIA, EMERALD, SAPPHIRE) 8개가 진열된 예시입니다.진열대 번호12345678보석 이름DIARUBYRUBYDIADIAEMERALDSAPPHIREDIA진열대의 3번부터 7번까.. 2025. 4. 30.
[Coding Test][Python][프로그래머스] Level 3 스티커 모으기(2) 문제)N개의 스티커가 원형으로 연결되어 있습니다. 다음 그림은 N = 8인 경우의 예시입니다. 원형으로 연결된 스티커에서 몇 장의 스티커를 뜯어내어 뜯어낸 스티커에 적힌 숫자의 합이 최대가 되도록 하고 싶습니다. 단 스티커 한 장을 뜯어내면 양쪽으로 인접해있는 스티커는 찢어져서 사용할 수 없게 됩니다.예를 들어 위 그림에서 14가 적힌 스티커를 뜯으면 인접해있는 10, 6이 적힌 스티커는 사용할 수 없습니다. 스티커에 적힌 숫자가 배열 형태로 주어질 때, 스티커를 뜯어내어 얻을 수 있는 숫자의 합의 최댓값을 return 하는 solution 함수를 완성해 주세요. 원형의 스티커 모양을 위해 배열의 첫 번째 원소와 마지막 원소가 서로 연결되어 있다고 간주합니다.제한 사항)sticker는 원형으로 연결된 스.. 2025. 4. 29.
[DL][CNN] GoogLeNet 개념 및 Pytorch 구현 1. GoogLeNet이란?GoogLeNet이란 2014년 Google에서 개발한 CNN모델로 ILSVRC 2014(ImageNet Large Scale Visual Recognition Challenge)에서 우승을 차지하였습니다.주어진 HW자원을 최대한 효율적으로 이용하면서 학습은 극대화할 수 있는 깊고 넓은 신경망입니다.깊고 넓은 신경망을 위해 Inception Module을 추가하였습니다. 이를 통해 네트워크의 Depth와 Width를 늘리면서도 Computational Efficiency를 확보하였습니다.GoogLeNet 특징Inception Module : 여러 크기의 Convolution Filter(1x1, 3x3, 5x5)를 동시에 적용하여 네트워크가 다양한 크기의 패턴을 학습, 더 깊.. 2025. 3. 29.
[Coding Test][Python][MST] Prim 알고리즘 Prim 알고리즘에 앞서 Kruskal 알고리즘을 보고 오시면 좋습니다. [Coding Test][Python][Shortest Path] Kruskal 알고리즘 개념 및 예제, Union - Find 자료구조1. Kruskal 알고리즘이란?그래프의 Minimum Spanning Tree(MST, 최소 신장 트리) 를 구하는 대표적인 알고리즘입니다.Minimum Spanning Tree란 그래프의 모든 Vertex가 연결하면서 Edge의 Weight의 합이 최소가 되는 Trself-objectification.tistory.com 1. Prim 알고리즘이란?Prim 알고리즘은 Kruskal 알고리즘과 같이 Graph에서 Minimum Spanning Tree(MST)를 찾는 알고리즘입니다.특징Kruska.. 2025. 3. 18.
[Coding Test][Python][MST] Kruskal 알고리즘 개념 및 예제, Union - Find 자료구조 1. Kruskal 알고리즘이란?그래프의 Minimum Spanning Tree(MST, 최소 신장 트리) 를 구하는 대표적인 알고리즘입니다.Minimum Spanning Tree란 그래프의 모든 Vertex가 연결하면서 Edge의 Weight의 합이 최소가 되는 Tree를 의미합니다.알고리즘 특징Edge를 중심으로 접근하여 MST를 구성Greedy 알고리즘 사용Undirected Weighted Graph에 적용가능시간 복잡도 : $O(E log E)$2. Kruskal 알고리즘 동작 과정위의 그래프에서 Kruskal 알고리즘을 적용해보겠습니다.1) 모든 Edge를 가중치가 작은순으로 정렬Edge의 Weight가 작은 순으로 정렬한 후 가장 작은 Weight를 가진 Edge를 선택합니다.2) 정렬된 E.. 2025. 3. 18.