6.7. Application of Regularization

last update datetime: Mar 07, 2020 9:02 PM L2 regularization 은 미분 가능하므로, Gradient descent 에 쉽게 적용할 수 있다. 위 람다 값은 hyper parameter이다. lambda 값을 높이면 regularization을 더 강하게 준다는 의미가 된다. 왼쪽은 이전에 사용헀던 sin 함수에 regularization을 적용하지 않은 상태이다. 오른쪽은 regularization을 적용한 상태이다. test data에 대한 variance error 가 확실히 줄은 것을 알 수 있다. 하지만, perfect fit을 할 수 없게 했으...

더보기

6.6. Definition of Regularization

Files: https://strutive07.github.io/assets/images/6_6_Definition_of_Regularization/IE661-Week_6-Part_3-icmoon-ver-1.pdf last update datetime: Mar 07, 2020 8:39 PM regularization은 perfect fit을 포기하는것이다. perfect fit을 희생하면, test 시의 accuracy를 올리기 위함이다. 결국 미래의 데이터에 의한 variacne error를 줄이기 위함이다. objective function에 하나의 목적을 더 추가하는것 ‘가지고 있는 데이터에 너무 o...

더보기

6.5. Performance Metrics

last update datetime: Mar 07, 2020 8:04 PM 지금까지는 accuracy, 즉 True positive 와 True Negative 의 개수의 합 으로 정확도를 나타내었다. 조금 더 많은 measure 들을 공부해보자. True positive: 실제 True → 예측 True (정답) False positive: 실제 False → 예측 True (오답) False negative: 실제 True → 예측 False (오답) True negative: 실제 False → 예측 False (정답) Precision 정밀도 모델이 True 라고 분류한것중, True ...

더보기

6.4. Cross Validation

last update datetime: Mar 07, 2020 4:23 PM 현실에서는 target function 을 알 수 없을 뿐더러, real world 의 모든 infinite 한 datasets 을 모을 수도 없다. 그럼 어떻게 현실에서 bias 와 variance 를 계산할 수 있을까? 이를 시뮬레이션을 하는 방식이 바로 cross validation 이다. N-fold cross validation 데이터를 N 의 set 으로 쪼갠다. 그리고 하나를 test 데이터로, 나머지를 train data 로 학습한다. variance 와 bias 를 test data 로 계산한다. N 번의 반...

더보기

6.2. Bias and Variance

last update datetime: Mar 07, 2020 3:47 PM 머신러닝의 에러는 approximation 과 generalization에서 발생한다. 실제 이상적인 모델과 우리가 학습하는 모델이 있다고 가정해보자. f 는 이상적인 모델 g 는 학습할 모델 g(D) 는 D 라는 데이터로 학습을 마친 모델 D는 real world 의 데이터 g hat 은 무한한 dataset이 주어졌을때 average hypothesis 만약 우리가 이상적인 모델 f 를 알고있다면, D 라는 데이터가 주어졌을때, 이 모델의 에러를 알 수 있을것이다. 이를 Ex 라고 해보자. Error는 MSE 를...

더보기

6.1. Over-fitting and Under-fitting

Files: https://strutive07.github.io/assets/images/6_1_Over_fitting_and_Under_fitting/IE661-Week_6-Part_1-icmoon-ver-1.pdf last update datetime: Mar 07, 2020 1:43 PM accuracy 만이 머신러닝 모델의 정확도를 표현할 metric 일까? task 마다 다르다. precision, recall, r-measure 등이 있다. 머신러닝의 아킬레스건은, 학습 데이터의 분포와 미래의 실제 데이터의 분포가 일치하거나, 매우 유사해야한다는것이다. 계속 분포가 변한다면 online lea...

더보기

5.7,8,9 Primal and Dual with KKT Condition, Kernel, SVM with kernel

last update datetime: Mar 07, 2020 1:11 PM primal form → dual form 으로 변환 한 경우, lower bound == optimal point 임을 보장하려면, 특정 조건을 만족해야한다. convex optimization 에서는 slater’s constraint qualification 을 만족해야한다고 했는데, 여기서는 karush-kunh-tucker(TTK) condition 이라는것을 만족해야한다고 한다. (8강까지 듣고왔는데 이게 9강에서 나오는듯하네 이런~) 위와같이 KKT condition 을 만족해야함. 증명은 convex optim...

더보기

5.6. Rethinking of SVM

Files: https://strutive07.github.io/assets/images/5_6_Rethinking_of_SVM/IE661-Week_5-Part_3-icmoon-ver-1.pdf last update datetime: Mar 01, 2020 8:09 PM 이번 강의에서는 non-linear 한 SVM 을 만들기 위해 kernel trick을 배워보자. 기존의 soft margin SVM 을 생각해보자. 이런경우 decision boundary가 linear 할 경우 좋은 구분을 하기 힘들다. None linear 하게 생각하면 이 데이터를 분류할 수 있을것이다. 어떻게? 일단 ...

더보기

Convex Optimization - Lecture 8

Create time: Feb 18, 2020 10:02 PM Update time: Feb 24, 2020 1:24 AM optimization problem을 바라보는 두 번째 시각인, duality 에 대해 배워보자. largranian 이란 objective function 과 constraint function을 하나의 다항식으로 합치는 것이다. 그냥 합치는것은 아니고, largrange multiplier vector 를 각 constraint function과 곱하고 합친다. 이 vector 들을 dual variable 이라고 함. largrangian 을 최소화 하는 것을 lagra...

더보기

Search a 2D Matrix II

CREATED TIME: Feb 22, 2020 12:44 PM UPDATED TIME: Feb 22, 2020 12:44 PM 난이도: Medium class Solution { public: bool check_matrix(pair<int, int> point, int n, int m){ if(!(point.first >= 0 && point.first < n && point.second >= 0 && point.second < m )){ return false; ...

더보기

Number of Atoms

CREATED TIME: Feb 20, 2020 2:26 AM UPDATED TIME: Feb 20, 2020 2:26 AM 난이도: hard class Solution { public: string countOfAtoms(string formula) { stack<map<string, int» map_stack; map<string, int> first; map_stack.push(first); int i = 0; while(i < formula.length()...

더보기

Reverse Linked List

CREATED TIME: Feb 17, 2020 10:39 PM UPDATED TIME: Feb 17, 2020 10:39 PM 난이도: Easy /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode reverseList(ListNode* head) ...

더보기