목록 Categories (93)
Deep Learning study
저번글에선 SN GAN의 전반적인 내용과 기본적인 컨셉에대해서 알아보았습니다. 이번 글에서는 본격적인 Spectral Normalization의 이론적인 바탕과 내용에대해서 알아봅시다. 저번 글에서 Optimal한 D가 f라는 형태의 모양을 가질때에 , 그 함수는 unbounded 되어있기때문에 gradient가 폭발해버리는 현상이 일어난다고 말했었죠. 그래서 그 폭발을 막기위해서 사용할 방법이 Lipschitz constant를 제한하는 것이였습니다. $$ \underset{\lVert f \rVert_{Lip} \le K}{\arg \max }V(G,D)$$ 여기서 말하는 Lipschitz norm(||f||Lip)은 f의 Lipschitz Constant를 의미합니다. 이제 이러한 condition..
오늘 정리할 논문은 spectral normalization GAN 입니다. (모바일이라면 pc버전으로 보세요 ! ) 논문을 보기전에 이 전의 포스팅인 립시츠 함수와 립시츠상수, Singular value decomposition(SVD), Matrix norm에 대해서 알고 본다면 훨씬 이해가 쉬울것 입니다. ! 이 논문에서는 Discriminator의 학습을 안정화(stabilize)시키기위해서 새로운 weight normalization 기법인 Spectral Normalization을 소개합니다. Introduction GAN의 기본적인 컨셉은 model의 분포와 discriminator를 번갈아가면서 학습시켜 model의 분포가 target분포를 따라가게 만드는 것이죠. 이러한 컨셉은 모두 학습..
오늘은 립시츠 함수와 립시츠 상수에대해서 알아보도록 합시다. Lipschitz (continuous) function $$ Let \ a \ function \ f : [a,b] \rightarrow \mathbb{R} \ s.t. \ for \ some\ constant\ \mathbb{M}\ and\ for\ all\ \mathbb{x,y} \in\ [a,b] ,\\ \mid f(x) - f(y) \mid \le M\mid x-y \mid \qquad - (1). \\ Then \ the \ function \ f \ is \ called \ Lipschits\ on \ [a,b], \ and \ one \ writes \ f \ \in Lip([a,b]). $$ 굳이 번역해서 쓰자면 ,어떠한 함수 ..
오늘은 norm에 대해서 알아보도록 하겠습니다. Vector norm 벡터 노름이라고하면, 어떤 벡터를 길이나 사이즈같은 양적인 수치로 mapping하기 위한 함수(||.|| : V → R)입니다. 그러면 벡터공간(Vector space) V와 scalar a에 대하여 정의합니다. 벡터 노름은 다음 세가지 조건을 충족시켜야 합니다. $$ \mathsf{ 1. \lVert u + v \rVert \le \lVert u \rVert + \lVert v \rVert} $$ $$ \mathsf{ 2. \lVert \mathrm{a}v \rVert = \mid \mathrm{a} \mid \lVert v \rVert} $$ $$ \mathsf{ 3. If \lVert v \rVert = 0 , then \ v =..
저번 글로 초석을 다져놨으니 오늘 할 것은 SVD입니다. SVD의 개념과 계산 방법, 등위주로 알아보도록합시다. (latex는 처음써보는데 모바일 버전에서는 안보이는것 같아요, 보신다면 데스크톱 버전으로 봐 주세요 ㅎㅎ) Singular value decomposition SVD역시 앞선 eigen decomposition과 같이 행렬을 대각화하는 방법중 하나입니다. 그럼 eigen decomposition과 무엇이 다르길래 이 방법을 쓰는 것일까요 . SVD를 쓰는 이유 n x n 행렬뿐만아니라 일반적인 m x n 행렬에 대해서도 대각화가 가능하기 때문입니다. m x n 행렬 A에 대한 특이값분해는 다음과같이 정의되어집니다. $$ \mathsf{A} = \mathsf{U}\Sigma\mathsf{V}^..
선형대수학에서 가장 중요한 부분중에 하나인 고유값과 고유벡터 입니다. 딥러닝을 공부하면 항상거의 빠지지 않고 나오는게 선형대수학이죠. 중요하지만 딱 필요한 만큼만 정리하고 가겠습니다. 뒤에 할 것들이 많기때문에.... (본과는 수학과지만.. 컴퓨터를 복수전공해서 수학을 놓은지도 벌써... 4년.. ) 이 고유값과 고유벡터가 어디에 쓰인다.. 라기보다는 사실 다음에 할 내용인 SVD(singular vector decompositon)가 이 내용을 기본으로 하기때문에 짚고넘어가려고 합니다. Eigen value, Eigen vector 먼저 Α(n x n 정방행렬)를 선형변환이라고 합시다. 그러면 고유벡터는 선형변환 후에도 변하지않는 영벡터가 아닌 벡터입니다. 예를들면 xy평면에서 선형변환 A가 회전을 시..
Deep learning 논문들을 읽다보면 정말 자주나오는 단어입니다. 다소 헷갈릴 수있는 개념인 Normalization과 Regularization에 대해서 알아보도록 합시다. Regularization 이 방법은 모델에 제약(penalty)을 주는 것 입니다. 쉽게 말하자면, perfect fit 을 포기함으로써(trainging accuracy를 낮춤으로써) potential fit을 증가시키고자(testing accuracy를 높이고자) 하는 것 입니다. 위의 오른쪽 그래프를 보면 모든 traing data에대해서는 완벽하게 fitting되어 있습니다. 하지만 이 모델은 일반적으로 적용했을때 옳바른 output을 내지 못하겠죠. 따라서 너무 높은 complexity를 피하기 위해서 쓰는 방법이 ..
오늘은 MobileNet을 이어 ShuffleNet! 드디어 이까지 왔네요 .. 그럼 살펴보도록 할까요 Introduction ShuffleNet은 MobileNet과 마찬가지로 prameter수와 computational cost를 줄여 매우작은 모델을 만드는것이 목적입니다. 따라서 여기에는 효율적인 연산방법이 필요함과 동시에 성능도 잘 나와야 합니다. 이 전의 MobileNet에서의 핵심이 Depthwise separable convolution이였다면, 여기서는 그것 이외에도 2가지의 스킬이 더 있습니다. (Pointwise) Group convolution channel shuffle 1. (pointwise) Group convolution 이것은 전의 포스팅에서 한 번 설명을 했었습니다. 그럼..