TIMESTAMP
@200927 시작
심층 순방향 네트워크, 순방향 심층망, 또는 다층 퍼셉트론은 딥러닝의 본질적인 딥러닝 모델로(Deep feedforward networks, feedforward neural networks, multilayer perceptron), 특정 함수 에 근사하는 것이 목적이다.
이러한 모델을 순방향(feedforward)라고 한다. 함수를 통해 로부터 의 중간 계산을 거쳐 최종 결과 까지 정보가 흐르기 때문이다.
순방향 네트워크는 머신러닝 실무자에게 매우 중요하며, 상업적 응용의 기초를 형성한다.
순방향 신경망은 일반적으로 많은 다양한 함수의 조합으로 나타나기 때문에 네트워크(network)라고 불린다. 함수가 서로 어떻게 구성되어 있는지 나타내는 directed acyclic graph와 관련이 있다.
마지막으로, 이러한 네트워크는 신경과학으로부터 영감을 받았기 때문에 neural이라고 불리운다. 네트워크의 각 은닉층은 보통 벡터값이며, 은닉층의 차원은 모델의 width을 결정한다.
순방향 네트워크를 이해하는 한가지 방법은 선형모델로 시작하여 한계를 극복하는 방법을 생각하는 것이다.
선형모델을 에 대한 비선형 함수로 확장시키기 위해서 자체가 아니라 변환된 입력 에 선형모델을 적용할 수 있고, 이 때 는 비선형 변환이다.
Q. 그렇다면 어떻게 매핑 를 선택할 것인가?
피쳐를 학습하여 모델을 개선하는 이 일반적인 원칙은 이 챕터에서 다루는 순방향 네트워크를 넘어서 확장된다. 딥러닝에서 반복되는 주제로 이 책 전반을 걸쳐 설명되는 모든 종류의 모델에 적용된다.
순방향 네트워크의 간단한 예제로 이 챕터를 시작한다. 그 다음, 순방향 네트워크를 배포하는 데 필요한 각 설계 디자인을 다룬다.
순방향 네트워크의 아이디어를 견고히 하기 위해서, 매우 간단한 XOR 함수를 학습하는 예제를 살펴본다.
XOR 함수는 두 개의 이진값()에 대한 계산으로, 둘 중 하나만이 1일 때 XOR은 1을 반환하고 그 외에는 0이다. XOR 함수는 우리가 학습하고자 하는 타겟 함수 를 가진다. 우리의 모델은 함수를 가지고 학습 알고리즘은 파라미터 를 조정하여 최대한 를 에 유사하도록 만들 것이다.
이 간단한 예제에서 우리는 통계적인 일반화에는 관심이 없고 이 네트워크가 4개의 점 에 올바르게 작동하기를 원한다. 이 4개의 점에 네트워크를 학습할 것이고 학습 셋에 적합 시키고자 한다.
이 문제를 회귀 문제로 다룰 수 있고 손실 함수로 mean squared error를 사용할 수 있다. 이 예제의 수학을 가장 단순화 시키기 위해 이 손실함수를 선택한다.
전체 학습셋에 대해서 MSE 손실함수 다음과 같다.
모델의 형태 를 선택해야 한다. 와 로 구성된 의 선형모형을 선택했다고 가정한다면 모델은 다음과 같다.
정규방정식(normal equation)을 통해 닫힌 형태로 와 에 대해 를 최소화할 수 있다.
정규방정식을 풀면 과 가 나오며 선형모형은 단순히 모든 곳에 가 나온다. 왜 이런 일이 나오는가? 위의 그림은 왜 선형모형이 XOR 함수를 나타낼 수 없는지를 나타낸다. 이를 해결할 수 있는 한 방법은 다른 피쳐 공간을 학습하는 모형을 사용하여 선형모형으로 나타낼 수 있도록 하는 것이다.
여기서 두 개의 은닉유닛을 가지는 은닉층 한개의 순방향 네트워크를 사용할 것이다. 이 순방향 네트워크는 은닉유닛 의 벡터를 가지며, 이는 에 의해 계산된다. 은닉유닛의 값들은 다음 두번째 층의 입력으로 사용된다. 두번째 층은 네트워크의 결과층이다. 결과층은 여전히 선형회귀모형이지만 가 아닌 에 대한 것이다. 이 네트워크는 이제 두 개의 함수가 서로 체인된 형태로, , 이며 전체 모델은 이다.
함수 는 무엇을 계산해야 하는가? 선형모형은 지금까지 잘 작동했기에 또한 선형으로 할 수 있지만, 만약 그렇게 되면 전체 순방향 네트워크는 입력값의 선형 함수로 남게 될 것이다. 여기서 절편은 일단 무시하고 이고 라고 하면, 결국 이 되고 인 가 된다.
그러므로 피쳐를 설명하기 위해서는 비선형 함수를 반드시 써야 한다. 대부분의 신경망은 affine 변환을 사용하며, 이는 학습된 파라미터와 활성함수라고 불리는 고정된 비선형 함수에 의해 작동된다. 이 전략을 사용하여 로 정의하며, 이 때 는 선형변환의 가중치이고 는 바이어스이다. 이전에 선형회귀모형에서 가중치 벡터와 바이어스 스칼라 파라미터를 사용하여 입력값 벡터에서 결과값 스칼라로 affine 변환을 나타냈다. 지금은 벡터 로 부터 로 affine 변환하며, 바이어스 벡터 파라미터가 필요하다. 활성함수 는 보통 요소별(element-wise)로 적용되는 함수가 선택된다. 현대의 신경망에서는 ReLU (recified linear unit)을 사용하는 것이 기본적으로 추천되며, 이다.
전체 네트워크는 다음과 같이 쓸 수 있다.
XOR 문제의 솔루션은 다음과 같다.
이 공간에서 모든 예제는 기울기 1인 선을 따라 존재한다. 이 선을 따라 움직이면 결과는 에서 시작하여 이 되었다가 다시 이 되어야 한다. 선형모형은 이러한 함수를 표현할 수 없다. 각 샘플에서 값을 계산하기 위해서 recified 선형변환을 적용한다:
이 변환은 샘플 간의 관계를 변화시켰다. 더 이상 단일 직선에 따라 존재하지 않으며 선형모형이 이 문제를 풀 수 있도록 하는 공간에 존재한다.
마지막으로 가중치 벡터 를 곱하면, 이 신경망은 모든 예제에 알맞는 답을 가지게 된다.
이 예에서는 단순히 솔루션을 지정한 다음 오류가 0임을 보였다. 실제 상황에서는 수십억 개의 모델 파라미터와 수십억 개의 학습 샘플이 있을 수 있으므로 여기에서 한 것처럼 단순히 솔루션을 추측 할 수 없다.
대신 gradient 기반 최적화 알고리즘은 오류가 거의 발생하지 않는 파라미터를 찾을 수 있다. XOR 문제에 대해 설명한 솔루션은 손실 함수의 global minimum이므로 경사 하강법이 이 지점으로 수렴 할 수 있다. 경사 하강법도 찾을 수있는 XOR 문제에 대한 다른 동등한 솔루션이 있다. 경사 하강법이 수렴하는 점은 파라미터의 초기 값에 따라 다르다. 실제로 경사 하강법은 일반적으로 여기에서 제시 한 것과 같은 깨끗하고 이해하기 쉬운 정수 값 솔루션을 찾지 못한다.
신경망을 설계하고 학습하는 것은 경사하강법으로 다른 머신러닝 모델을 학습하는 것과 크게 다르지 않다. 섹션 5.10에서 최적화 과정, 비용함수, 모델을 지정하여 머신러닝 알고리즘을 구축하는 방법을 설명했다.
지금까지 살펴본 선형모형과 신경망 간의 가장 큰 차이점은 신경망의 비선형성으로 인하여 손실함수가 non-convex하게 된다는 것이다. 즉, 신경망은 일반적으로 반복적인 gradient 기반 최적화 옵티마이저를 사용하여 학습하는 것으로 비용함수를 매우 낮은 값으로 유도한다.
물론 선형회귀와 경사하강법을 사용하는 SVM와 같은 모델도 학습할 수 있고, 실제로는 학습셋이 굉장히 클 때 일반적인 방법이다. 이러한 관점에서 신경망 학습은 다른 모델 학습과 크게 다르지 않다. Gradient 계산은 신경망에서 조금 더 복잡하지만 여전히 효율적이고 정확하게 수행할 수 있다. 섹션 6.5에서는 역전파와 현대적인 일반화 버전을 사용하여 gradient을 구하는 방법을 설명한다.
다른 머신러닝 모델과 마찬가지로 gradient 기반 학습을 적용하기 위해서는 (1) 비용함수를 선택하고 (2) 모델의 결과값을 어떻게 나타낼 것인지를 선택해야 한다.
많은 경우에 parametric model은 분포 를 정의하고 maximum likelihood의 원칙을 사용한다. 이는 학습데이터와 모델의 예측 사이의 cross-entropy를 비용함수로 쓴다는 의미이다.
신경망을 학습하는 데 사용하는 총 비용함수는 여기서 다루는 비용함수 하나와 정규화를 합친다.
functional
calculus of variations
mean absolute error
[FIRST RESULT] Mean squared error (mean of y for each value of x)
[SECOND RESULT] Mean absolute error (median of y for each value of x)
Unfortunately, mean squared error and mean absolute error often lead to poor results when used with gradient-based optimization. Some output units that saturate produce very small gradients when combined with these cost functions. This is one reason that the cross-entropy cost function is more popular than mean squared error or mean absolute error, even when it is not necessary to estimate an entire distribution
logit
소프트맥스는 을 취하고 을 정규화하여 우리가 원하는 을 구할 수 있다.
maximum log-likelihood
maximize
과
how to choose the type of hidden unit to use in the hidden layers of the model.
- Rectified linear units are an excellent default choice of hidden unit.
- Some of the hidden units included in this list are not actually differentiable at { } ( ) 0 all input points.
Rectified linear units use the activation function
- Rectified linear units are easy to optimize because they are so similar to linear units. The only difference between a linear unit and a rectified linear unit is that a rectified linear unit outputs zero across half its domain. This makes the derivatives through a rectified linear unit remain large whenever the unit is active.
###UniversalApproximationPropertiesandDepth
###OtherArchitecturalConsiderations
###ComputationalGraph
###ChainRuleofCalculus
###RecursivelyApplyingtheChainRuletoObtainBackprop
###BackPt-ropagaionComputationinFullyConnectedMLP
###Symbol-to-SymbolDerivatives
###GeneralBack-Propagation
###Example:BackPt-ropagaionforMLPTraining
###Complications
###DifferentiationoutsidetheDeepLearningCommunity
###HigherOrderDerivatives