본문 바로가기

전체 글

(128)
27933 - 대회 이름 정하기 step 1더보기카드를 고를 수 있는 구간이 정해졌다고 해봅시다. 그럼 그 구간에는 K들과 Y들이 번갈아가며 있습니다. 각 선수들이 최선을 다해 플레이를 한다면 각 구간 안에서 가장 큰 값을 가져갈 것입니다. step 2더보기연속한 K와 Y를 K묶음, Y묶음으로 표현하겠습니다. 만약 카드를 고를 수 있는 구간 안에 묶음이 포함된다면 그 묶음 안의 최댓값만 알고 있으면 됩니다. 다른 카드는 절대 고르지 않을 것이니까요. 그럼 묶음의 일부만 포함된다면 어떻게 될까요? 우선 묶음의 가운데가 포함된다면 답은 YK 0입니다. 어차피 둘 다 아무것도 고르지 못합니다.그럼 오른쪽이나 왼쪽이 포함되는 경우를 생각해 봅시다. 그럼 포함되는 영역 중 최댓값을 뽑을 것입니다. 그럼 각 위치마다내 묶음의 왼쪽에 있는 값 중 ..
[논문 구현] SSD: Single Shot MultiBox Detector 모델 구현 이제 SSD를 구현해 보겠습니다. 저는 이미지를 받으면 트럼프 카드의 위치와 카드의 색(빨강, 검정)을 찾아주는 인공지능을 만들 것입니다.  논문에서는 vgg-16을 Conv5_3 레이어까지 가져왔습니다. 아래 그림에서 D에 해당하는 부분입니다. 이 부분 먼저 구현해 보겠습니다. 여기서 he_normal은 가중치를 초기화 해 주는 방법 중 하나입니다. kernel_regularizer은 커널의 가중치가 너무 커지는 것을 막기 위한 것입니다. 해당 모델의 summary를 출력해 봅니다. 이 뒤 부분도 진행해 줍니다. 다행히 논문과 같은 구조가 나왔습니다. 이제 각 클래스 별 confidence와 위치를 가져올 것입니다. 이 값들은 c4_3, c7, c8_2, c9_2, c10_2, c11_2에서 Conv2..
KMP 어떤 문자열(이하 text)에서 특정 문자열(이하 pattern)이 있는지 판단하는 문제가 있다 합시다(https://www.acmicpc.net/problem/1786). text의 길이를 $N$, pattern의 길이를 $M$이라 하면 단순 비교로 할 때 $O(NM)$의 시간이 걸립니다. 이를 $O(N+M)$으로 만들어 주는 것이 KMP(Knuth-Morris-Pratt Algorithm)입니다.방법단순 비교로 하면 $O(NM)$이 걸린다고 했었죠. KMP는 이 알고리즘에서 불필요한 과정을 제거했습니다. 위 과정을 보면 aaaaaa 부분은 더이상 안봐도 될 것 같은데 계속해서 검사해 주고 있습니다. 이 부분을 줄이기 위해서는 fail function에 대해 알아야 합니다.fail functionfai..