VC(Vapnik–Chervonenkis) Dimension의 정의와 의미, bound

기계학습은 데이터가 주어졌을 때 데이터와 타겟값 사이의 관계를 어떤 모델 $f$로 표현하는 것이 목적이다. 선형회귀모델, SVM, 의사결정나무 등의 여러모델이 있다. 각각의 모델이 몇개의 데이터까지 구분할 수 있는지? 수많은 데이터를 표현할 수 있는 complexity(혹은 power)를 갖고 있는지를 알면 모델마다 성능차이를 가늠할 수 있고 어떤 모델을 사용할 때 이 모델의 complexity와 한계에 맞게 모델을 사용할 수 있다. … Read more

[딥러닝] 소프트맥스 (Softmax) 의 미분

softmax (소프트맥스) 함수의 미분을 구해보도록 하겠습니다. softmax (소프트맥스)는 딥러닝에서 굉장히 중요한 역할을 하지요. 중요한 것은 알지만 pytorch 로 구현이 잘되어있어서 softmax의 메커니즘을 잘 잊고 살지요. 중요한 것을 되새기기 위해 소프트맥스 함수의 미분을 알아보겠습니다. softmax 함수의 미분? softmax 함수란? K차원을 갖은 벡터 $\mathbf{x} = (x_1,…,x_K)$가 있다고 합시다. 이 변수 $\mathbf{x}$가 입력들어가는 softmax 함수 $S(\mathbf{x})=(s_1 (\mathbf{x}),s_2 (\mathbf{x}),…, s_K (\mathbf{x}))$는 아래와 같이 정의됩니다. $$s_i(\mathbf{x}) = \frac{\exp{x_i} }{ \sum_{j=1}^K \exp{x_j} }$$ softmax 함수의 미분해보자 여기서 $x_k$에 대해 미분을 해보겠습니다. $$\frac{\partial}{\partial x_k} s_i(\mathbf{x}) $$을 구해보겠다는 의미인데요. $s_i(\mathbf{x})$의 분자에 있는 $\exp{x_i}$는 $i = k$이면 관 $x_k$와 관련있는 term 이고 $i \neq k$이면 … Read more

[딥러닝] KL (Kullback-Leibler) divergence (KL 발산) 미분

