[실습] PyTorch로 구현해보는 Neural Network
PyTorch 모델의 기본 뼈대
init 함수
- NN을 구성하고 있는 layer들을 명시하고 initialize한다.
forward 함수
입력에 대한 forward pass을 정의한다.
class NeuralNetwork(nn.Module): def __init__(self): # Neural Network을 구성하는 layer들을 initialize하는 부분 super(NeuralNetwork, self).__init__() self.fc_layers = nn.Sequential( nn.Linear(784, 784 // 4) , nn.ReLU() , nn.Linear(784 // 4, 784 // 16) , nn.ReLU() , nn.Linear(784 // 16, 10) , nn.Sigmoid(), ) def forward(self, x): # Neural Network의 forward pass을 정의하는 부분 # x은 input tensor x = torch.flatten(x, start_dim=1) x = self.fc_layers(x) return x
torchsummary을 사용해서 모델의 summary 뽑기
Deep Learning, Neural Network 개념 요약
- Deep Learning이란 무엇이고 어디에서 기원하는가?
- 어떤 문제를 풀려고 하는 것인가?
- Neural Network의 기본 구성은 어떻고, 어떻게 학습시키는가?
- Deep Learning
- (NN의 출력값) Y^ = NN(X)가 (실제값) Y = f(X)에 최대한 잘 근사하도록 학습하는 것.
- 기본적인 NN의 구성
- Input Layer + (한 개 이상의) Hidden Layer + Output Layer
- 각 Layer의 Neuron의 구성
- 가중치 weight w와 활성 함수 activation fucntion으로 구성된다.
- NN이 학습되는 과정 = weight값이 최적화되는 과정
- Gradient Descent (경사 하강)을 통한 Loss fucntion (손실 함수)값을 최소화하도록, weight값을 최적화하고 점진적으로 모델의 예측 정확도를 높인다.
- 각 뉴론의 구성은 Weight, Activation Function으로 구성
- sigma(i=1~3) xi * wji : 이전 Layer의 출력값 xi은 가중치 wji에 곱해져서 합해진다. (weight multiplication --> Aggregation)
- sigma : 합해진 값들은 activation function sigma을 통과하여 해당 뉴런의 최종 출력값 hj을 구한다.
- 출처: 인프런 | 딥러닝 이론 + PyTorch 실무 완전 정복
'Deep Learning > PyTorch & Deep Learning' 카테고리의 다른 글
[실습] PyTorch 기초 - Transforms (0) | 2025.01.05 |
---|---|
[실습] PyTorch 기초 - Dataset과 DataLoader (0) | 2025.01.05 |
[실습] PyTorch 기초 - Tensor (0) | 2025.01.02 |
Deep Learning 실무 기초 개념 (0) | 2025.01.02 |
Deep Learning과 Neural Network (0) | 2025.01.01 |