본문 바로가기

학습공간/데이터마이닝방법론2

[2주차] 대규모 기계학습 (최적화 방법론)

반응형

 최적화 방법론 (Optimization)

볼록 최적화(Convex Optimization) 방법론이며, 다차원 공간에서의 대규모 기계학습을 위한 컨벡스 프로그래밍(Convex Programming for large-scale Machine Learning) 내용과 딥 러닝(Deep Learning) 기초 개념인 MLP(Multi Layer Perceptron) 내용에 대해 다룬다.

 

 ① 컨벡스 프로그래밍 - 예제 (SVM, multiclass SVM)

이제부터 최적화에 대해 조금 더 집중적으로 공부하도록 한다. 이에 앞서 데이터마이닝연구세미나 과목에서 다루었던 최적화의 개념과 KKT 조건, 라그랑주 승수법을 복습하고 컨벡스 프로그래밍 문제를 살펴보도록 한다.

 

• 최적화 (Optimization)
- SLT 에서 개발 된 M/L 모형에 대한 해법을 제시한 분야
\[ 𝑔* = \operatorname*{arg\,min}\limits_{𝑔 ∈ 𝒢}\, 𝑅_𝑛{(𝑔)}\, {\color{Gray}\mbox{를 찾는 Learning Algorithm}} \]
- Optimization 의 일반 형태는, 목적 함수를 최소화 하는 것이다.
\[ \mbox{min 𝜽(𝑥)}\, :\, 𝑅^𝑛 → 𝑅\, :\, \mbox{objective function} \]
\[ \begin{cases} {ℎ_𝑖}(𝑥)=0, & 𝑖=1,⋯,𝑚 \\ {𝑔_𝑝}(𝑥)≥0, & 𝑝=1,⋯,𝑡 \end{cases} \]

  𝑆 = {𝑥 ∈ Rⁿ : \({ℎ_𝑖}(𝑥)\), 𝑖=1,⋯,𝑚 ; \({𝑔_𝑝}(𝑥)\)≥0, 𝑝=1,⋯,𝑡}
  : feasible set (feasible region) ⋯ 조건을 만족하는 모든 𝑥
- 벡터로 나타내보면,
\[ ℎ(𝑥)= \begin{bmatrix} ℎ_1(𝑥) \\ ⋮ \\ ℎ_𝑚(𝑥) \end{bmatrix}\, \, \, 𝑔(𝑥)= \begin{bmatrix} 𝑔_1(𝑥) \\ ⋮ \\ 𝑔_𝑡(𝑥) \end{bmatrix} \]
간단하게 표현하면, \( \begin{cases} \mbox{minimize} & \mbox{𝜽(𝑥)} \\ \mbox{subject to} & \mbox{ℎ(𝑥) = 0} \\ & \mbox{𝑔(𝑥) ≥ 0} \end{cases} \)
Equality constraints, Inequality constraints ...

  • KKT 조건(Karush–Kuhn–Tucker conditions)
  [Definition] Lagrangian 
  \[ 𝐿(𝑥, 𝜇, 𝜋) = 𝜽(𝑥) - 𝜇ℎ(𝑥) - 𝜋𝑔(𝑥) \]
  \( {\color{Blue}\mbox{Lagrangian multiplier (dual variable) }} \begin{cases} {𝜇 = [𝜇_1,⋯,𝜇_𝑚]} \\ {𝜋 = [𝜋_1,⋯,𝜋_𝑡]} \end{cases} \)
  라그랑지안 승수(𝜇, 𝜋)가 다음과 같을때 1-order KKT 필요 조건을 보면,

  first-order KKT necessary condition for optimality
  만약, 𝑥̅ 가 optimal point 이면,
  다음을 만족하는 𝑢̅ 와 𝜋̅ 가 존재한다.
  \( {\color{Red}\mbox{Primal Feasibility }} \begin{cases} {ℎ(𝑥̅) = 0} \\ {𝑔(𝑥̅) ≥ 0} \end{cases} \)
  라그랑지안을 𝑥 에 대해 미분(𝛻𝑥, gradient) 하면,
  \( {\color{Red}\mbox{Dual Feasibility }} \begin{cases} {𝛻𝑥 𝐿(𝑥̅, 𝑢̅, 𝜋̅) = 0} \\ {𝜋̅ ≥ 0} \end{cases} \)
  \( {\color{Red}\mbox{CSC: Complementary Slackness Condition }} \begin{cases} {𝜋̅𝑔(𝑥̅) = 0} \end{cases} \)
  ※ 참고로 이 조건들은 뒤의 SVM 해석에 필요한 개념이니 숙지하도록 한다.
