1. 1주차 - 자바 프로젝트:
Hidden layer과 Backpropagation
20190557 장영욱
2. Artificial Neural network
- 인공 신경망: 생물의 신경 세포를 모방하여 설계된 컴퓨팅 시스템
Perceptron
- Perceptron(1958): Binary Classification(e.g. 1 or 0 / 개 or 고양이)를 수행할 수
있는 단층 신경망
- 구성 요소
- Input nodes: 입력 값을 받는 노드
- Weights: 각 input 노드에 할당되어 곱해지는 값
- Bias: weighted sum에 더해지는 상수
- Weighted sum: sum of all (input*weight)
- Activation function: weighted sum을
binary output으로 바꿔주는 함수
Bias
3. What perceptron can do: classification w/ linear boundary
- 퍼셉트론의 동작은 다음과 같은 식을 계산하는 것과 같다고 할 수 있음.
- z는 데이터 xi
’s에 대한 linear regression로 볼 수 있음
- z: weighted sum / wi
: weight of ith
node / xi
: input to ith
node / b: bias
- z는 input x에 대한 선형함수라고 할 수 있다.
- 이 때 input node를 2개, f(z)를 위와 같은 step function으로 설정한다고
가정하면
5. - (실제로는 x1
x2
z 3차원 좌표에 평면을 그리는 것)
- other examples
- input이 1차원인 경우에는 xz 좌표 상에 직선을 그리는 것
/ 차원을 확장하면 n차원 좌표에 hyperplane 그리기
What perceptron can do: classification w/ linear boundary
6. What perceptron cannot do: Non-linearly separable data
- 오른쪽 그래프에서 확인할 수 있듯 input의 XOR과 같은
linear boundary로 나눌 수 없는 데이터는 분류하지 못함
7. So what should we do?: add hidden layer
- Universal Approximation Theorem: “충분한 뉴런’’을 가진 1개의 hidden
layer(기존 퍼셉트론의 input과 ouput 사이에 추가된 한 개의 neural layer)를
통해 모든 연속 함수를 근사할 수 있음
11. So what should we do?: add hidden layer
- 즉, hidden layer을 추가함으로써 어떤 연속 함수의 일부 구간을 막대 모양에
가깝게 근사하는 함수들을 만들어서 합칠 수 있음. ⇒ curved surface 구현
가능 (non-linear)
17. Impl.n 2 - NN with Backpropagation + Gradient Descent
- Backpropagation: 신경망의 최종 output (prediction)과 참값 (label, ground
truth) 사이의 오차를 줄이는 방향으로 신경망의 weights와 bias를
업데이트하는 알고리즘
- Gradient descent: 최적화 알고리즘의 한 종류로 함수의 최솟값을 찾기 위해
사용됨.
- 둘을 함께 사용하는 과정은 다음과 같다.
- loss (objective)를 정의함: “줄이고 싶은 것이 정확히 무엇인가?”
- forward propagation (input을 신경망을 통해 기존 순서대로 처리해 output을
얻는 과정)을 통해 얻은 output과 label을 통해 loss를 계산함
- loss를 parameter에 대한 함수라고 생각했을 때, GD를 통해 loss를
최적화하는 방향으로 parameter를 업데이트 할 수 있음 (Chain rule 이용)
- Backpropagation 수행: output 쪽 layer에서 계산한 결과가 인접한 input 쪽
layer의 parameter에 대해 GD를 수행하는 데에 이용됨