728x90
1. Neural Network (Nonlinear model)
- 신경망은 선형모델과 활성함수(activation function)를 합성한 비선형모델(함수)
- Row Vector(행 벡터) 기준으로 해석 : 하이라이트된 부분끼리 Row Space 행렬 연산
- Row Space 행렬 연산 :
- 결과 행렬의 row 개수 = 왼쪽 행렬의 row 개수
- 왼쪽 행렬의 row를 하나씩 꺼내서 계산 후 다시 삽입
- vector * matrix 연산 수행 : 각 vector의 element를 오른쪽 Matrix의 Row에 분배해서 합하기
- 각 화살표마다 W_dp가 곱해진다 : X_d 에서 O_p로 향하는 화살표를 W_dp에 대응시킨다
2. Softmax Function
소프트맥스(softmax) 함수는 모델의 출력을 확률로 해석할 수 있게 변환해 주는 연산
- 분류 문제를 풀 때 선형모델과 소프트맥스 함수를 결합하여 예측
- 그러나 추론을 할 때는 원-핫(one-hot) 벡터로 최대값을 가진 주소만 1로 출력하는 연산을 사용해서 softmax 를 사용하진 않음
- 따라서 추론이 아닌 학습시에만 softmax 함수를 이용
- 첫번 째 줄에서 np.max로 처리하는 이유는 overflow를 방지하기 위함 + softmax의 기능은 그대로 유지가능
3. Activation Function (활성함수 = 비선형함수, nonlinear function)
- 신경망 : 선형모델과 활성함수를 합성한 함수(비선형모델)
- softmax 함수의 경우 vector를 input으로 받음 : 출력물의 모든 값을 고려해서 출력
- activation 함수의 경우 real number를 input으로 받음 : 다른 주소의 출력값을 고려 x, 해당 주소의 출력값만 고려
- 활성함수(activation function)는 R(실수) 위에 정의된 비선형(nonlinear) 함수 로서 딥러닝에서 매우 중요한 개념
- 벡터가 아니라 실수값으로 입력을 받음 -> 벡터에 활성함수를 씌우면 모든 요소에 활성함수를 적용
- 활성함수를 쓰지 않으면 딥러닝은 선형모형과 차이가 없음
- 시그모이도(sigmoid) 함수나 tanh 함수는 전통적으로 많이 쓰이던 활성함수지만 딥러닝에선 ReLU 함수(비선형함수)를 많이 씀
- Z : linear model (선형모델)
- O : 최종 선형모델 -> 손실함수를 구성
- H : neural network (신경망) = activation func(Z) : 활성함수에 선형모델을 합성함
- sigma : activation funcion (활성함수)
- H를 X대신 선형모델에 연속적으로 합성시킴
- 활성함수 sigma는 실수값으로 입력을 받기 때문에 벡터에 적용할 때도 각 벡터의 원소에 개별적으로 적용
- l = 1,..., L 까지 순차적인 신경망 계산을 순전파(forward propagation)라 부른다
- 학습이 아니라 주어진 입력이 왔을 때 출력을 반환하는 과정의 연산
4. Multi-layer
층을 여러개 쌓는 이유
- 이론적으로는 2층 신경망으로도 임의의 연속함수를 근사할 수 있음
- 이를 universal approximation theorem 이라 부름
- 그러나 층이 깊을수록 목적함수를 근사하는데 필요한 뉴런(노드)의 숫자가 훨씬 빨리 줄어들어 좀 더 효율적으로 학습이 가능
- 층이 얇으면 필요한 뉴런의 숫자가 기하급수적으로 늘어나서 넓은(wide) 신경망이 되어야 한다
** 층이 깊다고 해서(복잡하다고 해서) 효율적으로 목적함수를 근사할 수 있는 것은 맞으나, 최적화가 더 쉬운 건 아님
-> 함수가 복잡할수록 최적화에 많은 노력을 기울어야 함
5. Backpropagation (역전파 알고리즘)
- 딥러닝은 역전파(backpropagation) 알고리즘을 이용하여 각 층에 사용된 패러미터 {W(l), b(l)}l=1~L 를 학습
- 손실함수를 L 이라 했을 때 역전파는 ∂L/∂W(l), ∂L/∂b(l) 정보를 계산할 때 사용
- 각 층 패러미터의 그레디언트 벡터는 윗층부터 "역순으로 계산"하게 됨
- 역전파는 l = L...,1 순서로 연쇄법칙을 통해 그레디언트 벡터를 전달
- 각 노드의 텐서 값을 컴퓨터가 기억해야 미분 계산이 가능 -> 순전파 보다 메모리를 더 사용
728x90