4.1 인공 신경망의 한계와 딥러닝 출현
퍼셉트론
선형 분류기, 인공 신경망에서 이용하는 구조(입력층, 출력층, 가중치로 구성됨)
다수의 신호(흐름 有)를 입력으로 받음 → 하나의 신호를 출력
신호를 입력으로 받아 '흐른다/안 흐른다(1 또는 0)'는 정보를 앞으로 전달하는 원리로 작동
입력이 두 개(x1, x2)가 있을 때, 컴퓨터가 논리적으로 인식하는 방법
AND 게이트
모든 입력이 1일때 작동
x₁ | x₂ | y |
0 | 0 | 0 |
1 | 0 | 0 |
0 | 1 | 0 |
1 | 1 | 1 |
AND 게이트에선 정상적으로 데이터 분류(검은색, 흰색 점)가 됨
OR 게이트
입력에서 둘 중 하나만 1이거나 둘 다 1일때 작동
x₁ | x₂ | y |
0 | 0 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 1 |
OR게이트에서도 정상적으로 데이터 분류가 됨
XOR게이트(배타적 논리합)
두개 중 한 개만 1일 때 작동
x₁ | x₂ | y |
0 | 0 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 0 |
XOR 게이트는 데이터가 비선형을 분리되기 때문에 제대로 된 분류가 어려움
∴ 단층 퍼셉트론에선 AND, OR에 대해선 학습이 가능하지만, XOR에 대해선 학습이 불가능
≫ 심층 신경망을 둬서 비선형적으로 분리되는 데이터에 대해서 학습이 가능하도록 다층 퍼셉트론을 고안
//심층 신경망(딥러닝) : 입력층과 출력층 사이에 중간층(은닉층)이 여러 개 있는 신경망
4.2 딥러닝 구조
딥러닝이란?
여러 은닉층을 가진 인공 신경망을 사용하여 학습을 수행하는 것
4.2.1 딥러닝 용어
딥러닝 구성 : 입력층 + 출력층 + 두 개 이상의 은닉층 //입력 신호 전달에 다양한 함수 사용
딥러닝 구성 요소
구분 | 구성 요소 | 설명 |
층 | 입력층 | 데이터를 받아들이는 층 |
은닉층 | 모든 입력 노드로부터 입력 값을 받아 가중합을 계산하고, 이 값을 활성화 함수에 적용하여 출력층에 전달하는 층 |
|
출력층 | 신경망의 최종 결괏값이 포함된 층 | |
가중치(weight) | 노드와 노드 간 연결 강도 | |
바이어스(bias) | 가중합에 더해주는 상수. 하나의 뉴런에서 활성화 함수를 거쳐 최종적으로 출력되는 값을 조절하는 역할을 함 | |
가중합(전달 함수) | 가중치와 노드의 곱을 합한 것 | |
함수 | 활성화 함수(activation function) | 신호를 입력받아 이를 적절히 처리하여 출력해주는 함수 |
손실 함수(loss function) | 가중치 학습을 위해 출력 함수의 결과와 실제값 간의 오차를 측정하는 함수 |
가중치
입력값이 연산 결과에 미치는 영향력을 조절하는 요소
예) w₁값이 0 또는 0과 가까운 0.001이라면, x₁이 아무리 큰 값이어도 x₁×w₁값은 0이거나 0에 가까운 값이 됨
≫ 입력값의 연산 결과를 조정하는 역할을 하는 게 가중치
가중합(전달 함수)
각 노드에서 들어오는 신호 × 가중치가 다음 노드로 전달되는데, 이 값들을 모두 더한 합계
가중합 공식
//바이어스 : 활성화 함수를 거쳐, 최종적으로 출력되는 값을 조절하는 역할
활성화 함수
전달 함수에서 전달받은 값을 출력할 때, 일정 기준에 따라 출력값을 변화시키는 비선형 함수
//비선형 함수 : 직선으로 표현할 수 없는 데이터 사이의 관계를 표현하는 함수
활성화 함수 예 : 시그모이드, 하이퍼볼릭 탄젠트, 렐루 함수
① 시그모이드 함수
- 선형 함수의 결과를 0~1 사이에서 비선형 형태로 변형해줌
- 사용 분야 : 로지스틱 회귀같은 분류 문제를 확률적으로 표현할 때
- 단점 : 기울기 소멸 문제(딥러닝 모델의 깊이가 깊어지면 기울기가 사라짐) → 딥러닝 모델에서 잘 사용X
수식
② 하이퍼볼릭 탄젠트 함수
- 선형 함수의 결과를 -1~` 사이에서 비선형 형태로 변형해줌
- 단점 : 시그모이드에서 결과값의 평균이 0이 아닌 양수로 편향된 문제를 해결하는데 사용했으나, 여전히 기울기 소멸 문제 발생
렐루 함수
- 입력(x)이 음수일땐 0을 출력, 양수일땐 x를 출력
- 일반적으로 은닉층에서 사용됨
- 장점 : 경사 하강법에 영향X → 빠른 학습 속도(하이퍼볼릭 대비 6배 빠름), 기울기 소멸 문제 발생X
- 단점 : 음수 값을 입력받으면 항상 0을 출력 => 학습 능력 감소 => 이를 예상하고 '리키 렐루' 함수 등을 사용
리키 렐루 함수
입력값이 음수면, 0이 아닌 0.001처럼 매우 작은 수를 반환
→ 입력값이 수렴하는 구간이 제거됨(렐루 함수를 사용할 때 생기는 문제를 해결)
소프트맥스 함수
- 입력값을 0~1 사이에 출력되도록 정규화 → 출력값들의 총합이 항상 1이 되게 함
- 사용 분야 : 딥러닝에서 출력 노드의 활성화 함수로 많이 사용
수식