3. 신경망
가중치 매개변수의 적절한 값을 데이터로부터 자동으로 학습하는 능력이 신경망의 중요한 성질입니다. 신경망이 입력 데이터가 무엇인지 식별하는 처리 과정을 알아봅니다.
3.1 퍼셉트론에서 신경망으로
신경망의 예
입력층 ... 은닉층 ... 출력층
가중치를 갖는 층은 2개(입력층, 은닉층)뿐이기 때문에 ‘2층 신경망’이라고 합니다. 문헌에 따라 신경망을 구성하는 층수를 기준으로 ‘3층 신경망’이라고 하는 경우도 있습니다.
활성화 함수
입력 신호의 총합을 출력 신호로 변환하는 함수를 일반적으로 활성화 함수(Activation Function)이라 합니다.
즉, 입력 신호의 총합이 활성화를 일으키는지를 결정하는 역할을 합니다.
3.2 활성화 함수의 종류
퍼셉트론과 앞으로 볼 신경망의 주된 차이는 이 활성화 함수입니다.
계단 함수
활성화 함수로 쓸 수 있는 여러 후보 중에서 퍼셉트론은 계단함수를 채용하고 있습니다.
$$h(x)
=\begin{Bmatrix}
0 (x\leq 0)
\\
1(x> 0)
\end{Bmatrix}$$
시그모이드(Sigmoid, S자 모양 함수)
$$h(x)=\frac{1}{1+exp(-x)}, exp(x) = e^{x}$$
ReLU 함수
$$h(x)
=\begin{Bmatrix}
x (x >0)
\\
0(x \leq 0)
\end{Bmatrix}$$
입력이 0을 넘으면 그대로 출력하고, 0 이하이면 0을 출력하는 함수입니다.
3.3 다차원 배열의 계산
행렬의 곱에서는 대응하는 차원의 원소 수를 일치시켜야 합니다.
3.4 3층 신경망 구현하기
3.5 출력층 설계하기
출력층의 활성화 함수는 풀고자 하는 문제의 성질에 맞게 정합니다.
예를 들어 회귀에는 항등 함수, 2클래스 분류에는 시그모이드 함수, 다중 클래스 분류에는 소프트맥스 함수를 사용하는 것이 일반적입니다.
소프트맥스(softmax) 함수
$$y_{k}=\frac{exp(a_{k})}{\sum_{i=1}^{n}exp(a_{i})}, y_{k}=\frac{exp(a_{k}-C')}{\sum_{i=1}^{n}exp(a_{i}+C')}$$
(C'는 오버플로를 막을 목적으로 입력 신호 중 최대값을 입력하는 것이 일반적입니다.)
소프트 맥스 함수의 출력을 '확률'로 해석할 수 있습니다.
3.6 손글씨 숫자 인식
추론 과정을 신경망의 순전파라고도 합니다.
기계학습과 마찬가지로 신경망도 두 단계를 거쳐 문제를 해결합니다. 먼저 훈련데이터(학습 데이터)를 사용해 가중치 매개변수를 학습하고, 추론 단계에서는 앞서 학습한 매개변수를 사용하여 입력 데이터를 분류합니다.
MNIST 데이터셋
기계학습 분야에서 아주 유명한 데이터셋으로, 간단한 실험부터 논문으로 발표되는 연구까지 다양한 곳에서 이용하고 있습니다..
데이터를 특정 범위로 변환하는 처리를 정규화라 하고, 신경망의 입력데이터에 특정 변환을 가하는 것을 전처리라 합니다.
배치 처리
가령 이미지 100개를 묶어 한 번에 계산하는 것을 목적으로 합니다.
배치 처리를 수행함으로써 큰 배열로 이뤄진 계산을 하게 되는데, 컴퓨터에서는 큰 배열을 한꺼번에 계산 하는 것이 분할된 작은 배열을 여러 번 계산하는 것 보다 빠릅니다.
3.7 정리
1. 신경망에서는 활성화 함수로 시그모이드 함수나 ReLU 함수 같은 매끄럽게 변하는 함수를 이용한다.
2. 넘파이의 다차원 배열을 잘 사용하면 신경망을 효율적으로 구현할 수 있다.
3. 기계 학습 문제는 크게 회귀와 분류로 나눌 수 있다.
4. 출력층의 활성화 함수로 회귀에서는 주로 항등 함수를, 분류에서는 주로 소프트맥스 함수를 이용한다.
5. 분류에서는 출력층의 뉴런 수를 분류하려는 클래스 수와 같게 설정한다.
6. 입력 데이터를 묶은 것을 배치라 하며, 추론 처리를 이 배치 단위로 진행하면 결과를 훨씬 빠르게 얻을 수 있다.
'AI > DL' 카테고리의 다른 글
[빅리더_딥러닝_0729] (0) | 2021.07.29 |
---|---|
[빅리더_딥러닝_0728] (0) | 2021.07.28 |
[빅리더_딥러닝_0727] (0) | 2021.07.27 |
[딥러닝(Deep_Learning)] 퍼셉트론(Perceptron) (0) | 2021.07.26 |
[빅리더_딥러닝_0726] (0) | 2021.07.26 |