cs231n Lecture 11-1 Detection and Segmentation

11장은 Classfication 이 외에 비전 분야에서 유명한 다른 문제들을 소개하고, 대표 모델들을 학습합니다. 또한 Multi Loss 와 Region Proposlas, downsampling, upSampling 등을 학습합니다. 기본적으로 배운 Classification 그 외에도 Segmentation, Object Detection 등이 있고 두 개의 발전 모델인 instance Segmentation 등이 있습니다. 이제 하나하나 학습해봅시다. Semantic Segmentation은 Pixel에 Label 을 붙이는 작업 입니다. 어떻게 Segmentation 문제를 풀까요? ...

더보기

BOJ 3046 R2

#include <cstdio> #include <cstdlib> #include <iostream> #include <cstring> #include <string> #include <algorithm> #include <cmath> #include <vector> #include <queue> #include <stack> #include <deque> #include <map> #include <unordered_map> #include <set> #includ...

더보기

BOJ 2609 최대공약수와 최소공배수

#include <cstdio> #include <cstdlib> #include <iostream> #include <cstring> #include <string> #include <algorithm> #include <cmath> #include <vector> #include <queue> #include <stack> #include <deque> #include <map> #include <unordered_map> #include <set> #includ...

더보기

BOJ 11724 연결 요소의 개수

#include <cstdio> #include <cstdlib> #include <iostream> #include <cstring> #include <string> #include <algorithm> #include <cmath> #include <vector> #include <queue> #include <stack> #include <deque> #include <map> #include <unordered_map> #include <set> #includ...

더보기

BOJ 1100 하얀칸

#include <cstdio> #include <cstdlib> #include <iostream> #include <cstring> #include <string> #include <algorithm> #include <cmath> #include <vector> #include <queue> #include <stack> #include <deque> #include <map> #include <unordered_map> #include <set> #includ...

더보기

BOJ 10950 A+B - 3

#include <cstdio> #include <cstdlib> #include <iostream> #include <cstring> #include <string> #include <algorithm> #include <cmath> #include <vector> #include <queue> #include <stack> #include <deque> #include <map> #include <unordered_map> #include <set> #includ...

더보기

cs231n Lecture 10-5 Recurrent Neural Networks

RNN 의 back prop 과 LSTM 에 대해 알아봅시다. Vanilla Rnn 의 수식은 다음과 같이 Matmul 로 나타낼 수 있습니다. back prop 의 경로를 따라가보면, 결국 matrix multiplication 을 지나가야 하는데 이는 해당 matrix 의 transpose를 곱하게 됩니다. 그럼 Vanilla Rnn Cell 을 지나갈때마다 W_transpose Matrix 를 계속 곱하게됩니다. 마지막 h0 의 gradient 를 계산하기 위해서는 수많은 W 를 곱했어야합니다. 이는 너무 비효율적이고, gradient vanishing 과 exploding 을 불러옵니다...

더보기

cs231n Lecture 10-4 Recurrent Neural Networks

Image captioning 은 대표적인 CNN 과 RNN 을 혼용한 모델이다. 이미지를 CNN 으로 feature extraction 하여 특정 vector 로 만들고, 그것을 기반으로 그 이미지에 달린 caption을 학습하게된다. Test image 를 넣고 conv layer 를 타면서 feature 를 뽑게된다. 마지막 softmax 를 통해 분류하지 않고, fc layer 를 통해서 나온 벡터를 출력하게된다. 이 경우에는 fc layer 의 vector 가 위의 v 가 된다. 계산해야하는것이 3개가 된것이다.(이전 스탭 hidden state, 이번 스탭 input, image vecto...

더보기

cs231n Lecture 10-3 Recurrent Neural Networks

여러가지 재밌는 예시를 살펴보자. 셰익스피어 글을 RNN 으로 학습한다고 해보자. character 단위 다음 단어 예측으로 학습한다고 해보자. 학습을 진행하면서 초기에는 별로지만 점점 좋아지는것을 볼 수 있다. 꽤 그럴듯하게 학습하는것을 볼 수 있다. 물론 문법이나 의미등은 틀릴 수 있어도 형태는 비슷하게 나오는 것을 볼 수 있다. 다음은 논문을 학습한것이다. 완전한 개소리지만 수식도 적고 Lemma 도 넣고 형태를 갖추는것을 알 수 있다. 이젠 막 diagram 까지 그리는데 그냥 개소리다. 형태가 나온다는것에 재미를 느낄뿐이다. 다음은 linux kernel 의 code를 ...

더보기

cs231n Lecture 10-2 Recurrent Neural Networks

그럼 RNN 이 어떻게 작동하는지 자세히 알아보자. RNN 은 주로 특정 time step 에서 특정 vector 를 예측할때 사용한다. 말 그대로 순환적인 구조를 가진다. 재귀적으로 함수를 호출하는것처럼, 재귀적으로 이전값을 불러 사용한다. 주의할점은, 재귀의 반복 안에서 항상 같은 Weight 와 bias 를 사용한다는것이다. 그리고 activation 은 tanh 를 사용한다. 왜 tanh 를 사용하는지는 위의 필기에 적어둔것처럼, 항상 같은 Weight 와 bias 를 사용하기 때문이다. 계속 설명하는거지만, Weight 가 어떻게 공유되는지 위와같은 그림으로 설명할 수 있다....

더보기

cs231n Lecture 10-1 Recurrent Neural Networks

10 장에서는 RNN, CNN 과 RNN 을 같이 사용하는 모델, 그리고 Vanilla RNN 이 아닌 LSTM, GRU 등을 공부한다. RNN 에는 여러 구조가 있다. 가장 기본적인 구조는 One to One input 과 ouput 이 1:1 의 비율을 맞추는 모델이다. 그 외 여러가지 모델이 있는데, 우리가 생각할 수 있는 1:1, N:1, 1:N, N:M 모두 가능하다. 1:N 모델은 image captioning 모델에 많이 쓰인다고 한다. 이미지를 여러 단어의 집합인 문장으로 나타내는 테스크라고 한다. N:1 은 sentiment classification 에 사용된다고 한다. ...

더보기

cs231n Lecture 9-5 CNN Architectures

Forward pass time & power consumption에 대한 그래프인데, FC layer가 크게 있을 수록 안좋은 결과를 보여줍니다. 다른 network들을 잠시 훑어봅시다. Inception layer 와 같은 개념입니다. network는 작은 network의 집합으로 구성된다 정도로 이해하면되겠네요. GoogleNet과 유사합니다. 2016 ResNet에 변화가 생겼습니다. ReLu를 태우고 보내지 않고, F(x) 단에서 모든 operation을 담당하게 구조가 바뀌었습니다. 이로써 propagation을 할때 direct path하게 정보를 내려줄 수 있게 되었다 합니다....

더보기