• 컨벡스 프로그래밍 문제(Convex Programming Problem)
- Convex 문제라고 한다면, 𝜽(𝑥) 와 feasible set 𝑆 가 독립 Convex 하고, local min 이 global min 이다.
\[ \begin{pmatrix} 𝜽(𝑥) : convex \\ 𝑆 : convex \end{pmatrix}\, : local min → global min \]
- 잠깐 비선형 계획법에서 솔루션 형태를 살펴보면, 아래와 같은 부분이 local min, global min (𝑥*) 이다.
Minimization of Convex Function

  ※ 다시 말하면, 컨벡스 문제일 경우 local minimum 을 구하면 된다.

  * 대규모 기계학습 (Large-Scale Machine Learning)
  - Convex optimization : logistic regression, SVM 전형적인 컨벡스 문제
  - highly non-linear, non-convex : DNN 전형적인 컨벡스하지 않은 문제
  
  \[ \begin{cases} {𝑥 ∈ 𝑅^𝑑 :}{\color{Blue}\mbox{𝑑 : 수만~수백만, 수억}} \\ \mbox{입력 Data 수 :}{\color{Blue}\mbox{𝑛 : 수억}} \\ \mbox{Parameter 수 :}{\color{Blue}\mbox{수억, 수천억}} \end{cases} \]
  ※ 다차원 피쳐 스페이스, 대규모 입력 데이터, 구해야 할 파라메터 수의 증가...

  * Methods (따라서 대규모 학습에 적합한 방법들을 소개)
  • Steepest descent (가파른 하강)
  • Conjugate gradient (켤례 기울기)
  • Newton method (뉴턴)
  • Quasi-newton Method (준뉴턴)
  • Augmented lagrangian (증강 라그랑지안)
  • Proximal (근위)
  • ADMM (승수 교번)
  등, 다양한 방법들이 있고... 여기에 Stochastic Version 이 존재한다.
  (이 버전이 일반 버전과 어느정도 퍼포먼스 차이가 있는지 공부한다.)

  * SVM (Support Vector Machine) : Vapnik 이 SLT 만들면서 같이 만듦
  - Find the classifier that maximize the margin and minimize the margin error simultanously.
  VC 이론의 창시자인 Vapnik이 SLT 를 만들면서 같이 만든 모델이 SVM 이다.
  마진을 크게하고 동시에 마진 에어를 축소시키면서 분류기를 찾는 기법으로 중요한 모델 중 하나.
  𝒳 : \(𝑅^𝑑\)
  𝒴 = {-1, 1}
  ℋ = {𝑥 ∈ \(𝑅^𝑛\) | 𝑤\({}^𝑇\)𝑥 +𝑤\({}_0\) = 0} ⋯ hyperplanes
  Training data set {(𝑥\({}^𝑖\), 𝑦\({}_𝑖\))} \(\sideset{_{}^{}}{_{𝑖=1}^𝑛}{}\)
  Classifier 𝑔(𝑥) = 𝑠𝑖𝑔𝑛(𝑤\({}^𝑇\)𝑥 +𝑤\({}_0\))
  ※ 𝑤\({}^𝑇\)𝑥 +𝑤\({}_0\) 0 보다 크면 class:1 로 할당하고, 작으면 class:-1 로 할당한다.
  logistic 0-1 function 일 때는 어떤 값이 0 보다 크다/작다로 할당을 했지만,
  클래스가 {-1, 1} 경우에는 함수 값의 사인을 보고 결정하는 것이 일반적인 형태이다.

  ▶ 대표적인 3가지 모델
  (1) Hand margin : linearly separable 한 경우
