Introduction CS231n 과제 1번의 두번째가 Linear SVM을 구현하는 것입니다. 편의상 Delta=1로 두고 구현을 하고 있고, 이거 감안해서 봐주시면 감사하겠습니다. Forward Pass와 Backpropagation을 구현하는 것이 핵심 토픽인데, 반복문 버전이랑 벡터화 버전이 있습니다. 반복문 버전은 뭐... 쉽게 할 수 있으니 넘어가고, 벡터화버전에 대해서 알아보도록 하겠습니다. Forward Pass (Using iteration) 먼저, 반복문 버전의 코드부터 봅시다. 일단 loss는 Margin들의 합임을 알 수가 있고, margin을 계산하기 위해서는 정답의 값이 필요함을 알 수 있습니다. 코드를 보면, class 개수만큼 반복문을 돌면서 margin을 계산하는 것을 알..
Introduction 이 글을 읽는 분들께서는 Batch Normalization이 무엇인지, 어디 쓰는지, 어떻게 쓰는지 등에 대해 기초적인 것은 알고 있다고 생각하고 skip 하도록 하겠습니다. Forward Pass와 Backpropagation 식을 Trace trick을 활용하여 유도하고, 실제 구현을 해보겠습니다. 대부분 CS231n assignment2의 expression을 따라갑니다. (변수, 표기 등을 의미합니다.) Forward Pass 뭐.. 유명한 그림 있죠? 논문의 그림 그대로 긁어오겠습니다. 국룰 공식입니다. 근데, 이거 보면 잘 이해가 안 될 수 있으니(저만 그럴수도 ㅎ) 조금 더 보충설명을 하겠습니다. 이쪽 보충설명을 해야, 추후 gradient 유도할 때 안 헷갈립니다...
What is softmax?Softmax layer란 classification이나 regression 등에서 마지막에 output layer에서 확률과 비슷한 성질을 가지게 처리해주는 부분Softmax layer에서 사용하는 함수를 Softmax function이라 하고, 추후 편의를 위해 output layer 직전까지의 결과를 x=[x1, x2, ⋯ , xn]T\mathbf{x}=[x_1,~x_2,~\cdots,~x_n]^Tx=[x1, x2, ⋯, xn]T, 즉 x∈Rn\mathbf{x}\in\R^nx∈Rn이라 하자.이때 softmax function f(x) : Rn→Rnf(\mathbf{x})\ :\ \R^n\rightarrow\R^nf(x) : Rn→Rn에 대해 다음과 같이 정의한..
Auto Encoder[출처]: https://gaussian37.github.io/dl-concept-autoencoder1/이제 주제를 틀어, 어떠한 Input이 들어왔을 때 그걸 더 낮은 dimension으로 어떻게 줄이는지에 대해 알아보자.이가 중요한 이유는, Convolution을 생각해보면 편하다.Convolution의 성능은 분류를 얼마나 잘하는가?이고, FC의 특성을 생각하면 결국 이는 최종 Feature vector을 얼마나 잘 나타냈는가?로 요약할 수 있다.즉, 큰 dimension의 vector를 low dimension으로 낮추면서 특징을 잘 가져가는 것은 아주 중요한 문제이다.이렇게 낮은 차원으로 줄인 벡터를 laten vector라고 하는데, 이 laten vector가 잘 나왔..
Visual attentionCNN + LSTM (VGG-16 or ResNet)VGG-16에서 CNN의 여러 Convolution과 Max Pooling을 거치고 나면, 결국 Feature Extraction을 하게 될 수 있을 정도의 size가 된다.이때 One dimensional vector로 바꾼 후에 Fully connected layer를 거치게 된 후, 분류를 할 때는 Softmax function 이후 classification을 하게 된다.Image Captioning을 하는 경우 softmax를 하지 않고 바로 Feature Extraction된 벡터를 LSTM에 투입한다.LSTM의 input으로 들어갈 때처음 Input이 계속 동일한 input으로 들어가게 되는 경우초기 input ..
BackgroundNeural Network를 구성할 때, 큰 문제점 중 하나는 “어떻게 weight들의 초기값을 정할 것인가?”이다.만약 전부 000으로 정하게 되면, gradient 값이 전부 000이 되기 때문에 큰 의미가 없어진다.같은 값으로 정하게 되면, gradient 값이 한 layer마다 전부 같은 값으로 되기 때문에 weight들이 update 되는 것에 많은 제한 사항이 생긴다.따라서 같은 값이나 전부 000으로 초기화하는 것은 나는 업데이트할 생각이 없소라고 말하는 것과 비슷하다.Method 1: Random Initialization가~장 간단한 방법으로는 모든 weight를 Random으로 정하는 것그 중에서도 Gaussian distribution을 사용했다고 하자.뭐 평균..
What is softmax?Softmax layer란 classification이나 regression 등에서 마지막에 output layer에서 확률과 비슷한 성질을 가지게 처리해주는 부분Softmax layer에서 사용하는 함수를 Softmax function이라 하고, 추후 편의를 위해 output layer 직전까지의 결과를 x=[x1, x2, ⋯ , xn]T\mathbf{x}=[x_1,~x_2,~\cdots,~x_n]^Tx=[x1, x2, ⋯, xn]T, 즉 x∈Rn\mathbf{x}\in\R^nx∈Rn이라 하자.이때 softmax function f(x) : Rn→Rnf(\mathbf{x})\ :\ \R^n\rightarrow\R^nf(x) : Rn→Rn에 대해 다음과 같이 정의한..
Cybenko TheoremNeural Network의 한계란 없다를 수학적으로 보여주는 정리아래에서 사용하는 모든 함수는 sigmoid function을 기반으로 함을 기억하자.구간 [0, 1]n\left[0,~1\right]^n[0, 1]n에서 countinuous한 임의의 함수 FFF와 양수 ε\varepsilonε에 대해 항상 F(x)F(x)F(x)와의 차이가 ε\varepsilonε보다 작은 neural network을 만들 수 있다.간단하게 말하면, 아무 연속함수를 들고와도 단 하나의 Hidden Layer만 있으면 얼마든지 근사할 수 있다라는 것이다.ε\varepsilonε이 굉장히 작으면 어떻게 그게 될지 의문이 들겠지만, 적분과 비슷한 테크닉을 기반으로 Hidden Layer의..
Motivation앞에서 MLP와 Forward Pass를 통해 예측값을 계산하였고, SGD를 통해 이 예측값을 통하여 어떻게 파라미터를 조정하였는지 배웠다.그러면, 언제 이 파라미터를 조정할 것인가? 또한, 어떻게 조정할 것인가?이에 대해 연산을 하는 것이 backpropagation이며, activation function으로 sigmoid나 ReLU와 같은 함수가 택된 이유에 대해 알아보자.Backpropagation한 Iteration이 끝날 때 예측 값과 실제 값의 차이를 합친 cost를 기반으로 가중치를 역으로 진행하면서 업데이트 하는 과정즉, Forward Pass에서는 Layer 1에서 끝(kkk)까지 진행하였다면 Backpropagation은 kkk에서 1로 진행한다고 생각하면 된다...
- Total
- Today
- Yesterday
- 로피탈
- Derivate
- PMA
- Trace trick
- Differentation
- Deep learning
- JOI 2021
- 해석학 Ch5
- 세그먼트 트리
- 선형대수학
- 백준 17411
- 17411
- 백준
- PMA 연습문제
- 해석학
- 해석학 Chapter 5
- icpc.me/17411
- mathematics
- 수(상)
- joi
- 연습문제
- Trace tirck
- 해석학II
- Backprop
- 수학
- Machine Learning
- PMA Ch5
- cs231n assignment1
- LInear SVM
- 미분
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |