볼록 최적화(Convex Optimization) 방법론이며, 다차원 공간에서의 대규모 기계학습을 위한 컨벡스 프로그래밍(Convex Programming for large-scale Machine Learning) 내용과 딥 러닝(Deep Learning) 기초 개념인 MLP(Multi Layer Perceptron) 내용에 대해 다룬다.
① 컨벡스 프로그래밍 - 예제 (SVM, multiclass SVM)
이제부터 최적화에 대해 조금 더 집중적으로 공부하도록 한다. 이에 앞서 데이터마이닝연구세미나 과목에서 다루었던 최적화의 개념과 KKT 조건, 라그랑주 승수법을 복습하고 컨벡스 프로그래밍 문제를 살펴보도록 한다.
• 최적화 (Optimization) - SLT 에서 개발 된 M/L 모형에 대한 해법을 제시한 분야 를찾는 - Optimization 의 일반 형태는, 목적 함수를 최소화 하는 것이다. 𝑆 = {𝑥 ∈ Rⁿ : , 𝑖=1,⋯,𝑚 ; ≥0, 𝑝=1,⋯,𝑡} : feasible set (feasible region) ⋯ 조건을 만족하는 모든 𝑥 - 벡터로 나타내보면, ⇒ 간단하게 표현하면, Equality constraints, Inequality constraints ...
• KKT 조건(Karush–Kuhn–Tucker conditions) [Definition] Lagrangian 라그랑지안 승수(𝜇, 𝜋)가 다음과 같을때 1-order KKT 필요 조건을 보면,
first-order KKT necessary condition for optimality 만약, 𝑥̅ 가 optimal point 이면, 다음을 만족하는 𝑢̅ 와 𝜋̅ 가 존재한다. ̅̅ 라그랑지안을 𝑥 에 대해 미분(𝛻𝑥, gradient) 하면, 𝛻̅̅̅̅ ̅̅ ※ 참고로 이 조건들은 뒤의 SVM 해석에 필요한 개념이니 숙지하도록 한다.
• 컨벡스 프로그래밍 문제(Convex Programming Problem) - Convex 문제라고 한다면, 𝜽(𝑥) 와 feasible set 𝑆 가 독립 Convex 하고, 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전형적인 컨벡스하지 않은 문제
수만수백만수억입력수수억수수억수천억 ※ 다차원 피쳐 스페이스, 대규모 입력 데이터, 구해야 할 파라메터 수의 증가...
* 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}⋯ hyperplanes Training data set {(𝑥, 𝑦)} Classifier 𝑔(𝑥) = 𝑠𝑖𝑔𝑛(𝑤𝑥 +𝑤) ※ 𝑤𝑥 +𝑤 0 보다 크면 class:1 로 할당하고, 작으면 class:-1 로 할당한다. logistic 0-1 function 일 때는 어떤 값이 0 보다 크다/작다로 할당을 했지만, 클래스가 {-1, 1} 경우에는 함수 값의 사인을 보고 결정하는 것이 일반적인 형태이다.
▶ 대표적인 3가지 모델 (1) Hand margin : linearly separable 한 경우 두 클래스를 완전히 나눌 수 있을 때 subject to ⋯ 전형적인 convex 문제 ⋯ objective 가 quadratic 하고, constraint 가 모두 linear 한 전형적인 문제 dual subject to ⋯ 보통 dual 문제를 풀어서 해결
(2) 1-norm soft margin : linearly separable 하지 않을 때, 약간의 에러 허용 subject to ⋯ ℋ 으로 가를 수 없을 때... dual subject to ⋯ 𝑠.𝑡. (box constraint 영역이 조금 다르다.)
(3) 2-norm soft margin : 이젠 마진 에러를 1-norm이 아닌 유클리디안(2-norm)을 쓴 경우 subject to ⋯ 특성 상 생략 가능하다... dual subject to ⋯ Kronecker delta 𝛿 ⋯ Hand margin과 같다.
: posterior+? : margin error : dual optimal solution 𝑆𝑉 = {} : support vector index 𝑖 ⋯ 가 0 보다 큰 를 support vector 라고 부른다.
* Multi-class SVM (Support Vector Machine) - binary-class SVM 이 아닌, 다중 클래스 서포트 벡터 머신에 대해서 살펴보도록 한다. ⇒ sample {(, )} ⋯ ∈ , ∈ = {0, 1,⋯,𝑘-1}
1) One-Against-All (OAA) SVM : 𝑘 개의 binary SVM 모델 구축 m-th SVM :의나머지의 subject to ⇒ 이 문제를 풀면 𝑘 개의 decision function , 𝑚=0,⋯,𝑘-1 이 구해짐 𝜙(𝑥) : Kernel Support Vector Machine (non-linear) 사용했지만, 여기선 𝑥 를 써도 성립한다. 𝑥 가 주어지면 final classifier 𝑔(𝑥) 는, score : 𝑥 가 class 𝑚 에 속할 점수 ⋯ 이 구해지면 𝑥 에 대해서 제일 점수가 좋은 클래스를 할당하겠다. ※ 𝑥 가 주어지면 𝑚 개의 𝑑𝑓 에 대입하여 제일 큰 값을 가져다주는 클래스에 할당하겟다는 개념, like set MAX(posterior)
2) One-Against-One (OAO) SVM : 개의 SVM 모델 구축⋯ 𝑘 개에서 2 개 추출(each class pairs) decision variables 쌍의 개수 𝑡 는 몇 개인지 모른다. ※ 𝑛 개의 example 중 각각의 𝑖𝑗 클래스에 속하는 수 𝑡 subject to ⇒ 각 (𝑖, 𝑗) 문제를 풀어 𝑥 에 대한 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) where : frequency of the word 𝜔 in the text T, 𝜔 ∈ W (𝑡𝑓: term frequency) Introduce weight 𝜇(𝜔) : the weight of the word 𝜔. 𝜇(𝜔) = 0 : 𝜔 is called 'stop word' (불용어) 관사 등 별 의미가 없는 단어 자연어 데이터 처리 전후에 필터링되는 단어 Assume |W*| = 𝑛. Define df(𝜔) = # of documents containing the word 𝜔 ⇒ weight 의 정의 (전문용어일수록 값이 크다) (𝑖𝑑𝑓: inverse document frequency)
* 문서 길이를 정규화 : ‖𝑥‖ = 1⋯ 마지막으로 문서 길이를 통일 여기까지가 문서 분류의 feature vector 를 만드는 방법이다.
이제 분류 문제로 접근해보자. - Formulation : classification (multiclass) (𝑋, 𝑌) ∈ 𝒳×𝒴 𝒳 ∈ , 𝒴 ∈ {0, 1,⋯,𝑘-1} RCV1 (Reuters Corpus Volume 1) data set 사전단어수클래스수개의영어뉴스말뭉치문서수 * loss function : logistic loss ℓ ℓ(ℎ, 𝑦) = log(1+𝑒) ℎ(𝑥) = ≜ ℎ() ⋯ binary {-1, 1} OAA 전략 * ERM ⋯ 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 and ② bias (threshold) : b * output =⋯ 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) 𝜎(𝑍) = Sigmoid (derivation) 3) tanh(𝑍) : hyperbolic tangent tanh(𝑍) = tanh, (derivation) 4) softmax : 설명1 softmax(,⋯,) = case vector Z (softmax) 𝑍 가 벡터일때, 𝜎(𝑍) 라고 쓰기도 한다. (단, 첨자 𝑖 가 안에 있는 Sigmoid 𝜎() 와 구분)
5) maxout : 일반적으로 가장 큰 것을 뽑아주는 Hardmax maxout(,⋯,) =
[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 𝑗 : 𝜔 ∈ 𝑅, 𝑏 ∈ 𝑅 iii) activation function : 𝜑 ℎ = 𝜑[𝑥 + ], 𝑗=1,⋯,𝐽 와차원이같은 ℎ = 𝜑[𝑥 + ] = ← 즉, =
3) computation of loss function for sample (𝑥, 𝑦) 𝐿 = 𝐿(𝑦, 𝑓) ⋯ 각 loss function 별 다르다.
* 𝐿 hidden layer : (Multiple hidden layers) ℎ = 𝜑[𝑥 + ] ⋮ ⋮ ℎ = 𝜑[ℎ + ], ℓ= 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.