두 클래스를 완전히 나눌 수 있을 때

  \[\operatorname*{min}\limits_{𝑤} \frac{1}{2} 𝑤^𝑇𝑤 \]
  subject to \({𝑦_𝑖 (𝑤^𝑇𝑥^𝑖 +𝑤_0) ≥ 1, ∀ 𝑖}\) ⋯ 전형적인 convex 문제
  ⋯ objective 가 quadratic 하고, constraint 가 모두 linear 한 전형적인 문제
  dual
  \[\operatorname*{max}\limits_{𝛼} -\frac{1}{2} \sum\limits_{𝑖, 𝑗} {𝑦_𝑖 𝑦_𝑗 (𝑥^𝑖)^𝑇 𝑥^𝑗 𝛼_𝑖 𝛼_𝑗} + \sum 𝛼_𝑖 \]
  subject to \( \sum {𝑦_𝑖 𝛼_𝑖 = 0}\)
  \({𝛼_𝑖 ≥ 0, ∀ 𝑖=1,⋯,𝑛}\) ⋯ 보통 dual 문제를 풀어서 해결

  (2) 1-norm soft margin : linearly separable 하지 않을 때, 약간의 에러 허용
  \[\operatorname*{min}\limits_{𝑤, 𝜉} \frac{1}{2} 𝑤^𝑇𝑤 + 𝐶 \overset{𝑛}\sum\limits_{𝑖=1} 𝜉_𝑖 \]
  subject to \({𝑦_𝑖 (𝑤^𝑇𝑥^𝑖 +𝑤_0) ≥ 1-𝜉_𝑖, ∀ 𝑖}\)
  \({𝜉_𝑖 ≥ 0, ∀ 𝑖}\)
  ⋯ ℋ 으로 가를 수 없을 때...
  dual
  \[\operatorname*{max}\limits_{𝛼} -\frac{1}{2} \sum\limits_{𝑖, 𝑗} {𝑦_𝑖 𝑦_𝑗 (𝑥^𝑖)^𝑇 𝑥^𝑗 𝛼_𝑖 𝛼_𝑗} + \sum 𝛼_𝑖 \]
  subject to \( \sum {𝑦_𝑖 𝛼_𝑖 = 0}\)
  \({{\color{Red}0 ≤ 𝛼_𝑖 ≤ 𝐶}, ∀ 𝑖}\) ⋯ 𝑠.𝑡. (box constraint 영역이 조금 다르다.)

  (3) 2-norm soft margin : 이젠 마진 에러를 1-norm이 아닌 유클리디안(2-norm)을 쓴 경우
  \[\operatorname*{min}\limits_{𝑤, 𝜉} \frac{1}{2} 𝑤^𝑇𝑤 + 𝐶 \overset{𝑛}\sum\limits_{𝑖=1} {𝜉_𝑖}^2 \]
  subject to \({𝑦_𝑖 (𝑤^𝑇𝑥^𝑖 +𝑤_0) ≥ 1-𝜉_𝑖, ∀ 𝑖}\)
  ⋯ 특성 상 \({𝜉_𝑖 ≥ 0}\) 생략 가능하다...
  dual
  \[\operatorname*{max}\limits_{𝛼} -\frac{1}{2} \sum\limits_{𝑖, 𝑗} {𝑦_𝑖 𝑦_𝑗 [ (𝑥^𝑖)^𝑇 𝑥^𝑗 {\color{Red}+ \frac{1}{𝐶} 𝛿_{𝑖𝑗}} ]𝛼_𝑖 𝛼_𝑗} + \sum 𝛼_𝑖 \]
  subject to \( \sum {𝑦_𝑖 𝛼_𝑖 = 0}\) ⋯ Kronecker delta 𝛿
  \({𝛼_𝑖 ≥ 0, ∀ 𝑖}\) ⋯ Hand margin과 같다.


  \({𝜉_𝑖 = (1-𝑦_𝑖 (𝑤^𝑇𝑥^𝑖 +𝑤_0))^+}\) : posterior+?
  \({= max(0, 1-y_𝑖(𝑤^𝑇𝑥^𝑖 +𝑤_0))}\) : margin error
  \(𝛼^*\) : dual optimal solution
  \({𝑤^* = \sum\limits_{𝑖 ∈ 𝑆𝑉} {𝛼_𝑖}^* 𝑦_𝑖𝑥^𝑖}\)
  𝑆𝑉 = {\({𝑖: {𝛼_𝑖}^*>0}\)} : support vector index 𝑖
  ⋯ \(𝛼_𝑖\) 가 0 보다 큰 \(𝑥^𝑖\) 를 support vector 라고 부른다.
  * Multi-class SVM (Support Vector Machine)
  - binary-class SVM 이 아닌, 다중 클래스 서포트 벡터 머신에 대해서 살펴보도록 한다.
  ⇒ sample {(\(𝑥^𝑖\), \(𝑦_𝑖\))} \(\sideset{_{}^{}}{_{𝑖=1}^𝑛}{}\) ⋯ \(𝑥^𝑖\) ∈ \(𝑅^𝑑\), \(𝑦_𝑖\) ∈ = {0, 1,⋯,𝑘-1}

  1) One-Against-All (OAA) SVM
  : 𝑘 개의 binary SVM 모델 구축
  m-th SVM : \( \begin{cases} \mbox{class m 의 example label =} & \mbox{+1} \\ \mbox{나머지 class 의 example label =} & \mbox{-1} \end{cases} \)
  \[\operatorname*{min}\limits_{𝑤^𝑚, 𝑏^𝑚, 𝜉^𝑚} \frac{1}{2} {𝑤^𝑚}^𝑇{𝑤^𝑚} + 𝐶 \overset{𝑛}\sum\limits_{𝑖=1} {𝜉_𝑖}^𝑚 \]
  subject to
      \({({𝑤^𝑚})^𝑇𝜙(𝑥^𝑖) +𝑏^𝑚 ≥ 1-{𝜉_𝑖}^𝑚, 𝑦_𝑖 = 𝑚}\)

      \({({𝑤^𝑚})^𝑇𝜙(𝑥^𝑖) +𝑏^𝑚 ≤ -1+{𝜉_𝑖}^𝑚, 𝑦_𝑖 ≠ 𝑚}\)
        \({{𝜉_𝑖}^𝑚 ≥ 0, 𝑖=1,⋯,𝑚}\)
  ⇒ 이 문제를 풀면 𝑘 개의 decision function \({𝑔_𝑚}(𝑥)\), 𝑚=0,⋯,𝑘-1 이 구해짐
