실시간 리스크 관리
이제 배운 neural networks를 활용해 (거의) 실시간으로 리스크 관리를 해 볼 차례예요.
14일 이동 창의 자산 수익률은 현대 포트폴리오 이론으로 최소 변동성 포트폴리오 시계열을 만들기에 충분한 데이터를 제공해요. 2장에서 보셨듯이, 이 minimum_vol 포트폴리오 가중치가 neural network의 학습 값이 됩니다. 이는 (1497 x 4) 행렬이에요.
입력은 각 효율적 포트폴리오에 대응하는 주간 average_asset_returns 행렬입니다. 이것도 (1497 x 4) 행렬이에요.
적절한 입력 차원을 갖는 Sequential neural network를 만들고, 은닉층은 두 개로 구성하세요. 이 네트워크를 처음부터 학습하면 시간이 너무 오래 걸리므로, 동일한 유형의 미리 학습된 pre_trained_model을 사용해 새로운 자산 가격 벡터에 대한 포트폴리오 가중치를 예측할 거예요.
이 연습은 강의의 일부입니다
Python을 활용한 정량적 리스크 관리
연습 안내
- 입력층 1개, 은닉층 2개, 출력층 1개로 구성된 Sequential neural network를 만드세요.
- 새로운 자산 데이터
asset_returns가 주어졌을 때,pre_trained_model을 사용해 최소 변동성 포트폴리오가 무엇인지 예측하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Create neural network model
model = ____()
model.add(Dense(128, input_dim = ____, activation = 'relu'))
model.____(____(64, activation = 'relu'))
model.____(____(____, activation = 'relu'))
# Use the pre-trained model to predict portfolio weights given new asset returns
asset_returns = np.array([0.001060, 0.003832, 0.000726, -0.002787])
asset_returns.shape = (1,4)
print("Predicted minimum volatility portfolio: ", pre_trained_model.____(asset_returns))