[딥러닝개론] 신경망 기초
2023. 12. 5. 11:00ㆍAI/딥러닝기초
신경망 기초
신경망에서 '층을 쌓는다'는 것
- 선형회귀 과정을 통해, '이전 층의 특성들의 가중합으로 새로운 특성들을 만들어내는 것'이 층을 쌓는 이유이자 의미라고 할 수 있다.
- 이 과정을 반복해 여러 층을 쌓고 반복적으로 학습을 진행하면, 처음 입력으로 주어진 특성들의 조합으로부터 생성된 수많은 특징들이 추출(extract)되어 모델이 훨씬 더 상세한 정보를 학습할 수 있게 된다.
은닉층(hidden layer)
- 신경망에서 입력과 출력을 제외한 층들.
은닉층들을 여러 층으로 깊게(deep) 쌓을 때 주의할 점.
새로 만들어지는 특징들, 즉 노드(node)들이 각각 비선형(non-linear) 변환을 거치지 않는다면 아무리 깊게 층을 쌓더라도 단 하나의 은닉층보다 나은 효과를 내지 못한다.
비선형변환을 해야 하는 이유
두 개의 선형함수가 있다고 가정.
f(x) = 2x + 1
g(x) = -x + 1
input → f(x) → g(x) → output에서
input = 10일 경우, output = -11.
f(x) → g(x)
이 두 함수(선형함수)를 통과하는 변환은 f와 g의 합성함수 하나로 표현할 수 있다.
f(x) → g(x) = h(x) = -2x + 9
그렇기 때문에, 은닉층을 수십 층 쌓더라도 그 변환이 단지 선형변환이라면 우리는 하나의 층으로 그 변환을 표현할 수 있다.
이렇게 된다면, 은닉층을 깊게 쌓아 모델이 심층적인 학습을 할 수 있게 하려는 목적은 달성되지 못한다.
이를 해결하기 위해서는 바로 이전 층의 선형결합을 통해 새로운 특성이 만들어질 때마다, 그 값을 다음 층으로 전달하기 전에 비선형 변환을 시켜주면 된다.
비선형 변환 과정
1. 선형결합을 통해 새로운 특성노드의 값이 정해진다.
이전층의 출력 = (w1 * 특성 1) + (w2 * 특성 2) + (w3 * 특성 3) + bias
2. 그 값에 비선형 변환을 적용한다.
대표적인 비선형 함수
- 시그모이드(sigmoid)
- X축에 해당하는 입력에 대해서 0~1 사이의 값을 반환한다.
- 모든 실수를 입력 범위로 가지면, 0에서 1 사이의 값을 반환하는데 이는 일종의 '스위치' 같은 역할을 한다.
신경망 모델의 모티브가 된 실제 인간의 뇌 신경망에서는, 이전 층의 뉴런들의 신호들이 조합되어 일정 임계값(threshold)을 넘을 경우에만 다음 층으로 신호가 전달되는 시스템이 존재한다.
- 이와 마찬가지로, 인공신경망에서도 이전 층의 특성들이 선형결합을 통해 새로운 특성을 생성하는데, 이 값이 임계값을 넘는지 안 넘는지에 따라 0과 1 둘 중 하나에 가까운 값으로 변환하는 시그모이드를 적용하는 것이다.
- 참고할만한 추가 자료.
https://brunch.co.kr/@cookery/103
어떤 수가 들어와도 0~1 사이의 값을 반환하는 시그모이드의 특징 때문에, 층이 점점 더 쌓이고 신경망이 깊어질수록 기울기(gradient) 값이 0에 가까워지게 된다.
따라서 시그모이드를 비선형 함수로 사용하는 경우에, 층이 점점 많아지고 신경망이 깊어질 때 학습이 잘 이루어지지 않는 현상이 발생한다.
이를 기울기 소실(gradient vanishing)이라고 한다.
- 렐루(ReLU)
- 렐루를 비선형 함수로 사용하는 경우에는 기울기 소실이 발생하지 않는다.
- 깊은 신경망이 가능해지면서 인기를 얻기 시작했고, 현재 가장 많이 사용되는 활성화 함수로 꼽힌다.
렐루 수식
f(x) = 0 (x <0)
f(x) = x (x>=0)
가중치 행렬
- 가중치 행렬의 첫 번째 열벡터가 데이터 1 벡터와 선형결합을 통해 '새 특성 1' 결과값을 만든다.
- 두 번째 가중치 벡터와 데이터 1 벡터의 선형결합은 '새 특성 2' 결과값을 만든다.
- 위의 연산은 아래 그림의 연산과 같다.
'AI > 딥러닝기초' 카테고리의 다른 글
[딥러닝개론] 순전파와 역전파 (1) | 2023.12.12 |
---|---|
[딥러닝개론] 신경망 학습 - 경사하강법(gradient descent) (2) | 2023.12.05 |
[딥러닝개론] 선형회귀 (0) | 2023.12.04 |
[딥러닝 개론] 기본 개념 (2) | 2023.12.04 |