[Time Sereis Forecasting] One-Step, Multi-Step, Multi-Output
·
ML & DL/Deep Learning
One-Step주어진 과거 데이터를 바탕으로 한 시점 뒤의 미래 값을 예측하는 방법예를 들어, 1시간 간격으로 기록된 데이터가 있다면 0~6시의 데이터를 보고 1시간 뒤인 7시의 데이터를 예측하는 것일반적으로 모델의 예측이 정확하며, 에러가 축적되지 않아 안정적인 예측 가능Multi-Step여러 시점을 동시에 예측하는 방법. 예를 들어, 1시간 간격으로 기록된 데이터가 있다면 0~12시의 데이터를 보고 6시간 뒤인 13~18시 까지의 데이터를 예측하는 것Direct Multi-Step각각의 시점을 별도의 모델로 예측하는 방법예를 들어, t+1, t+2, t+3의 3개의 시점을 예측하고 싶다면 각각의 시점에 대해 독립적으로 모델을 훈련정확도는 높을 수 있지만, 계산 비용이 증가Recursive Multi-..
ReLU Family
·
ML & DL/기초 이론
ReLURectified Linear Unit$$ ReLU(x) = max(0,x) $$LeakyReLU$$ LeakyReLU_{\alpha} = max(\alpha x, x) $$GELUGaussian Error Linear Unit$$ GELU(x) = 0.5 \cdot x \cdot (1 + \tanh(\sqrt{2/\pi} \cdot (x + 0.044715 \cdot x^3))) $$PReLUParametric ReLU$$ PReLU(x) = \max(0, x) + a \cdot \min(0, x) $$ELUExponential Linear Unit$$ ELU_{\alpha} = \begin{cases} \alpha (\exp(x) - 1) & \text{if } x = 0 \end{cases}..
[Time Series Forecasting] Sliding Window Dataset
·
ML & DL/Deep Learning
class SlidingWindowDataset(Dataset): def __init__(self, train_X, train_y, input_window, output_window, stride=1): self.train_X = train_X self.train_y = train_y self.input_window = input_window self.output_window = output_window self.stride = stride self.variables = train_X.columns # train_X에도 target이 있어야 함. self.target = self.train_y sel..
[Time Series Forecasting] Model (LSTM, GRU, CNN, ... ) PyTorch 구현
·
ML & DL/Deep Learning
LSTMclass LSTMModel(nn.Module): def __init__(self, input_size, hidden_size, num_layers, output_window, dropout): super(LSTMModel, self).__init__() self.hidden_size = hidden_size self.num_layers = num_layers self.lstm = nn.LSTM(input_size, hidden_size, num_layers, batch_first=True) self.selu = nn.SELU() self.dropout = nn.Dropout(dropout) self.fc..
XGBoost Custom Metric & Evaluation
·
ML & DL/Machine Learning
XGBoost를 학습시키기 위한 라이브러리는 xgboost 라이브러리와 scikit-learn(sklearn) 인터페이스가 있습니다.둘 중 아무거나 사용하여도 상관 없는데, 문제는 기본적으로 제공하는 평가 함수와 목적 함수(손실 함수)이외의 함수를 Custom 할 때 사용 방법에 차이가 있어 기록하고자 글을 작성합니다. Documentation XGBoost기본 학습 코드import xgboost as xgbX_train, y_train = ...X_valid, y_valid = ...dtrain = xgb.DMatrix(X_train, label=y_train)dvalid = xgb.DMatrix(X_valid, label=y_valid)params = { 'eta': 0.1, 'n_jobs..
[Pytroch] Multi GPU Training
·
ML & DL/PyTorch
Data Parallel (DP) 사용법 ... model = resnet18().to(device) model = torch.nn.DataParallel(model) ... 장점 위 예시처럼 매우 간단하게 사용이 가능하다 단점 메모리 사용량 증가 : 각 GPU에서 모델의 복사본을 만들어 메모리를 사용하기 떄문에 GPU의 수가 증가할 수록 메모리 사용량이 증가 통신 병목 현상 : 각 GPU에서 연산을 수행하고 연산 결과를 하나의 GPU로 모은 후에 모델을 업데이트 하기 때문에 GPU간 데이터를 복사하고 통신하는 데 시간이 소요된다. 또한, 하나의 GPU로 연산 결과를 모으기 때문에 GPU 수가 증가할 수록 하나의 GPU의 메모리 사용량이 증가해 효율적인 사용이 불가능하다. 참고 train 할 때 DP를 ..
IoU, Precision, Recall, mAP 정리
·
ML & DL/Deep Learning
IoU (Intersection Over Union)Object Detection 모델의 성능을 평가하기 위한 지표이다.즉, 다음 그림과 같이 Ground Truth Bounding Box (정답 Bounding Box)가 주어지고 Predict Bounding Box (예측 Bounding Box)를 출력했을 때, 예측한 BBox가 맞는지 틀린지를 결정하기 위해 사용된다.IoU는 다음 그림과 같이 예측 BBox와 정답 BBox간 교집합 부분의 면적을 합집합 면적으로 나눈 값이다.이때 맞다 틀리다를 Threshold(임계값)을 지정하여 판단하는데 만약 임계값이 0.5로 주어진다면 IoU 값이 0.5 이상이면 제대로 검출(True Positive) 0.5 미만이면 잘못 검출 (False Positive)라..
WBF, Ensemble for Object Detection 정리
·
ML & DL/Deep Learning
WBF (Weighted Boxes Fusion)Object Detection Task에서 학습된 모델의 결과를 Ensemble 하여 성능을 끌어올리기 위해서는 BBox들을 Ensemble하는 NMS, Soft-NMS 같은 알고리즘을 사용해야 합니다. 기존의 NMS나 Soft-NMS 같은 방법은 기존의 BBox에서 불필요한 BBox를 제거하는 방식으로 동작하였습니다.WBF는 기존의 이러한 방식과는 다르게 모든 BBox를 사용하여 더 나은 BBox를 만들게 됩니다. 이 방법은 연산 속도를 추가적으로 필요하기 때문에 Real Time보다는 Kaggle, Dacon 같은 경진대회에서 주로 사용하는 편입니다.WBF 알고리즘 과정\(B\) : 한 이미지에 대한 모든 BBox의 정보를 Score 기준으로 정렬한 L..
욱근욱
'ML & DL' 카테고리의 글 목록