Neural Network
Simple Mathematical Model (1)
인공 세포의 구조
입력 X → 연결 강도 W → Cell Body F → 출력 Y
- Cell body에서는 두가지 일이 발생한다.
- Summation (Signal 저장)
- Threshold 기준으로 output 결정
- Summation > 0 → 1
- Summation ≤ 0 → 0
Simple Mathematical Model (2)
1. Summation
- Weighted summation of inputs - 입력과 Weight를 곱해서 모두 더한다.
2. Non-linear threshold
- Summation을 하다가 threshold을 넘으면 output을 내게 된다.
- 보통 threshold를 0으로 설정한다.
- 그래프에서 S는 Summation이다. ⇒ 즉 S가 0을 넘게되면 1을 output으로 내게된다.
- 입력 (X)
- Connection Weignt (W)
- scale factor
- connection weight가 높으면 signal이 잘 전달됨.
- connection weight가 작으면 signal이 잘 전달 안됨.
- Cellbody
- Summation
- Activation Function (F)
- 판단함수 - S값의 결과를 기준으로 출력을 낼지 말지를 결정한다.
Simple Mathematical Model (3)
만들어진 뇌세포들을 모두 연결 하면 뇌가 만들어진다!
- Input X
- Connection Weight W
- 각 노드에서: Summation → Activate
Neural Network 구조
- 뇌세포 존재
- 뇌세포들이 Connection으로 이어져 있음
- 각 연결에 Connection Weight가 존재
- 각세포들의 입력 * Weight Summation → Activate
- 출력
Neural Network가 할 수 있는 것?
Pentinum(Digital Computer)가 할 수 있는 모든 것!
What a Perceptron Can Do?
X1과 X2로 이루어진 input space 에서
경계의 위쪽 값은 1을 출력하고, 경계의 아래쪽은 0을 출력하게 된다.
즉, Perceptron은 Linearly Separable Problems를 해결한다!
AND Operation
- Perceptron이 W 값을 결정하니까 AND 연산이 가능함.
- 1: True
- 0: False
- 빨간 점과 파란점을 구분하는 선을 찾아야 함. (이 선은 무한이 많이 존재)
OR Operation
NOT Operation
결론
Neural Network는 Digital Circuit, 즉 CPU까지 만들 수 있음
→ 디지털 컴퓨터가 할 수 있는 모든 일은, Neural Network도 그 이상으로 가능하다.
- AND와 OR의 차이는 Connection Weight만 바뀌고 있다는 점이다.
- Neuron 은 고정 (하드웨어, 껍데기)
- Connection Weight (프로그램, 기능)만 바꿔주면 연산이 변경된다. ⇒ Neuron의 기능이 바뀐다.
> 즉, W를 어떻게 설정하느냐가 가장 중요하다!
W를 설정하는 과정을 “학습” 이라고 한다.
자동 설정, 내가 계산하는 것이 아닌, Neural Network이 알아서 계산하는 것이 Neural Network의 장점.
>
What a Neural Network Can Do?
Neural Network 는 non-linearly separable problems 을 해결할 수 있다.
XOR Operation
- 직선으로는 빨강색, 파란색 구분이 안된다.
⇒ non-linearly separable problem
- 즉, Neuron이 아니라, Neuron Network를 활용해야한다.
- Neuron은 직선문제만 해결 가능.
- 1번 연산: AND Gate
- 2번 연산: OR Gate
- 최종 연산: XOR GATE
Multilayer Perceptron
- Signal은 앞 → 뒤 의 방향으로만 진행해야한다.
- 단, 빨간색 방향은 가능
- 현재 그림은 2Layer Structure 이다.
- 보통 2~3 Layer는 Shallow Nerwork이라고 한다.
- 보통 4 Layer부터 Deep Neural Network이라고 한다.
Multilayer Perceptron의 구조
- Input Layer ↔ Hidden Layer ↔ Output Layer
노드 개수
- Input Layer ↔ Hidden Layer 노드 개수
- input과 output의 노드 개수를 설정하는 것은 내가 해결하고자 하는 “문제” 이다.
- Hidden Layer 노드 개수
- 내가 결정하는 것이다.
- 10, 100, 10000, …
- 간단할 수록 노드 수가 적어도 되고, 복잡할 수록 노드 수가 많이 필요하다.
- 이에 대한 기준은 존재하지 않은다.
- 단, 그렇다면 노드 수가 많을 수록 좋은 것이 아닌가에 대한 질문에는 아니라고 답할 수 있다.
→ 왜냐하면 노드수가 너무 많아 똑똑한 Neuron Network에 단순한 문제를 주면 너무 과하게 생각해서 오류를 내뱉게 되기 때문이다.
레이어 개수
- Layer 수는 내 마음대로 설정할 수 있다.
- 간단할 수록 Layer 수가 적어도 되고, 복잡할 수록 Layer 수가 많이 필요하다.
- Layer를 많이 까는게 Node를 많이 까는 것보다 낫다.
- 단, 이것도 마찬가지로 무조건 많이 까는게 좋은 건 아니다.
- Q. 내가 어떤 문제를 풀 때 Layer를 몇개를 깔아야하는가?
A. 답과 기준 모두 없다.
- 단, 이론상 2Layer Structure면 Any Continuous function을 만들 수 있다.
- 3 Layer Structure면 Any function을 만들 수 있다.