\[ {𝑔_𝑚}(𝑥) = ({𝑤^𝑚})^𝑇𝜙(𝑥) +𝑏^𝑚,\, 𝑚=0,⋯,𝑘-1 \]
  𝜙(𝑥) : Kernel Support Vector Machine (non-linear) 사용했지만, 여기선 𝑥 를 써도 성립한다.
  𝑥 가 주어지면 final classifier 𝑔(𝑥) 는,
\[ 𝑔(𝑥) = arg\, \operatorname*{max}\limits_{𝑚 ∈ 𝑦}\, {\color{Red}\underbrace{{𝑔_𝑚}(𝑥)}_{score}} \]
  score : 𝑥 가 class 𝑚 에 속할 점수 ⋯ \({𝑔_𝑚}(𝑥)\) 이 구해지면 𝑥 에 대해서 제일 점수가 좋은 클래스를 할당하겠다.
  𝑥 가 주어지면 𝑚 개의 𝑑𝑓 에 대입하여 제일 큰 값을 가져다주는 클래스에 할당하겟다는 개념, like set MAX(posterior) 

  2) One-Against-One (OAO) SVM
  : \( (\begin{smallmatrix} 𝑘 \\ 2 \end{smallmatrix}) \) 개의 SVM 모델 구축 ⋯ 𝑘 개에서 2 개 추출(each class pairs)
  decision variables \(𝑤^{𝑖𝑗}, 𝑏^{𝑖𝑗}, 𝜉^{𝑖𝑗}\) 쌍의 개수 𝑡 는 몇 개인지 모른다.
  ※ 𝑛 개의 example 중 각각의 𝑖𝑗 클래스에 속하는 수 𝑡

  \[\operatorname*{min}\limits_{𝑤^{𝑖𝑗}, 𝑏^{𝑖𝑗}, 𝜉^{𝑖𝑗}} \frac{1}{2} {𝑤^{𝑖𝑗}}^𝑇{𝑤^{𝑖𝑗}} + 𝐶 \sum\limits_{𝑡} {𝜉_𝑡}^{𝑖𝑗} \]
  subject to
      \({({𝑤^{𝑖𝑗}})^𝑇𝜙(𝑥^𝑖) +𝑏^{𝑖𝑗} ≥ 1-{𝜉_𝑡}^{𝑖𝑗}, 𝑦_𝑡 = 𝑖}\)

      \({({𝑤^{𝑖𝑗}})^𝑇𝜙(𝑥^𝑖) +𝑏^{𝑖𝑗} ≤ -1+{𝜉_𝑡}^{𝑖𝑗}, 𝑦_𝑡 = 𝑗}\)
        \({{𝜉_𝑡}^{𝑖𝑗} ≥ 0, 𝑡=⋯}\)
  ⇒ 각 (𝑖, 𝑗) 문제를 풀어 𝑥 에 대한 decision. 즉, classifier 는 다수결(majority vote)로 한다.
  각 (𝑖, 𝑗) 에 대하여 𝑥 에 대한 decision 을 내리면, 𝑥 는 𝑖 class 또는 𝑗 class 에 속하게 된다.
  그래서 𝑥 가 가장 많이 속한 class 를 𝑥 의 class로 한다. ⋯ majority vote

