AutoML 예측을 사용하여 딥 러닝
이 문서에서는 AutoML의 시계열 예측을 위한 딥 러닝 방법에 중점을 둡니다. AutoML에서 예측 모델을 학습하는 지침과 예는 시계열 예측을 위한 AutoML 설정 문서에서 찾을 수 있습니다.
딥 러닝은 언어 모델링에서 단백질 폴딩에 이르기까지 다양한 분야에서 활용한 사례가 있습니다. 시계열 예측은 딥 러닝 기술의 최근 발전에도 이점을 제공합니다. 예를 들어 DNN(심층 신경망) 모델은 유명 Makridakis 예측 경쟁 제품의 4번째 및 5번째 반복을 통해 획득한 가장 뛰어난 성능 모델에서 두드러진 기능을 제공합니다.
이 문서에서는 AutoML에서 TCNForecaster 모델의 구조와 작업을 설명하여 시나리오에 모델을 가장 잘 적용하는 데 도움이 되도록 합니다.
TCNForecaster 소개
TCNForecaster는 시계열 데이터를 위해 특별히 설계된 DNN 아키텍처가 있는 임시 콘볼루션 네트워크, 즉 TCN입니다. 이 모델은 관련 기능과 함께 대상 수량에 대한 기록 데이터를 사용하여 지정된 예측 구간까지 대상을 확률적으로 예측합니다. 다음 이미지는 TCNForecaster 아키텍처의 주요 구성 요소를 보여 줍니다.
TCNForecaster의 주요 구성 요소는 다음과 같습니다.
- 입력 시계열 및 기능 데이터를 콘볼루션 스택이 처리할 신호 채널 배열에 혼합하는 사전 혼합 계층입니다.
- 채널 배열을 순차적으로 처리하는 팽창된 콘볼루션 계층의 스택입니다. 스택의 각 계층은 이전 계층의 출력을 처리하여 새 채널 배열을 생성합니다. 이 출력의 각 채널에는 입력 채널의 콘볼루션 필터링 신호가 혼합되어 있습니다.
- 콘볼루션 계층의 출력 신호를 병합하고 이 잠재적 표현에서 대상 수량에 대한 예측을 생성하는 예측 헤드 단위의 컬렉션입니다. 각 헤드 단위는 예측 분포의 분위수 구간까지 예측을 생성합니다.
팽창된 인과 관계
TCN의 중앙 연산은 입력 신호의 시간 차원을 따라 팽창된 인과적 콘볼루션입니다. 직관적으로, 콘볼루션은 입력에서 가까운 시점의 값을 함께 혼합합니다. 혼합 비율은 콘볼루션의 커널 또는 가중치이지만 혼합의 점 간 구분은 팽창입니다. 출력 신호는 입력을 따라 시간의 커널을 슬라이딩하고 각 위치에 혼합을 누적하여 입력에서 생성됩니다. 인과적 콘볼루션에서는 커널이 각 출력 지점을 기준으로 이전 입력 값만 혼합하므로 출력을 통해 미래가 "조사"되지 않습니다.
팽창된 콘볼루션을 누적하면 TCN에서 비교적 적은 커널 가중치로 입력 신호에서 오랜 기간 동안 상관 관계를 모델링할 수 있습니다. 예를 들어, 다음 이미지는 각 계층에 2가중치 커널이 있고 기하급수적으로 커지는 팽창 인자가 있는 3개의 누적 계층을 보여 줍니다.
파선은 출력에서 시간 $t$에 끝나는 네트워크 통과 경로를 표시합니다. 이러한 경로는 각 출력 지점이 입력에서 비교적 가장 최근의 8개 지점으로 이루어진 함수임을 보여 주는 입력의 마지막 8개 점을 포함합니다. 콘볼루션 네트워크가 예측하는 데 사용하는 기록의 길이 또는 “되돌아보기”를 수용 필드라고 하며 전적으로 TCN 아키텍처에 의해 결정됩니다.
TCNForecaster 아키텍처
TCNForecaster 아키텍처의 핵심은 사전 혼합과 예측 헤드 간의 콘볼루션 계층 스택입니다. 이 스택은 논리적으로 잔차 셀로 구성된 블록이라는 반복 단위로 나뉩니다. 잔차 셀은 정규화 및 비선형 활성화에 따라 설정된 팽창에서 인과적 콘볼루션을 적용합니다. 중요한 것은 각 잔차 셀은 소위 말하는 잔차 연결을 사용하여 입력에 출력을 추가한다는 것입니다. 이러한 연결은 네트워크를 통해 보다 효율적인 정보 흐름을 용이하게 하기 때문에 DNN 학습에 도움이 되는 것으로 나타났습니다. 다음 이미지는 각 블록에 블록 2개와 잔차 셀 3개가 있는 예제 네트워크에 대한 콘볼루션 계층의 아키텍처를 보여 줍니다.
블록 및 셀 수와 각 계층의 신호 채널 수에 따라 네트워크 크기가 결정됩니다. TCNForecaster의 아키텍처 매개 변수는 다음 표에 요약되어 있습니다.
매개 변수 | 설명 |
---|---|
$n_{b}$ | 네트워크의 블록 수, 깊이라고도 합니다. |
$n_{c}$ | 각 블록의 셀 수 |
$n_{\text{ch}}$ | 숨겨진 계층의 채널 수 |
수용 필드는 깊이 매개 변수에 따라 달라지고 다음 수식으로 지정됩니다.
$t_{\text{rf}} = 4n_{b}\left(2^{n_{c}} - 1\right) + 1.$
수식을 통해 TCNForecaster 아키텍처를 보다 정확하게 정의할 수 있습니다. $X$를 각 행에 입력 데이터의 기능 값이 포함된 입력 배열로 지정합니다. $X$를 숫자 및 범주 기능 배열, $X_{\text{num}}$ 및 $X_{\text{cat}}$로 나눌 수 있습니다. 그런 다음, 다음 수식에 따라 TCNForecaster가 지정됩니다.
여기서 $W_{e}$는 범주 기능에 대한 임베딩 행렬이고, $n_{l} = n_{b}n_{c}$는 총 잔여 셀 수이고, $H_{k}$는 숨겨진 계층 출력을 나타내고, $f_{q}$는 예측 분포의 지정된 수량에 대한 예측 출력입니다. 이해를 돕기 위해 이러한 변수의 차원은 다음 표에 나와 있습니다.
변수 | 설명 | 차원 |
---|---|---|
$X$ | 입력 배열 | $n_{\text{input}} \times t_{\text{rf}}$ |
$H_{i}$ | $i=0,1,\ldots,n_{l}$에 대한 숨겨진 계층 출력 | $n_{\text{ch}} \times t_{\text{rf}}$ |
$f_{q}$ | 수량 $q$에 대한 예측 출력 | $h$ |
테이블에서 $n_{\text{input}} = n_{\text{features}} + 1$, 예측 변수/기능 변수 수+대상 수량. 예측 헤드는 최대 구간 $h$까지 모든 예측을 단일 패스로 생성하므로 TCNForecaster는 직접 예측 기능입니다.
AutoML의 TCNForecaster
TCNForecaster는 AutoML의 선택적 모델입니다. 사용 방법을 알아보려면 딥 러닝 사용을 참조하세요.
이 섹션에서는 AutoML이 데이터 전처리, 학습 및 모델 검색에 대한 설명을 포함하여 데이터를 사용하여 TCNForecaster 모델을 빌드하는 방법을 설명합니다.
데이터 전처리 단계
AutoML은 데이터에서 여러 전처리 단계를 실행하여 모델 학습을 준비합니다. 다음 표에서는 이러한 단계를 수행 순서대로 설명합니다.
단계 | 설명 |
---|---|
누락 데이터 채우기 | 누락된 값과 관찰 간격을 대체하고 필요에 따라 짧은 시계열 채우기 또는 삭제 |
일정 기능 만들기 | 요일, 필요에 따라 특정 국가/지역의 휴일과 같이 달력에서 파생된 기능을 사용하여 입력 데이터를 보강합니다. |
범주별 데이터 인코딩 | 문자열 및 기타 범주 형식의 레이블 인코딩. 여기에는 모든 시계열 ID 열이 포함됩니다. |
대상 변환 | 필요한 경우 특정 통계 테스트의 결과에 따라 대상에 자연 로그 함수를 적용합니다. |
표준화 | Z 점수는 모든 숫자 데이터를 정규화합니다. 정규화는 시계열 ID 열에 정의된 대로 기능별 및 시계열 그룹별로 수행됩니다. |
이러한 단계는 AutoML의 변환 파이프라인에 포함되므로 유추 시간에 필요할 때 자동으로 적용됩니다. 경우에 따라 단계에 대한 역연산이 유추 파이프라인에 포함됩니다. 예를 들어 AutoML이 학습 중에 대상에 $\log$ 변환을 적용한 경우 원시 예측은 유추 파이프라인에서 지수화됩니다.
학습
TCNForecaster는 이미지 및 언어에 대해 다른 애플리케이션에 공통되는 DNN 학습 모범 사례를 따릅니다. AutoML은 전처리된 학습 데이터를 예제로 나눕니다. 이러한 예제는 순서를 섞은 후 일괄 처리로 결합됩니다. 네트워크는 일괄 처리를 순차적으로 처리하며, 역전파 및 확률적 경사 하강법을 사용하여 손실 함수와 관련된 네트워크 가중치를 최적화합니다. 학습에는 전체 학습 데이터를 통과하는 많은 패스가 필요할 수 있습니다. 각 패스를 epoch라고 합니다.
다음 표에서는 TCNForecaster 학습에 대한 입력 설정 및 매개 변수를 나열하고 설명합니다.
학습 입력 | 설명 | 값 |
---|---|---|
유효성 검사 데이터 | 네트워크 최적화를 주도하고 과적합을 완화하기 위해 학습에서 유지되는 데이터의 일부. | 사용자가 제공하거나 제공되지 않은 경우 학습 데이터에서 자동으로 생성됩니다. |
기본 메트릭 | 각 학습 Epoch의 끝에 있는 유효성 검사 데이터에 대한 중앙값 예측에서 계산된 메트릭. 조기 중지 및 모델 선택에 사용됩니다. | 사용자가 선택합니다. 정규화된 평균 제곱근 오차 또는 정규화된 평균 절대 오차입니다. |
학습 epoch | 네트워크 가중치 최적화를 위해 실행할 최대 Epoch 수입니다. | 100. 자동화된 조기 중지 논리에 따르면 더 적은 수의 Epoch에서 학습을 종료할 수 있습니다. |
조기 중지 페이션스 | 학습이 중지되기 전에 기본 메트릭 개선을 대기하는 Epoch의 수입니다. | 20 |
손실 함수 | 네트워크 가중치 최적화를 위한 목표 함수입니다. | 10번째, 25번째, 50번째, 75번째, 90번째 백분위수 예측에 대해 평균을 구해 계산한 분위수 손실. |
Batch 크기 | 일괄 처리의 예제 수입니다. 각 예제에는 입력용 $n_{\text{input}} \times t_{\text{rf}}$, 출력용 $h$ 차원이 있습니다. | 학습 데이터의 총 예제 수에서 자동으로 결정됩니다. 최댓값은 1024입니다. |
포함 차원 | 범주 기능을 위한 포함 공간의 차원입니다. | 각 기능에서 고유 값 수의 4제곱근으로 자동 설정되며 가장 가까운 정수로 반올림됩니다. 임계값은 최솟값 3과 최댓값 100으로 적용됩니다. |
네트워크 아키텍처* | 네트워크의 크기와 모양을 제어하는 매개 변수: 깊이, 셀 수 및 채널 수. | 모델 검색에 의해 결정됩니다. |
네트워크 가중치 | 신호 혼합물, 범주 포함, 콘볼루션 커널 가중치 및 예측 값에 대한 매핑을 제어하는 매개 변수입니다. | 임의로 초기화된 다음, 손실 함수와 관련하여 최적화됩니다. |
학습 속도* | 경사 하강의 각 반복에서 네트워크 가중치를 조정할 수 있는 정도를 제어합니다. 수렴에 가깝게 동적으로 감소합니다. | 모델 검색에 의해 결정됩니다. |
드롭아웃 비율* | 네트워크 가중치에 적용되는 드롭아웃 정규화 정도를 제어합니다. | 모델 검색에 의해 결정됩니다. |
별표(*)로 표시된 입력은 다음 섹션에서 설명하는 하이퍼 매개 변수 검색에 의해 결정됩니다.
모델 검색
AutoML은 모델 검색 메서드를 사용하여 다음 하이퍼 매개 변수에 대한 값을 찾습니다.
- 네트워크 깊이 또는 콘볼루션 블록 수
- 블록당 셀 수
- 숨겨진 각 계층의 노드 수,
- 네트워크 정규화를 위한 드롭아웃 비율,
- 학습 속도
이러한 매개 변수의 최적 값은 문제 시나리오 및 학습 데이터에 따라 크게 달라질 수 있으므로 AutoML은 하이퍼 매개 변수 값의 공간 내에서 여러 다른 모델을 학습시키고 유효성 검사 데이터의 기본 메트릭 점수에 따라 가장 적합한 모델을 선택합니다.
모델 검색에는 다음 두 단계가 있습니다.
- AutoML은 12개의 "랜드마크" 모델에 대해 검색을 수행합니다. 랜드마크 모델은 정적이며 하이퍼 매개 변수 공간을 합리적으로 확장하도록 선택됩니다.
- AutoML은 임의 검색을 사용하여 하이퍼 매개 변수 공간을 계속 검색합니다.
중지 조건이 충족되면 검색이 종료됩니다. 중지 조건은 예측 학습 작업 구성에 따라 달라지지만, 몇 가지 예로는 시간제한, 수행할 검색 시도 수 제한 및 유효성 검사 메트릭이 개선되지 않는 경우의 조기 중지 로직이 있습니다.
다음 단계
- 시계열 예측 모델을 학습하도록 AutoML을 설정하는 방법을 알아봅니다.
- AutoML의 예측 방법론에 대해 알아봅니다.
- AutoML에서 예측에 대한 질문과 대답을 찾아봅니다.