반응형

분류 전체보기 429

[cs231n] RNN, LSTM

coco 같은 경우 12만의 이미지를 가지고 있는 거대 데이터입니다. 이 데이터를 바탕으로 coco를 사용하면 우리가 데이터를 큰 학습 이 모델을 사용하면 정상적으로 사용가능합니다. RNN이 좋은 성과를 보이고 있는데 RNN은 이미지를 전체적으로 한번만 보고 끝나지만 attention은 이미지 특정 부분을 보고 그 단어를 추출하는 것으로 어떤 부분을 보고 각 단어를 판단하는 것입니다. 이미지를 한번에 보는 것이 아닌 부분 부분을 보고 문장을 추출해내느 것입니다. 단순히 단어를 생성하는 것이 아니라 어디를 봐야하는지 알려주는 것으로 굉장히 주목받는 모델입니다.  RNN 응용 - LSTMRNN은 구조적으로 제약이 많아 실제 현업에서 사용되기 어렵습니다. RNN에서는 hidden state만 존재했지만, LS..

[cs231n] Visualization, Adversarial examples

Deconv approachesneural net이 있을 때 w0, x0, w1, x1, w2에서 loss에 대한 영향력을 구할 때 임의 뉴런이 존재할 때 임의 뉴런만 1.0을 하고서 역전파를 했을 때 이미지에 대한 시각화를 보여줄 수 있으며 조금 더 선명하게 만들어주는 것은 Guided backpropagation을 사용하면 positive한 것만 반영을 하면서 선명한 이미지를 얻을 수 있게 됩니다.  RELU대신에 modified RELU를 이용합니다. 관심있는 뉴런만 놔두고 나머지는 0으로 둡니다. RELU는 forward pass를 통해서 0보다 작은 것은 0으로 처리하고서 0으로 가고 나머지 부분에 대해서만 그대로 backward pass가 진행되는 것을 알 수 있습니다. guided backp..

[cs231n] Localization - as Regression

1. classification 모델 학습 2. regression head 추가  3. regression head 부분만 학습  4. test time 때 classification과 regression 둘 다 이용해 산출  정해진 것을 찾는 것은 regression으로도 잘 동작하므로 detection을 사용하지 않고도 심플하게 구할 수 있으며 사람의 자세를 평가해서 관절을 표시해주는 것도 regression을 해서 쉽게 구현이 가능합니다. Regression으로 하는 것은 간단하면서 강력하기 때문에 여러 사례에 응용이 가능하지만 대회 같은 곳에서는 이 방법으로는 수상이 어려우므로 Sliding window를 사용해야 합니다.   Sliding window 이미지를 한번만 돌리지 않고 여러번을 돌리..

[cs231n] CNN

공간적으로 이미지를 슬라이스하면서 dot products를 해나가는 것입니다.  처음에 32 X 32 X 3의 input을 받았을 때  actviation 관점에서 28 X 28 X 6의 새로운 형태의 이미지로 Rerepresentation 했다고 칠 때 다음 input으로 전달이 됩니다. 이미지를 받았고 Convolution layer를 돌리면 6, 5X5X3 -> 28X28X6 Activation volume을 얻게 되고10, 5X5X6의 필터를 거친다면  -> 24X24X6 형태가 됩니다.  제어를 해야하는 파라미터는 당연히 필터의 하나하나의 값들이 됩니다. CONV - RELU - POOL 반복하고 계산하는 방식으로 합니다. 공간의 차원에 대해 생각을 해보면 32X32X3 의 이미지에 5X5X3F..

[cs231n] Training NN

1960년대 퍼셉트론을 쌓아가기 시작하는데 이때 최초의 멀티 layer 퍼셉트론 network가 되지만 hardware였습니다. 이때 가중치들 즉 어떤 파라미터의 approach를 도입한 것만으로도 큰 도약으로 보이며 이에 대한 기대가 매우 컸습니다. 하지만 이후  컴퓨터의 성능 등의 문제로 효과는 미치지 못했으며 80년대 중반까지는 신경망의 암흑기라 불리는 침체기로 접어들게 되었습니다.  이후 1986년에 제프리 힌턴 교수님 등 공저자가 포함된 back-propagation을 도입하며 이는 미분이 가능하며 가중치를 체계적인 방법으로 찾아갈 수 있다는 것을 의미합니다.  2006년 경 각 단계 RBM을 이요해서 학습 시키고 계속하고 학습시키면서 각각 선행학습을 시킨 다음에 이들을 큰 덩어리로 묶어서 ba..

