-
AI tutorial - Image Classification
AI tutorial - 1 . Image Classification Contents 들어가며 이미지 분류기란? Pytorch로 만든 이미지 분류기 발전 방향 참고 들어가며 인공지능 분야에 대한 관심과 발전이 비약적으로 상승하고 있는 시대입니다. 인공지능의 시대라고 할 정도로 인공지능은 우리의 삶에 도움을 주고 있고, 그 정도도 끊임없이 상승하고 있죠. 비전공자 또는 일반적인 사람들도 인공지능에 대해 알고자 하고, 공부하고자 하는 사람이 늘어났습니다. 인공지능을 발전시킨 딥러닝, 머신러닝 기술들은 현재진행형 상태입니다. 많은 연구가 진행되고 있고, 성능을 계속 향상시키는 논문들이 발표되고 있습니다. 속도는 빠르게, 정확도는...
-
Erdös-Ginzburg-Ziv 정리
서론 0과 1이 $X$개 있을 때, 그 중 항상 같은 수가 $N$개 이상 있게 하는 최소의 $X$는 $2N-1$이다. $X=2N-2$인 경우에는, 0과 1이 $N-1$개 존재하면 불가능하다. $X = 2N-1$개 있을 때는, 비둘기집의 원리에 의해서 항상 0이 $N$개 혹은 1이 $N$개 존재한다. 우리는 이 비둘기집의 원리의 일반화된 버전을 생각해 본다. 임의의 정수가 $X$개 있을 때, 그 중 합이 $N$의 배수가 되는 $N$개를 고를 수 있는 최소의 $X$는 얼마인가? 수로 0과 1만 가능한 것이 아니라, 모든 정수가 가능하다....
-
GCC 확장 기능 2
서론 지난 글에서는 GCC에서 다양한 목적들을 가진 방대한 양의 확장 기능들을 제공한다는 것을 보았습니다. 이번 글에서는 지난 글에 이어 더 많은 확장 기능들을 살펴보고 어떻게 활용할 수 있을지에 대해 설명하도록 하겠습니다. 포인터를 사용한 goto 표준에서 goto문은 이름을 지정한 레이블로만 점프가 가능합니다. GCC에서는 이를 확장시켜서, 레이블이 위치한 주소를 얻어와 포인터를 사용하여 goto를 할 수 있도록 만들어 줍니다. 예시 코드는 다음과 같습니다. #include <stdio.h> int main(void) { int i = 0; void *ptr = &&start; start: printf("hello\n");...
-
UCB1 알고리즘의 pseudo-regret 분석
소개 멀티 암드 밴딧(Multi-armed bandit) 문제는 순차적 의사결정 문제(sequential decision problems)의 일종으로써 충분한 정보가 주어지지 않은 상황에서 탐색(exploration)과 이용(exploitation)의 균형을 찾는 것을 목표로 합니다. 멀티 암드 밴딧 문제에는 다양한 변종이 있는데 이번 글에서는 확률론적 멀티 암드 밴딧(Stochastic Multi-armed Bandit)과 성능 지표인 후회값(regret)의 정의를 알아보겠습니다. 또한, 이 문제를 해결할 수 있는 간단한 알고리즘 중 하나인 UCB1의 유사 후회(pseudo-regret)의 상한이 라운드 수에 대한 로그 스케일 이하임을 증명해보겠습니다. Stochastic Multi-armed Bandit 확률론적 멀티 암드 밴딧(Stochastic Multi-armed Bandit)은 각...
-
동적 계획법을 최적화하는 9가지 방법 (Chapter 4)
동적 계획법을 최적화하는 9가지 방법 (Chapter 4) 이 글은 Chapter 3에서 계속된다. 9. Dynamic Tree DP Dynamic Tree DP는 특수한 형태의 Tree DP를 최적화할 수 있는 방법으로, 일반적인 직선에서 행렬과 같은 구조를 사용하여 DP를 최적화하는 것과 비슷한 방식이다. 사실 Tree DP가 아니라 일직선에서 하는 DP 문제라 하더라도 최적화 방법이 자명하지 않기 때문에, 이 글에서는 먼저 일직선에서의 DP 최적화를 먼저 설명한다. (일직선에서의 이러한 DP 최적화를 부르는 말은 잘 모른다.) In Line 다음과 같은 문제를 생각해 보자....