1. 정의
1.1 생물학적 신경망과 인공 신경망 비교
💡 뉴런 구조

💡 생물학적 신경망과 인공 신경망 구성 비교

생물학적 뉴런은 단순하게 다른 뉴런에게 신호를 받아 또 다른 뉴런에게 신호를 전달한다. 뉴런은 수십억 개 이상 구성된 네트워크로 이뤄져 있어 신호의 흐름으로 복잡하고 다양한 활동을 할 수 있게 한다.
하지만 생물학적 뉴런이 가중치를 이용해서 출력을 만드는 것은 아니며 활성화 함수를 사용하는 것도 아니다.
1.2 ANN이란?
인공 신경망은 생물학적 뉴런의 모양을 본떠 만든 수학 모델로, 인간의 뉴런 구조와 활성화 작동 원리를 근간으로 input과 output과의 연관을 구현한 알고리즘이다. 하나의 인공 뉴런에서는 다수의 입력 신호를 받아서 하나의 신호를 출력한다.
2. 구조

신경망은 서로 연결된 노드(Node)의 집합으로 구성되어 있으며 여러 층으로 이뤄진다. 또한 모든 입력층과 출력층은 은닉층과 연결되며 중요도와 상관없이 가중치(w)가 랜덤으로 만들어진다.
✅ 입력층 (input layer)
- 입력 변수 개수
- 픽셀값 자체이고 특별한 계산을 수행하지 않음
✅ 은닉층 (hidden layer)
- 입력층과 출력층 사이에 존재하는 모든 층으로, 필수로 존재하는 것은 X
- 입력층으로부터 전달되는 변수값들의 선형 결합을 활성화 함수로 처리하여 다른 은닉층이나 출력층에 전달
- 은닉층 노드 개수는 분석자가 지정
✅ 출력층 (output layer)
- 출력 변수 개수
- 신경망의 최종 결과값 내보내는 층
2.1 가중치와 편향

2.1.1 가중치 (Weight)
= 중요도를 다르게 설정한다 !
- 입력층에서 다음 노드로 넘어갈 때 데이터마다 각각 다른 비중으로 다음 은닉층으로 전달시키기 위해 적용하는 값
- 뉴런의 돌기가 신호를 전달하듯 인공 신경망에서는 가중치가 그 역할을 함
- 각 입력 신호에는 고유한 가중치 부여
👉 가중치가 클수록 해당 신호 중요!
- 초기에 임의로 가중치를 부여한 뒤, 오차를 줄이는 방향으로 가중치 갱신
👉 맞추면 그대로 이용하고, 못맞추면 weight를 조정
2.1.2 편향 (Bias)
- 하나의 뉴런으로 입력된 모든 값을 다 더한 다음(=가중합) 이 값에 더해주는 상수
- 활성 함수를 거쳐 최종 출력 값을 조절하는 역할
👉 출력값을 결정짓는 중요 변수!
2.2 활성 함수
- 이전 층의 결과값을 변환하여 다른 층의 뉴런으로 신호를 전달
2.2.1 비선형 함수 사용
신경망에서는 활성 함수로 비선형 함수만을 사용한다.
선형 함수를 사용하면 신경망의 층을 깊게 쌓는 것에 의미가 없어지기 때문!
2.2.2 활성 함수의 필요성
-
비선형 문제를 해결
👉 활성 함수를 사용하면 입력값에 대한 출력값이 비선형적으로 나와서
층과 층 사이에서 데이터가 이동할 때 선형성을 잃도록!
-
이는 임계값과 비교해 0 or 1의 값을 반환한다.
👉 입력 신호의 총합이 임계값보다 크면1, 아니면 0을 출력한다.
2.2.3 활성 함수 종류
✅ 계단 함수

임계값을 경계로 출력이 바뀌는 함수로, 0 아니면 1로 극단적인 값을 전달하여 데이터의 정보를 손실시킨다는 단점을 가진다.
✅ 시그모이드 함수

- 시그모이드 함수는 우리가 흔히 아는 로지스틱 함수를 생각하자.
신경망에서는 퍼셉트론처럼 계단 함수를 이용할 수 없다.
이는 계단 함수를 곡선으로 형태를 변형시킨 함수로, 계단 함수보다 데이터의 정보를 보존할 수 있다.
- 계단 함수와 비교하면 선이 매끄럽기 때문에 입력에 따라 연속적인 실수값(0과 1 사이)을 출력할 수 있다.
👉 입력이 중요하면 큰 값을, 중요하지 않으면 작은 값을 출력한다.
- 층이 많아질수록 오차역전파 수행 시 기울기가 소실되는 문제 발생
✅ ReLu 함수(Rectified Linear Unit)

