목록AI (51)
Deep Learning study
오늘은 립시츠 함수와 립시츠 상수에대해서 알아보도록 합시다. 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 이것은 전의 포스팅에서 한 번 설명을 했었습니다. 그럼..
오늘은 시간이 없으니 간단하게 MobileNets를 살펴보고 가겠습니다. 정말 특별하게 어렵다거나 새로운건 없습니다. 새로운 아이디어라기보다는 많은 실험 결과들이 실려있는 논문이라고 보면 될 것 같아요. MobileNets은 이름에서도 알 수 있지만, 모바일 기기나 어플 등에서 사용할 수 있도록 효율적인 면에서 설계된 모델입니다. 그럼 한 번 살펴보도록 할까요. MobileNets Architecture 이 모델의 특징은 두가지가 있습니다. Depthwise separable convolution Shrinking hyperparameter(Width mutiplier, Resolution multiplier) 정말정말 많이 봐 왔던 Depthwise separable convolution 입니다. 논문..
오늘 볼 논문들은 두가지 입니다 ! 사실상 이전의 글을 보셨다면 지금 보는 논문들은 크게 어려울것 없습니다. 그런의미에서 간단하게만 살펴봅시다. Inception GoogLeNet이라고 알려진 유명한 논문입니다. 먼저 모델을 deep하게 만들수록 모델의 표현능력 또는 수용력이 증가함으로써 성능이 올라간다는것은 어떻게보면 실험적으로 잘 알려진 사실입니다. 그렇지만 단순히 깊게 만드는데에는 한계가 있습니다. 모델의 사이즈가 커진다는 것은 당연하게도 parameter의 수가 커지는것을 의미합니다. 이것은 한정된 labeled data를 가질 수 밖에 없는 우리에게 overfitting이 일어나게 만듭니다. 우리가 가진 계산(computation)능력과 메모리등의 자원은 항상 제한적입니다. 다시말해 우리는 한정..