결론: 다중 클래스의 경우에는, 각 클래스 별 𝑘 개의 classifier 를 만들어서 가장 값이 큰 classifier 를 찾아주는 방법과,
각 pair 별 classifier 를 만들어서 𝑥 가 어디에 속하는지 따져서 가장 많이 속한 클래스로 주는 두 가지 방법이 있다.

Example) Text 분류 : 문서의 representation ⋯ 방법(𝑡𝑓 - 𝑖𝑑𝑓)
문서를 보고 어떤 종류의 문서인지 분류하는 문제
W = {𝑤₁,⋯,𝑤𝑚} dictionary, 𝑤𝑖 : 단어
W* = a set of documents [보통 * 를 붙이면 String 이 됨, 말 뭉치(corpus)]
Let, T ∈ W* ← Bay of words [Bow 모델, 워드 뿐만이 아니고 이미지 분류에도 많이 쓰임]
[Define a kernel Φ] ∋∙(such that)
  \[ Φ(T) = (Φ_{𝑤1}(T),⋯,Φ_{𝑤𝑚}(T)) \]
where
  \(Φ_𝑤(T)\) : frequency of the word 𝜔 in the text T, 𝜔 ∈ W
  (𝑡𝑓: term frequency)
  Introduce weight 𝜇(𝜔) : the weight of the word 𝜔.
  \[ Φ(T) = (Φ_{𝑤1}(T)𝜇(𝜔_1),⋯,Φ_{𝑤𝑚}(T)𝜇(𝜔_𝑚)) \]
  𝜇(𝜔) = 0 : 𝜔 is called 'stop word' (불용어)
  관사 등 별 의미가 없는 단어
  자연어 데이터 처리 전후에 필터링되는 단어

Assume |W*| = 𝑛.
Define df(𝜔) = # of documents containing the word 𝜔
⇒ weight 의 정의 (전문용어일수록 값이 크다)
  \[ 𝜇(𝜔) ≜ log\, \frac{𝑛}{df(𝜔)} \]
  (𝑖𝑑𝑓: inverse document frequency)

* 문서 길이를 정규화 : ‖𝑥‖ = 1 ⋯ 마지막으로 문서 길이를 통일
여기까지가 문서 분류의 feature vector 를 만드는 방법이다.

이제 분류 문제로 접근해보자.
- Formulation : classification (multiclass)
(𝑋, 𝑌) ∈ 𝒳×𝒴
𝒳 ∈ \(𝑅^𝑑\), 𝒴 ∈ {0, 1,⋯,𝑘-1}
RCV1 (Reuters Corpus Volume 1) data set
  \[ \begin{cases} {𝑑 = 47,152}{\color{Blue}\mbox{ ⋯ 𝑑 : 사전 단어 수}} \\ \mbox{𝑘 ≥ 103}{\color{Blue}\mbox{ ⋯ 𝑘 : 클래스 수}} \\ \mbox{800,000 개의 data (영어 뉴스)}{\color{Blue}\mbox{ ⋯ 말뭉치, 문서 수}} \end{cases} \]
* loss function : logistic loss ℓ
  ℓ(ℎ, 𝑦) = log(1+𝑒\({}^{-𝑦ℎ}\))
  ℎ(𝑥) = \(𝑤^𝑇𝑥 +𝑤_0 \) ≜ ℎ(\(𝑥; 𝑤, 𝑤_0\))
  ⋯ binary {-1, 1} OAA 전략
* ERM
  \[ \eqalign{ min \frac{1}{𝑛} {\color{Blue}\overbrace{\overset{𝑛}\sum\limits_{𝑖=1} ℓ(ℎ(𝑥^𝑖; 𝑤, 𝑤_0), 𝑦_𝑖)}^{data\, loss}} \\ + {\color{Red}\underbrace{\frac{1}{2} 𝐶 {{‖𝑤‖}_2}^{2}}_{regularization}} } \]
  ⋯ regularization : overfitting 방지를 위해 필수
