BOJ 11003 최솟값 찾기

#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 10871 X보다 작은 수 성공

#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 10817 세 수

#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 5-2 Convolutional Neural Networks

보통 Conv Neural network 는 Conv->Relu 로 layer 를 구성하고 Pool layer 를 넣게된다. 그럼 실제로 filter 가 어떻게 image 에 적용이 될까? filter 는 image 를 stride 만큼 이동하면서 dot product 를 진행한다. 하지만 filter의 size와 slide의 관계에서 한 image 를 정확하게 다 보지 못하는 경우가 생길 수 있다. 이런것을 해결해주는게 바로 Padding 이다. 대표적인 padding 은 zero padding 으로, iamge의 가장자리에 0 을 채워넣는 방식이다. 부족한 수 만큼 zero pad...

더보기

cs231n Lecture 5-1 Convolutional Neural Networks

고양이가 사물을 인식할때, 도형의 모양에 따라서 동작이 발생하는 뉴런이 다름을 알 수 있었다. 또한 Locality 에 따라 동작하는 뉴런이 다름을 알 수 있다. 사람의 두뇌도 비슷하게 작동한다. 모양에따라 작동하는 뉴런이 다르다. 여기서 착안하게 바로 Convolutional Neural Network 이다. 기존 FC Layer 는 input 을 하나의 긴 vector 로 변환해서 한번에 모든 데이터를 처리했다. Convolution Layer 는 Filter 라는게 있는데 이 filter는 쉽게 말해서 이미지를 바라볼 ‘관점’ 이다. filter 는 이미지를 sliding 하면서 원본 i...

더보기

cs231n Lecture 4 - 2 Backpropagation and Neural networks

앞에 까진 scalar 에 대해서 Back propagation 에 대해 알아보았다. 이제 vector에 대해 알아보자. vector 일때도 chain rule 이 똑같이 적용된다. Jacobian matrix 에 대한 설명은 공돌이의 수학정리노트 에 있는 설명을 보면 좋을거같다. 정말 잘 설명되있다! 공돌이의 수학정리노트 정리를 하자면, Jacobian matrix는, 다른 축의 좌표계로 변환될때 변위들의 관계속에서, 원래 변위와 변화될 변위의 관계를 설명하는 matrix 이다. 뭔가 수학적으로 어려워 보이지만, 그냥 z에 대한 x 의 미분값이 Jacobian matrix가 되는것이다. 그동...

더보기

cs231n Lecture 4 - 1 Backpropagation and Neural networks

lecture 3 에서 배웠던 Analytics Gradient 를 복잡한 함수, 복잡한 모델에서 진행하는 방식을 학습해보자. 수식을 그래프로 바꿔서 생각해보자. 어디서 많이 들어본 발상이다. 바로 Tensorflow 에서 사용하는 모든 수식을 그래프로 만들어 처리하는 바로 그 방식이다. 그럼 왜 수식을 이렇게 표현할까? 바로 Back Propagation이 가능하기 때문이다. 우리는 x라는 input 을 까지고, W 라는 parameter 를 가진다. 그럼 parameter 를 바꿔줘야 x 에 대한 최적의 값을 얻을수 있다. 근데 parameter 가 존재하는 위치가 어딜까? 단순하게 지역적으로 ...

더보기

BOJ 7562 나이트의 이동

시작지점에서 BFS 로 이동하면서, 지나간곳은 못지나가게 check, 이동할때 bfs depth 를 기록해주면서 이동한다. 최종적으로 모두 이동했을때, 목적지의 bfs depth 를 출력해주면 된다. #include <cstdio> #include <cstdlib> #include <iostream> #include <cstring> #include <string> #include <algorithm> #include <cmath> #include <vector> #include <queue> #include <...

더보기

BOJ 3015 오아시스 재결합

#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 2997 네 번째 수

들어가야할 수가 어느 구간에 존재해야할지 채크만 해주면 된다. 가장 클지, 3번째 수일지, 2번째 수일지 채크해주면 된다. #include <cstdio> #include <cstdlib> #include <iostream> #include <cstring> #include <string> #include <algorithm> #include <cmath> #include <vector> #include <queue> #include <stack> #include <deque> #include ...

더보기

BOJ 2877 4와 7

4 와 7 로만 이루어 진 수, 즉 이진수 변환 문제이다. 각 자리수에는 오직 2^자리수 만큼만의 경우의수가 존재 하므로 이를 활용한다. 최종 자리수가 정해지면, 그 자리수부터 4 인지 7 인지 판별하는것은 masking 연산으로 가능하다. 각 자리수에서 비트가 1 인 자리는 7, 0이면 4 이다. #include <cstdio> #include <cstdlib> #include <iostream> #include <cstring> #include <string> #include <algorithm> #include <cmath> #...

더보기

BOJ 1157 단어 공부

단어를 모두 소문자 또는 대문자로 만든 후, 각 알파벳의 출현 개수를 새준다. 주의할것은, 최대치가 2번 이상 나왔다면, ? 를 출력해야하는것을 잊지 않는것이다. #include <cstdio> #include <cstdlib> #include <iostream> #include <cstring> #include <string> #include <algorithm> #include <cmath> #include <vector> #include <queue> #include <stack> #include ...

더보기