1. 인공 신경망 (Artificial Neural Network) 이란?
신경망이라고 불리는 Neural Network는 딥러닝에서 가장 기본이 되는 개념이다. 신경망이란 인간의 뇌의 신경세포인 뉴런의 연결 구조를 말하며, 이러한 신경망을 본떠 만든 네트워크 구조를 인공신경망(Artificial Neural Network)이라고 부른다.
인체에 자극이 들어오게 되면 (input) 뉴런은 서로 간에 신호를 전달하여 (neural network) 우리가 특정 신체적 활동을 하도록 한다(output). 이러한 과정을 컴퓨터로 구현한 것이 바로 인공 신경망이다.
2. Neural Network의 구조와 작동 방식
기본적인 Neural Network의 구성은 한 개의 input layer, 한 개 이상의 hidden layer, 그리고 한 개의 output layer로 구성되어 있다.
- 각 Layer는 뉴런들로 구성된다
- 각 뉴런은 다음 Layer의 뉴런과 edge로 연결되어 있다
- 즉, 각 뉴런은 이전 Layer의 뉴런들의 출력값을 입력값으로 받는다
- 각 뉴런은 가중치 행렬 $W$와 활성화함수로 구성된다
1) Input Layer
- $x_i$ : Input node $i$에 입력되는 값
- Input Layer의 노드들이 출력하는 값
- 다음 Layer의 input 값으로 전달
- 입력 값의 개수 = Input Layer의 size = 입력 Vector의 길이 = Feature의 개수
2) Hidden Layer
- $h_j$: Hidden Layer의 j번째 노드가 출력하는 값
- 이전 Layer가 출력한 값을 input으로 사용
- 다음 Layer의 input 값으로 전달
- 값을 출력은 하지만 실제로 나타나지는 않기 때문에 Hidden Layer. 데이터에 대한 학습이 이 부분에서 이루어짐
3) Output Layer
- 출력계층은 은닉 계층 다음에 오는 전결합 계층이다.
- 신경망의 외부로 출력 신호를 전달하는 데에 사용된다.
- 신경망의 기능은 출력 계층의 활성 함수에 의해 결정된다.
- Output Layer의 Size = 출력의 Scalar 수 = 출력 Vector의 길이
정리하자면,
각 뉴런은 weight와 활성화함수로 구성되어 있다. 이전 Layer의 출력값 $x_i$는 가중치 $w_ji$에 곱해져서 합쳐진다. 합쳐진 값들은 activation function을 통과해서 출력된다.
$$\begin{bmatrix}
y_1 \\
y_2 \\
y_3 \\
\end{bmatrix}
= \begin{bmatrix}
w_{11} & w_{12} & w_{13} \\
w_{21} & w_{22} & w_{23} \\
w_{31} & w_{32} & w_{33} \\
\end{bmatrix}
\begin{bmatrix}
x_1 \\
x_2 \\
x_3 \\
\end{bmatrix} $$
3. PyTorch를 이용한 구현
대표적인 메서드:
- __init__ : 신경망에서 사용되는 모든 모듈을 정의한다
- forward : 신경망에서 사용되는 모든 연산을 정의한다
Neural Network" target="_blank" rel="noopener" data-mce-href="http://Neural Network">http://Neural Network
'AI & Data > Deep Learning' 카테고리의 다른 글
[딥러닝] PyTorch - Transforms (1) | 2024.08.17 |
---|---|
[딥러닝] PyTorch - Dataset and Data Loader (0) | 2024.08.17 |
[딥러닝] PyTorch - Tensor (0) | 2024.08.16 |
[딥러닝] DL 실무 기초 개념 (0) | 2024.08.16 |
[딥러닝] Gradient Descent (경사하강법) (1) | 2024.04.04 |