[오늘의 일지]
딥러닝 프로젝트 - 딥러닝 모델 선정
[상세 내용]
딥러닝 모델 선정
DNN
- 이제 어느 정도 피처에 대한 분석을 마무리하고 학습시킬 모델을 선정했습니다. 우선 가장 기본적인 모델인 DNN을 사용하기로 했습니다. DNN은 MLP의 확장된 형식으로서 히든 레이어가 더 많은 모델이라고 보시면 됩니다.
class NeuralNetwork(nn.Module):
def __init__(self):
super().__init__()
self.relu_stack = nn.Sequential(
nn.Linear(len(x_cols), layers[0]),
nn.ReLU()
)
for i in range(len(layers)-1):
self.relu_stack.append(nn.Dropout(0.25))
self.relu_stack.append(nn.Linear(layers[i], layers[i+1]))
self.relu_stack.append(nn.ReLU())
self.relu_stack.append(nn.Linear(layers[-1],1))
def forward(self, x):
output = self.relu_stack(x)
return output
def init_weights(m):
if isinstance(m, nn.Linear):
torch.nn.init.kaiming_normal_(m.weight)
m.bias.data.fill_(0.01)
if m.out_features == 1:
torch.nn.init.xavier_normal_(m.weight)
LSTM
- 강사님이 제시해 준 모델은 LSTM이었습니다. 데이터의 구조가 약간 시계열의 특성을 가지고 있어서 추천해 주신 거 같았습니다. 그래서 앞으로 이 두 개의 모델을 학습시켜 보고 더 좋은 성능을 가진 모델로 최종선정할 예정입니다.
class LSTMModel(nn.Module):
def __init__(self, input_size, hidden_size, num_layers, output_size):
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.fc = nn.Linear(hidden_size, output_size)
def forward(self, x):
# Initialize hidden and cell states
h0 = torch.zeros(self.num_layers, x.size(0), self.hidden_size).to(device)
c0 = torch.zeros(self.num_layers, x.size(0), self.hidden_size).to(device)
# LSTM forward pass
out, _ = self.lstm(x, (h0, c0))
out = self.fc(out[:, -1, :])
return out
# Hyperparameters
input_size = 17 # Number of features
hidden_size = 50
num_layers = 2
output_size = 1
[마무리]
오늘은 학습할 모델 두 개를 선정했고 간단하게 코드에 대해서 살펴보았습니다. 내일부터는 모델을 학습시키고 하이퍼파라미터도 수정해 가면서 최적의 성능을 낼 수 있도록 실험을 해봐야 될 거 같습니다. 그리고 강사님이 모델에 대해서는 크게 신경 쓰지 않아도 된다고 했습니다. 계속해서 변해가는 모델이 많기 때문에 어떤 원리로 사용되는지 잘 파악하고 있는 것이 중요하다고 했습니다.
반응형
'AI > AI 부트캠프' 카테고리의 다른 글
[AI 부트캠프] DAY 82 - 딥러닝 프로젝트 7 (0) | 2023.11.16 |
---|---|
[AI 부트캠프] DAY 81 - 딥러닝 프로젝트 6 (1) | 2023.11.15 |
[AI 부트캠프] DAY 79 - 딥러닝 프로젝트 4 (0) | 2023.11.11 |
[AI 부트캠프] DAY 78 - 딥러닝 프로젝트 3 (0) | 2023.11.10 |
[AI 부트캠프] DAY 77 - 딥러닝 프로젝트 2 (1) | 2023.11.09 |
댓글