[딥러닝] KL divergence (KL 발산) 미분 $\mathbf{x}$가 $K$ dimension 을 갖는 벡터라고 합시다. 그리고 $p(\mathbf{x}),q(\mathbf{x})$는 확률밀도함수 (pmf, probability mass function)입니다. $p(\mathbf{x}), q(\mathbf{x})$ 또한 $\mathbf{x}$와 동일한 차원을 갖는 $K$ dimension vector 입니다. KL divergence 란 $p$와 $q$의 차이를 보는 수치입니다. 딥러닝에서 주로 $p$를 true 분포라고 하고 이 $p$의 추정치를 $q$라고 할때 $p$와 $q$가 얼마나 가까운지를 보는 수치입니다. KL divergence: 하나의 샘플에 대하여 하나의 샘플 $\mathbf{x}$에 대한 KL divergence 는 아래와 같이 정의됩니다.$$KL(p,q) = – \sum_{i=1}^K p(\mathbf{x})_i \log q(\mathbf{x})_i+ \sum_{i=1}^K p(\mathbf{x})_i \log p(\mathbf{x})_i$$ 이 $KL(p,q)$의 미분을 구해보도록 하겠습니다. 앞서 말씀 드렸듯이 $p$는 고정이고 $q$가 추정치이기 때문에 $q$에 대해서만 미분을 하겠습니다. 미분자체는 쉬워요. 만약에 $q(\mathbf{x})_j$에 대해 미분한다면 각각의 term 중에서 $j$번째 항에 대해서만 미분이 되겠습니다. 그리고 $q(\mathbf{x})_j$에 대해서만 관련있는 텀만 미분이 됩니다. KL divergence: 하나의 샘플에 대하여 미분 $$\frac{\partial}{\partial q(\mathbf{x})_j} KL(p,q) = – \sum_{i=1}^K p(\mathbf{x})_i \frac{\partial}{\partial … Read more

[딥러닝] Cross entropy loss(교차엔트로피 손실)의 미분

안녕하세요. cross entropy 잘 사용하고 계시죠? cross entropy 는 분류문제에서 loss로 사용되곤 하죠. 딥러닝에서 하는 일은 loss를 미분해서 parameter 를 업데이트 하는 것인데요. loss를 미분하기 위해서는 loss로써 사용하는 함수를 미분해야되지요. 분류문제에서는 cross entropy loss를 많이 사용하오니 cross entropy 의 미분을 잘 알아두어야 겠죠. 이번 글에서는 cross entropy 를 미분하는 방법에 대해 아주 간단하게 알아보겠습니다. [딥러닝] Cross entropy loss(교차엔트로피 손실)의 미분 … Read more

Root Mean Square(RMS, 제곱의 평균의 제곱근)의 정의와 의미

RMS 는 무엇일가요? 공학에서 어떤 신호에 대해 알아볼때 많이 나오는 말인데요. 이번 글에서 RMS 에 대해 완벽히 알아가 보도록 합시다. 여러분들이 이 글을 보신다. RMS (Root Mean Square) 에 대해 완벽히 알아가실것이라고 자부할 수 있습니다. 감사합니다. 시작해볼게요. Root Mean Square (RMS) Root Mean Square 에 대해 알아보겠습니다. 한글로 번역하면 제곱의 평균의 제곱근(?) 이라는 뜻입니다. 만약에 신호 $x[n]$이 있고 길이가 $N$이라고 합시다. 즉 $n=0,1,…,N-1$에 대하여 $x[n]$이 있다는 것인데요. 이 신호 $x[n]$의 RMS 는 무엇일까요? RMS는 제곱의 평균의 제곱근이므로 이 말대로 쭉 써보면 아래와 같이 쓸 수 있습니다. $$\text{RMS of $x[n]$ : } \sqrt{\frac{1}{N}\sum_{i=0}^{N-1} x^2[n]}$$

[분류모델 평가지표] Confusion matrix, Accuracy, F1 score, precision, recall, PR 곡선, AP (Average Precision), mAP (mean of Average Precision)

딥러닝 분류기 (classifier)의 성능을 평가하기 위한 수단에는 여러가지가 있습니다. 이번 글에서는 딥러닝 분류기의 성능을 평가하기 위해 사용되는 여러가지 지표들을 보도록 하겠습니다. 이번에 소개드릴 지표로는 F1 score, precision, recall, AP (average precision), mAP (mean of Average Precision) 등이 있습니다. 그리고 이것을 설명하기 TP (True Positive), FP (False Positive), TN (True Negative), FN (False Negative) 개념을 알려드릴 … Read more

맨하탄 거리 (manhattan distance), 택시 거리 (Taxicab distance)

맨하탄 거리, 택시거리에 대해 알아보겠습니다. 영어로는 맨하탄 거리(Manhattan distance) 그리고 택시 거리(Taxicab distance)라고 불리웁니다. 맨하탄 거리나 택시거리는 직선거리를 의미하는 것이 아닙니다. 도심지 도로에서 어디를 갈 때 직진하고 우회전하고 좌회전 하는등 격자점의 수평, 수직 거리를 가게 되죠. 고래서 이 수직, 수평거리의 합을 나타내기 위해 맨하탄 거리, 택시거리를 이용하게 됩니다. 맨하탄 거리 (manhattan distance), 택시 거리 (Taxicab … Read more

[딥러닝]최적화기법 Momentum 알고리즘

딥러닝 최적화 기법중 하나인 momentum 알고리즘에 대해 보겠습니다. momentum(관성)이라는 뜻을 갖고 있죠. parameter 가 업데이트가 될 때 관성이 생기는데 그 관성에 따라 parameter 가 업데이트 되게 끔 알고리즘이 구성됩니다. Momentum 알고리즘 $J(\theta)$를 최적화 하고자 하는 loss 라고 합시다.Momentum 알고리즘에서는 관성을 표현하기 위해 다음과 같은 방식으로 업데이트 합니다. $$v(n) = \gamma v(n-1) + \mu \nabla_\theta J(\theta(n))$$ $$\theta(n+1) = \theta(n) – v(n)$$ 여기서 $v(n)$에서 $v$는 속도를 의미합니다. 그라디언트를 … Read more

[딥러닝] 최적화 RMSprop 알고리즘, 기법

RMSprop 에 대해 알아보겠습니다. 딥러닝 최적화 방법중의 하나입니다. RMSprop은 adagrad에서 좀 더 modified 된 버전입니다. adagrad 와 비슷하게 gradient 의 에너지를 학습에 반영합니다. RMSprop 학습방법 우리가 최적화 하고자 하는 loss를 $J$라고 합시다. RMSprop 학습방법은 아래와 같습니다. $$G_k(n) = \gamma G_k(n) +(1-\gamma) (\frac{\partial J}{\partial \theta_k}(\theta(n)))^2$$ $$\theta_k(n+1) = \theta_k(n) – \mu \frac{1}{\sqrt{G_k(n)+\epsilon}}\frac{\partial J}{\partial \theta_k}$$ Adagrad 와 다른점이라고 하면 $G_k$를 $G_k$와 편미분의 평균으로 취한다는 점입니다.

Empirical Rademacher complexity 설명, 정의와 쓸모?

공부를 하다보니 Rademacher complexity 라는 용어가 나왔다. 평소같으면 그냥 지나쳐도 되지만 논문에서 핵심 내용이었기 때문에 한번 쓱 조사해봤다. 다행히도 Rademacher complexity에 대해 잘 정의한 책이 있어 이해하는데 도움이 되었다. 개꿀딱이었다. Empirical Rademacher complexity Rademacher complexity에는 Rademacher complexity이 있고 Empirical Rademacher complexity이 있습니다. Empirical Rademacher complexity를 정의한 후에 Rademacher complexity 정의하오니 Empirical Rademacher complexity에 대해 알아봅시다. 어떤 space … Read more