전형적인 컨벡스 프로그래밍이다.

 

 ② 다층 퍼셉트론 - MLP (Multi Layer Perceptron)

딥 러닝의 가장 기본적인 구조이며, 다른 말로 Feedforward Neural Network 이라고 부르기도 한다.

 

• MLP (Multi-Layer Perceptron, Feedforward Neural Network)
[Definition] Perceptron (1957, Rosenblatt)
Structure of Perceptron

① A unit has its weight
\[ 𝜔= \begin{pmatrix} 𝜔_1 \\ ⋮ \\ 𝜔_𝑑 \end{pmatrix}\, ∈\, 𝑅^𝑑 \mbox{ ⋯ same input dimension} \]
and
② bias (threshold) : b
* output = \(𝜙(\overset{𝑑}\sum\limits_{𝑗=1} 𝑤_𝑗𝑥_𝑗+𝑏)\) ⋯ non-linearize

* Perceptrin Algorithm
input:     (𝑥\({}^𝑖\), 𝑦\({}_𝑖\)), 𝑖=1,⋯,𝑛      𝑦\({}_𝑖\) ∈ {-1, 1}
initialize:      𝑤=0, 𝑏=0
repeat:
      pick    (𝑥\({}^𝑖\), 𝑦)
      If    𝑦\({}_𝑖\) (𝑤\({}^𝑇\)𝑥\({}^𝑖\) +𝑏) ≤ 0
      ※ 𝑦\({}_𝑖\)의 label 이 (𝑤\({}^𝑇\)𝑥\({}^𝑖\) +𝑏)와 다르다. (fail)
         𝑤 ← 𝑤 + 𝑦\({}_𝑖\)𝑥\({}^𝑖\)
         𝑏 ← 𝑏 + 𝑦\({}_𝑖\)
until:    𝑦\({}_𝑖\) (𝑤\({}^𝑇\)𝑥\({}^𝑖\) +𝑏) ≥ 0, ∀ 𝑖
      ※ 제대로 분류 될 때까지 반복한다. (error update, 𝑦\({}_𝑖\))

Ex) Activation Function
1) ReLU : Rectified Linear Unit
𝜙(𝑍) ≜ (𝑍)+ = max{0, 𝑍} ⋯ 𝑍의 positive part (point 0 외 미분 가능)
ReLU (derivation)

2) Sigmoid ⋯ (logistic function)
𝜎(𝑍) = \(\frac{1}{1+𝑒^{-𝑍}}\)
Sigmoid (derivation)

3) tanh(𝑍) : hyperbolic tangent
tanh(𝑍) = \(\frac{𝑒^{𝑍}-𝑒^{-𝑍}}{𝑒^{𝑍}+𝑒^{-𝑍}}\)
tanh, (derivation)

4) softmax : 설명1
softmax(\(z_1\),⋯,\(z_𝑛\))\({}_𝑖\) =  \(\frac{𝑒^{𝑍_𝑖}}{\overset{𝑛}\sum\limits_{𝑗=1} 𝑒^{𝑍_𝑗}}\)
case vector Z (softmax)

𝑍 가 벡터일때, 𝜎(𝑍)\({}_𝑖\) 라고 쓰기도 한다.
(단, 첨자 𝑖 가 안에 있는 Sigmoid 𝜎(\(𝑍_𝑖\)) 와 구분)

5) maxout : 일반적으로 가장 큰 것을 뽑아주는 Hardmax
maxout(\(z_1\),⋯,\(z_𝑛\)) = \( \operatorname*{max}\limits_{𝑖} \{𝑍_𝑖\}\)

[Definition] Feedforward Neural Network (MLP, DNN)
layers (input → [1] hidden → [2] output)
[2] output layer → [3] computation of loss function

1) hidden Layer (아래 3 단계에 따라 정의)
Define : A hidden layer
    ℎ = 𝜑[𝑤\({}^𝑇\)𝑥 + 𝑏]
