전체 글 59

백준 9248번: Suffix Array 파이썬 (LCP 배열)

문제링크: 9248번: Suffix Array (acmicpc.net) 9248번: Suffix Array Suffix Array란, 문자열 S가 있을 때 그 접미사들을 정렬해 놓은 배열이다. 예를 들어, 문자열 S=banana의 접미사는 아래와 같이 총 6개가 있다. Suffix i banana 1 anana 2 nana 3 ana 4 na 5 a 6 이를 Suffix 순으로 정 www.acmicpc.net 이 문제는 단어의 Suffix Array를 구하고 LCP (Longest Common Prefix) 배열을 구하는 문제이다. Suffix Array란 단어의 접미사들을 알파벳 순서대로 정렬해 놓고, 정렬한 각 접미사들의 시작 인덱스를 저장한 배열이다. LCP 배열이란 Suffix Array를 구한 ..

백준 2023.05.09

백준 13034번: 다각형 게임 (스프라그-그런디 정리)

문제링크: 13034번: 다각형 게임 (acmicpc.net) 13034번: 다각형 게임 N개의 꼭짓점으로 이루어진 볼록 다각형이 있다. 다각형의 내각은 모두 180보다 작다. 꼭짓점은 1부터 N번까지 시계 방향으로 번호가 매겨져 있다. 성관이와 홍준이는 다각형에서 게임을 하려고 www.acmicpc.net 이 문제는 두명이 다각형 게임을 플레이하는데, 둘 다 모두 가장 이상적으로 행동한다고 했을 때 누가 이기는지 구하는 문제이다. 여기서 다각형 게임이란 N개의 꼭짓점으로 이루어진 이루어진 볼록 다각형에서 턴마다 번갈아가며 점 2개를 골라 선분을 긋는데, 여기서 선분은 이미 그은 선분과 교차하면, 점에서라도 교차하면 안된다. 그렇게 번갈아 선분을 그어나가다가 선분을 더이상 그을 수 없는 상태가 되면 해당..

백준 2023.03.22

cs231n Assignment 3: Q4-2 (SimCLR 구현)

내 풀이 링크:https://github.com/lionkingchuchu/cs231n.git GitHub - lionkingchuchu/cs231n: cs231n Spring 2022 Assignment cs231n Spring 2022 Assignment. Contribute to lionkingchuchu/cs231n development by creating an account on GitHub. github.com SimCLR: https://arxiv.org/pdf/2002.05709.pdf 이번에는 저번 포스팅에서 설명한 SimCLR 구현 과제에 대한 풀이를 하겠다. 다시 간략하게 과정을 설명하면 기존의 사진 데이터 x에서 여러가지 방법을 사용해 data augmentation 된 x~i, ..

cs231n 2023.03.14

cs231n Assignment 3: Q4-1 (Self-supervised Learning, SimCLR 설명)

이번 과제에서 구현할 것은 SimCLR (A Simple Framework for Contrastive Learning of Visual Representations (arxiv.org))이다. 과제를 시작하기에 앞서 이번 포스팅에서는 SimCLR에 대한 이해를 한 후, 다음 포스팅에서 과제를 시작해 보겠다. 우리가 Assignment 1, 2에서 사용한 딥러닝 방식은 train data에 target label이 붙어 있는 supervised learning 방법을 사용했었다. 그러나 supervised learning의 단점은 위와 같이 모든 train data에 target label을 붙여주어야 하는데, 이는 보통 사람이 하게 된다. 예시로 CIFAR-10데이터에서 사진을 보고 (개, 고양이, 자..

cs231n 2023.03.09

백준 3878번: 점 분리 (Convex hull 겹침 판정)

문제링크: 3878번: 점 분리 (acmicpc.net) 3878번: 점 분리 평면 위에 여러 개의 검정 점과 흰 점이 있다. 이때, 길이가 무한대인 직선을 그어 흰 점과 검은 점을 분리하려고 한다. 직선은 어떤 점과도 만나면 안 된다. 직선으로 인해서 나누어지는 두 그룹 www.acmicpc.net 이 문제는 좌표평면 상의 여러개 하얀 점과 검은 점들이 있을때, 이 점들을 직선으로 분류할 수 있는지 없는지 판단하는 문제이다. 데이터적으로 보면 여러개의 데이터를 points로 좌표평면 위에 할당하고 이 데이터들을 분류할때 linearly separable 할수 있는지를 판단하는 문제로도 응용할 수 있곘다. 먼저 좌표평면 상 두 개의 그룹을 분류한다고 치면, 한 그룹과 다른 그룹의 범위가 겹치지 않으면 될..

백준 2023.03.07

cs231n Assignment 3: Q3 (GAN 구현)

내 풀이 링크:https://github.com/lionkingchuchu/cs231n.git GitHub - lionkingchuchu/cs231n: cs231n Spring 2022 Assignment cs231n Spring 2022 Assignment. Contribute to lionkingchuchu/cs231n development by creating an account on GitHub. github.com 이번 과제는 GAN 신경망 Genarative Adversarial Network 를 구현하는 것이다. GAN이란 지금 까지 우리가 다룬 classifier의 역할을 하는 모델이 아닌 새로운 데이터를 만드는 Generator를 만드는 네트워크를 만드는 것이다. 논문 [1406.2661..

cs231n 2023.02.27

cs231n Assignment 3: Q2-2 (Multi-head Transformer 구현)

내 풀이 링크: https://github.com/lionkingchuchu/cs231n.git GitHub - lionkingchuchu/cs231n: cs231n Spring 2022 Assignment cs231n Spring 2022 Assignment. Contribute to lionkingchuchu/cs231n development by creating an account on GitHub. github.com 이번 과제는 Transformer을 사용한 Captioning 구현이다. Transformer는 지난번에 배운 self attention에서 데이터를 나누어서 attention layer를 적용시키는 multihead self attention을 사용한다. [1706.03762] A..

cs231n 2023.02.26

cs231n Assignment 3: Q2-1 (Attention 설명)

내 풀이 링크: https://github.com/lionkingchuchu/cs231n.git GitHub - lionkingchuchu/cs231n: cs231n Spring 2022 Assignment cs231n Spring 2022 Assignment. Contribute to lionkingchuchu/cs231n development by creating an account on GitHub. github.com 이번 과제는 Transformer Captioning 에 대한 과제이다. 이 Transformer 라는 모델 architecture와 Attention에 대한 상세한 개념이 2017년에 나와서 유튜브에 있는 cs231n 강의에서는 전혀 다루고 있지 않았다. 그래서 2022년 cs23..

cs231n 2023.02.26

cs231n Assignment 3: Q1 (Vanilla RNN 구현)

내 풀이 링크:https://github.com/lionkingchuchu/cs231n.git GitHub - lionkingchuchu/cs231n: cs231n Spring 2022 Assignment cs231n Spring 2022 Assignment. Contribute to lionkingchuchu/cs231n development by creating an account on GitHub. github.com 이번 과제는 vanilla RNN 신경망을 사용해서 이미지와 이미지에 대한 설명이 저장된 COCO dataset을 통해 어떤 이미지를 입력받으면 이미지에 대한 설명을 적어주는 신경망 모델을 만드는 것이다. vanilla RNN 신경망은 X가 연속적인 데이터일때 주로 사용한다. X의 데..

cs231n 2023.02.25