Convolutional Neral Network
·
인공지능
IntroductionCNN은 이미지나 시계열 데이터를 처리하는데 특화된 신경망 구조이다. 한번 이미지 classification 문제를 일반적인 MLP로만 해결한다고 해보자.그러면 먼저 이미지의 각 픽셀들을 모두 펴서 하나의 벡터로 만들게 되고, 이를 FC(fully connected layer)에 넣서 계산한다. 이러한 방식은 픽셀간의 위치 관계(예를 들면 이미지에서 가까운 두 픽셀은 서로 멀리 떨어진 픽셀보다 더 관련이 많다)등을 무시하고, 파라미터 양도 매우 많아서 이미지를 학습하기에는 비효율적이다.반면, CNN은 이러한 픽셀들의 공간적 구조를 고려해 더 효율인 신경망이다. CNN에서 각 레이어의 역할은 다음과 같다. 1. Convolutional Layer (Conv)- 이 레이어 에서는 edg..
Mo's Algorithm
·
PS
Introduction Mo's Algorithm은 구간 쿼리들을 적절한 순서로 배치해 쿼리들을 빠르게 계산하는 테크닉 입니다. 다만, 쿼리들의 순서가 바뀌다 보니, 업데이크 쿼리가 없을때만 사용 가능합니다. 이 알고리즘은 Sqrt Decomposition과 비슷한 개념이 쓰임으로, 이를 알고 보시면 좋습니다. Algorithm $s$와 $e$를 각 쿼리의 구간 시작부분과 끝 부분이라고 할 때, 쿼리들을 $(\frac{s}{\sqrt{N}}, e)$에 대한 사전순으로 정렬 ($N$은 전체 구간의 길이)하고 순서대로 쿼리들을 계산해주시면 됩니다. (단, 두개의 포인터로 구간의 시작과 끝을 이동시키는 방식으로 계산해야됩니다) (아래 코드를 보시면 쉽게 이해가 되실겁니다.) Time Complexity 1. ..
Sqrt Decomposition
·
PS
Introduction Sqrt Decomposition이란 구간을 $\sqrt{n}$개의 bucket으로 나눠 쿼리를 $O(\sqrt{n})$ 만에 처리하는 테크닉이다. 물론 세그먼트 트리를 이용하면 $O(\log{n}) $만에 구간 쿼리를 계산할 수 있지만, Sqrt Decomposition 은 Mo's Algorithm에 기반이 된다고 하니 배워보자. 코드 아래의 코드는 이 문제를 기준으로 작성되었다. #include #include #include using namespace std; const int MAX = 1000000001, MIN = 0; struct Ele { int min, max; }; int n, m, sqr; Ele arr[100001], bucket[400]; inline E..
zanzun
zanzun blog