is characterized by the following :
  i) # of units : 𝐽 ⋯ 몇 개의 유닛을 가지고 있는가?
  ii) weights and bias of a unit 𝑗 : 𝜔\({}^𝑗\) ∈ 𝑅\({}^D\), 𝑏\({}_𝑗\) ∈ 𝑅
  \[ 𝑤= \begin{bmatrix} 𝜔^1, ⋯, 𝜔^J \end{bmatrix}\, \, \, D×J \]
  \[ 𝑏= \begin{bmatrix} 𝑏_1 \\ ⋮ \\ 𝑏_J \end{bmatrix}\, \, \, vector \]
  iii) activation function : 𝜑
    ℎ\({}_𝑗\) = 𝜑[\({(𝑤^𝑗)}^𝑇\)𝑥 + \(𝑏_𝑗\)], 𝑗=1,⋯,𝐽
  \[ ℎ= \begin{bmatrix} ℎ_1 \\ ⋮ \\ ℎ_J \end{bmatrix}\, \, \, 𝑏= \begin{bmatrix} 𝑏_1 \\ ⋮ \\ 𝑏_J \end{bmatrix} \]
  \[ 𝜔^𝑗= \begin{bmatrix} {𝜔_1}^𝑗 \\ ⋮ \\ {𝜔_D}^𝑗 \end{bmatrix}\, ∈ 𝑅^D \, ⋯\, \mbox{input vector 와 차원이 같은 weight vector} \]
  ℎ = 𝜑[\(𝑤^𝑇\)𝑥 + \(𝑏\)] = \( \begin{bmatrix} {𝜑({(𝑤^1)}^𝑇𝑥 + 𝑏_1)} \\ ⋮ \\ {𝜑({(𝑤^𝐽)}^𝑇𝑥 + 𝑏_𝐽)} \end{bmatrix} \)
  ← 즉, \( 𝜑\begin{bmatrix} 𝑍_1 \\ ⋮ \\ 𝑍_𝑛 \end{bmatrix} \) = \( \begin{bmatrix} 𝜑{(𝑍_1)} \\ ⋮ \\ 𝜑{(𝑍_𝑛)} \end{bmatrix} \)

2) output Layer (비 선형화)
    𝑓\({}_𝑘\) = 𝑞[\({(𝑣^𝑘)}^𝑇\)ℎ + \(𝑐_𝑘\)], 𝑘=1,⋯,𝐾
  \[ 𝑓= \begin{bmatrix} 𝑓_1 \\ ⋮ \\ 𝑓_𝐾 \end{bmatrix}\, \, \, 𝑐= \begin{bmatrix} 𝑐_1 \\ ⋮ \\ 𝑐_𝐾 \end{bmatrix} \]
  \[ 𝑣= \begin{bmatrix} 𝑣^1, ⋯, 𝑣^𝐾 \end{bmatrix}\, \, \, J×K \]
⇒ 𝑓 = 𝑞[\(𝑣^𝑇\)ℎ + \(𝑐\)] = 𝑞[\(𝑣^𝑇\)𝜑(\(𝑤^𝑇\)𝑥 + \(𝑏\)) + \(𝑐\)] ⋯ 합성함수형태
← 결국, non-linear transformation of 𝑥 이다.

3) computation of loss function for sample (𝑥, 𝑦)
𝐿 = 𝐿(𝑦, 𝑓) ⋯ 각 loss function 별 다르다.

* 𝐿 hidden layer : (Multiple hidden layers)
ℎ\({}^{(1)}\) = 𝜑[\({𝑤^{(1)}}^𝑇\)𝑥 + \(𝑏_{(1)}\)]
⋮       ⋮
ℎ\({}^{(ℓ)}\) = 𝜑[\({𝑤^{(ℓ)}}^𝑇\)ℎ\({}^{(ℓ-1)}\) + \(𝑏_{(ℓ)}\)], ℓ= 2,⋯,𝐿
𝑓 = 𝑞[\(𝑣^𝑇\)ℎ\({}^{(ℓ)}\) + \(𝑐\)]
* In output layer, usually 𝑞 is identity and 𝑐=0
※ output layer 에서는 보통 Activation 하지 않고 Summation 후 즉시 내보낸다.
* Deep Learning : 𝐿 ≥ 1 ⋯ 딥 러닝의 목표
Find weight and bias (\(𝑤^{(ℓ)}\), \(𝑏^{ℓ}\)) and (𝑣, 𝑐) to minimize the loss 𝐿.
← Backpropagation (gradient descent + chain rule) is commonly used to do this efficiently.
반응형