[cs231n] 3강 Neural Network NN

Neural network를 보면 히든 레이어에 100개의 히든 노드가 있다고 가정하고  하나의 feature를 감당한다고 할 때, 100개 중에 한개의 히든 노드는 빨간색의 자동차를 담당하는 노드다 이런 식으로 표현할 수 있습니다. 하나의 뉴런이 여러개가 연결이 되면서 전달반복이 일어나게 됩니다. 유사하게 본다면 x0이라는 데이터가 들어와서 w0이라는 가중치와 연산을 하고 이것들이 모여서 cellbody 내에서 단순한 합연산이 이루어지게 되고 activation function을 이요해서 axon을 통해 다음 뉴런으로 전달합니다.이 activation function 중에 전통적으로는 sigmoid function이 많이 쓰였습니다. x가 아무리 작아져도 y값은 0이상이 되고 x가 아무리 커지더라고 y..

[cs231n] 2강 Classification Pipeline

k-Nearest Neightbor조금 더 부드러운 Classification을 수행한 것으로 인접한 K개를 묶어서 판별하는 것입니다.  하이퍼파라미터를 설정하기 위해서 여러번의 실험을 해야하기 때문에 여러번의 data를 마련해야 합니다. 일부분으로 하이퍼파라미터를 튜닝하기 위한 validation을 만들어냅니다. 트레이닝 데이터 수가 적은 경우에는 Cross Validation을 활용해도 됩니다. 하지만 최근접아웃 방식은 위의 4개의 사진을 동일하게 인식합니다. 이는 최근접아웃 방식으로 하다 보니 발생하는 문제이며 이렇기에 현재에는 잘 쓰이지 않는 알고리즘입니다. Linear Classifier파라미터를 들어가는 방식입니다. 이전의 최근접아웃은 파라미터 기반이 아니었습니다.  f(x,W) x는 이미지에..

[C++] 백준 10799번 쇠막대기

정답코드#include #include #include using namespace std;int main(){ string input; stack s; getline(cin, input); int cnt = 0; for(int i=0; i그려보지 않고서는 이해가지 않을 수 있습니다. () 이렇게 괄호 안에 아무것도 없이 만날 때는 쇠막대기를 쪼개는 것이고 그렇지 않을 경우 괄호 안에 (나 )가 포함되어 있는 경우에는 쇠막대기가 되는 구조입니다. 이 문제는 쇠막대기와 관련된 괄호 표현을 해석하는 문제입니다. 문제의 핵심은 주어진 괄호 문자열이 어떻게 쇠막대기의 개수와 관련되는지를 이해하는 것입니다. 문제 풀이 개념쇠막대기와 레이저의 표현:(는 쇠막대기의 시작입니다.)는 쇠막대기의 끝을 나타내기도 하지만,..

[C++] 백준 4949번 균형잡힌 세상

정답코드#include #include #include using namespace std;int main(){ while(1) { string input; getline(cin, input); if (input == ".") { break; //마지막 조건이 .이므로 .이 들어가면 break; } stack s1; bool flag = 0; for (int i = 0; i 일단 .이 들어가면 탈출해야 하므로 IF문을 통해 BREAK;가 되도록 만들어줍니다. 이후 while문을 통해 getline으로 읽은 문장의 char 하나하나를 분석하면 됩니다. 먼저 ( 나 [가 나올 때는 push를 해주는 것으로 하고 그 다음 조건에서는 top이 ( 이거나 [ 일 때 만약 empty가 비어있지 않..

[c++] 1874번 스택 수열

정답코드#include #include #include using namespace std;int main(){ int cnt = 1; int n; cin >> n; stack s; vector result; for (int i = 0; i > x; while(cnt 스택을 이용하여 해결하면 됩니다. 여기서 마지막 vector를 출력해낼 때 endl을 사용할 경우 버퍼를 계속해서 플러시하면서 시간 초과가 발생할 수 있으니 \n으로 바꾸어주면 됩니다. 알고리즘은 s.top이 x가 아니라면 계속해서 + 를 해주면 되기에 result에 +를 pushback 해주고 만약 top 즉 맨 최근에 들어온 스택에서의 상단의 값이 x라면 - 즉 pop을 해줘야 하기 대문에 pop을 해준 다음 result에 -를 pus..

반응형