볼록 최적화(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 ...
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} \)
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.