- 입력값이 양수인 경우에만 전달하는 함수
👉 입력이 0을 넘으면 그 입력을 그대로 출력, 이하면 0을 출력
- 시그모이드 함수가 가진 기울기 소실 문제를 완화해줌
3. 절차

- 입력층에서 시스템 외부로부터 신호 수신
- 미리 부여된 가중치와 계산 후 주어진 활성함수를 거쳐 은닉층으로 전파
- 2번과 같은 방식으로 그 다음 층으로 전해질 신호 계산
- 출력층에서 입력 값과 은닉층에서 전달 되는 출력값을 산출
4. 퍼셉트론 (Perceptron)
- perception + neuron 👉
인공 뉴런이라고도 부른다!
- 이진 분류 모델을 학습하기 위한 지도학습 기반의 알고리즘
- 인공신경망 이론을 설명한 최초의 알고리즘
4.1 단층 퍼셉트론 (SLP : Single-Layer Perceptron)

- 은닉층 없이 입력층과 출력층으로만 구성
- TLU 이론 + 가중치 연산
- 비선형 분류 데이터들을 학습할 수 없다는 한계
4.1.1 TLU (Threshold Logic Unit)
한계 논리 단위라고 하며, 생물학적인 신경망 이론을 단순화해서 논리, 산술, 기호 연산 기능을 구현할 수 있는 인공신경망 이론을 말한다.
💡 TLU 연산
흥분 줄기와 억제 줄기 두 가지 형태의 신호 줄기가 존재한다.
- 억제 줄기 중 하나라도 1이라는 신호를 가지면 TLU = 0
- 만약 억제줄기가 없거나 1을 가지지 않는다면 흥분 줄기의 값을 모두 더해 임계치를 넘으면 TLU = 1
💡 억제줄기가 없는 경우 TLU 예시

TLU의 신호는 0 또는 1을 가지며 이를 이용해 AND, OR 논리 연산에 적용할 수 있다
AND : 흥분줄기 값의 합 > 2(임계치) => 1 / 그렇지 않다면 0
OR : 흥분줄기 값의 합 < 1(임계치) => 0 / 그렇지 않다면 1
4.2 다층 퍼셉트론 (MLP : Multi-Layer Perceptron)

- 입력층과 출력층 사이에 1개 이상의 은닉층이 존재
- 기본 뉴런 연산으로 실행
- 데이터가 한 방향으로 전달되는 순방향 연결만을 갖는 구조
- 활성 함수로 시그모이드, ReLu 등 사용
- XOR 연산을 구현하지 못한다는 단층 퍼셉트론의 한계를 보완
어떠한 비선형 활성화 함수를 사용한다고 해도 단층 퍼셉트론으로는 해결할 수 X
👉 층을 추가함으로써 모델의 선형성을 비선형으로 바꿔주는 효과
- AND, NAND, OR를 조합하여 XOR 구현
💡 XOR
eXclusive OR을 뜻하는 논리 연산자
입력값 중 한 쪽이 1일 때만 1이고 둘 다 같은 값이면 0이 된다.
4.3 역전파 알고리즘
- 출력층에서 입력층 방향으로 오차를 전파시키며 각 층의 가중치를 업데이트하는 알고리즘
- 다중 퍼셉트론의 가중치 업데이트 문제를 해결
4.3.2 역전파 알고리즘의 목적
'순전파 → 역전파 → 가중치 업데이트 → 순전파 → ...'
이 과정을 반복하며 오차값을 0에 가깝게 만든다.
4.3.2 역전파 알고리즘 가중치 업데이트

순방향 알고리즘의 과정 (FNN)
- 입력층에 들어온 입력값을 순방향으로 전파하여 예측값 도출
→ 타깃과의 오차 계산한 후 역전파 알고리즘을 이용하여 가중치 업데이트
Reference
알고리즘으로 배우는 인공지능, 머신러닝, 딥러닝 입문 - 한빛미디어
초보자를 위한 신경망 딥러닝 입문 - 위키북스
[DL] 인공신경망
딥러닝의 핵심 개념 - 역전파 이해하기
신경망 (1) 단층 퍼셉트론