공부(Archive)
-
Deep Photo Style Transfer 리뷰공부(Archive)/ML DL 2021. 8. 14. 02:23
Paper: https://arxiv.org/abs/1703.07511 (2017 CVPR, Fujun Luan) Abstract 본 논문은 deep-learning을 이용한 회화풍의 transfer[1]를 기반으로 만든 photographic style의 transfer에 대해서 소개하고 있다. 회화풍의 transfer가 갖고 있는 문제점 중 하나는, photorealistic한 image들에선 제대로 동작하지 않는다는 점으로, content image와 style image가 모두 사진인 경우에도 여전히 회화풍의 결과물을 낸다. 논문에서는 변환이 colorspace에서의 locally affine 하도록 제한하며, 이러한 제한을 미분 가능한 energy term으로 표현했다고 한다. [1]: Imag..
-
BOJ 20530: 양분공부(Archive)/BOJ 2021. 1. 7. 15:54
www.acmicpc.net/problem/20530 20530번: 양분 첫째 줄에 두 자연수 $N$, $Q$가 주어진다. 주어지는 그래프의 정점과 간선의 개수가 $N$개이며 쿼리가 $Q$개 주어진다는 것을 의미한다. 둘째 줄부터 $N$개의 줄에는 $i$번 간선이 연결하는 두 정점 www.acmicpc.net 풀이 자체는 굉장히 쉽게 떠올렸는데 구현하는데 제법 애를 먹어 글로 남겨놓는다. 문제를 간단하게 요약하자면 $N$개의 정점으로 이루어진 트리에 간선이 하나 추가된 그래프가 주어지고, $q$개의 쿼리가 주어진다. 쿼리는 $u,\ v$의 형태로 주어지며 두 정점 사이의 단순 경로의 개수를 구하는 문제이다. 가장 간단한 접근 방법은 주어진 두 정점 $u,\ v$가 주어질 때마다 탐색을 하여 경로의 개수를..
-
BOJ 1168: 요세푸스 문제 2공부(Archive)/BOJ 2020. 12. 20. 19:45
www.acmicpc.net/problem/1168 1168번: 요세푸스 문제 2 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 100,000) www.acmicpc.net $N$, $K$가 주어졌을 때 요세푸스 순열을 순서대로 출력하는 문제이다. 순열을 간단히 요약하자면 $K$칸씩 건너뛰면서 해당 위치에 있는 번호를 제거하는 순열이다. 단 중간에 빠진 사람을 카운트해서는 안된다. 즉 어떤 구간의 합이 $K$인지를 파악하고 딱 그만큼이 되는 부분으로 이동할 수 있게끔 만드는 것이 핵심이라 생각했기 때문에 segment tree를 이용하여 $K$ 번째 수를 구하는 문제와 유사하다고 생각하여 접근하였다. Seg tree를 이용하여 $K$ 번째 수를 구하는 것은 이분 탐..
-
나혼자 정리해보는 케라스 튜토리얼 (2-2. 학습과정 이야기)공부(Archive)/ML DL 2020. 6. 17. 14:59
이 글은 tykimos.github.io/lecture/에 있는 내용을 토대로 나름대로 혼자 공부하고 정리한 글입니다. DL을 함에 있어서 학습과정이라 하면 굉장히 복잡한 과정을 거친다고 느꼈지만 keras에서는 이러한 것을 fit()이라는 함수 하나로 쉽게 해결해준다. 이 함수는 fit(x, y, batch_size, epochs)의 인자를 가지며 각 인자는 아래와 같은 역할을 한다. x: Input data y: Label data Batch_size: Data를 몇 개 단위로 나누어 학습할 것인지 Epochs: 학습을 몇 번 반복할 것인지 강의자료에서는 label 즉 답이 없는 경우를 해답지 없이 모의고사를 푸는 것으로 비유하고 있다. 여기서 눈여겨봐야 할 변수는 batch_size와 epochs라..
-
나혼자 정리해보는 케라스 튜토리얼 (2-1. 데이터셋 이야기)공부(Archive)/ML DL 2020. 6. 10. 16:21
이 글은 tykimos.github.io/lecture/에 있는 내용을 토대로 나름대로 혼자 공부하고 정리한 글입니다. DL을 이용하여 어떤 input을 토대로 output을 만들기 위해 model이 필요하다. 이러한 model을 만드는 것을 model을 학습시킨다라고 표현하는 듯하다. Model을 학습시키기 위해 필요한 것이 바로 dataset이다. 어떤 dataset을 어떻게 학습시키느냐에 따라 그 결과가 상당히 달라지는 듯하다. 위의 강좌에서는 dataset에 관한 내용을 수능을 치르기 위한 고등학생들로 예시를 들어 표현하고 있다. 예시를 잘 이해하기 위해 대학수학능력시험을 치르기 위해 공부하던 때로 돌아가보자. 다른 사람들은 어땠을지 잘 모르겠지만 나의 경우 기본서를 이용해 이론과 기본 문제들을 ..
-
BOJ 3025: 돌 던지기 (미해결)공부(Archive)/BOJ 2020. 5. 13. 14:50
https://www.acmicpc.net/problem/3025 3025번: 돌 던지기 문제 이 모든 사건의 시작은 2주 전이었다. 그 날 상근이는 복도에 누워서 잠을 자고 있었다. 커다란 돌을 들고 그 옆을 지나가던 민혁이는 복도에서 잠을 자는 사람을 처음봐서 신기하게 쳐다보 www.acmicpc.net 최근 구현능력이 많이 떨어지는 것을 느껴 시뮬레이션/구현 문제를 풀던 중 재밌는 문제를 찾았다. 간단하게 요약하자면 위에서 돌을 떨어뜨렸을 때 돌을 적절히 굴려주고 최종 결과를 출력해주는 문제이다. 사실 처음 어떻게 접근할까 고민하던중 최근 set을 이용하여 해결했던 문제가 있어 set을 이용하여 아래와 같은 방법으로 구현하였다. 각 set에는 가장 처음 벽의 위치를 저장한다. 벽의 위치를 저장후 맨..
-
BOJ 1509: 팰린드롬 분할공부(Archive)/BOJ 2020. 5. 6. 20:54
https://www.acmicpc.net/problem/1509 1509번: 팰린드롬 분할 세준이는 어떤 문자열을 팰린드롬으로 분할하려고 한다. 예를 들어, ABACABA를 팰린드롬으로 분할하면, {A, B, A, C, A, B, A}, {A, BACAB, A}, {ABA, C, ABA}, {ABACABA}등이 있다. 분할의 개수의 최솟값을 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제를 간단히 요약하자면 주어진 문자열을 부분 문자열들로 나누는데 모든 부분 문자열이 팰린드롬이어야 한다. 이때 부분 문자열의 최소 개수를 구하는 문제이다. 가장 처음 시도한 방법은 모든 구간 $[l, r]$에 대하여 팰린드롬인가를 확인할 수 있는 배열 $chk[l][r]$을 만들었다. 이후 행렬 곱셈 순..
-
BOJ 3079: 입국심사공부(Archive)/BOJ 2020. 5. 6. 16:50
https://www.acmicpc.net/problem/3079 3079번: 입국심사 문제 상근이와 친구들은 오스트레일리아로 여행을 떠났다. 상근이와 친구들은 총 M명이고, 지금 공항에서 한 줄로 서서 입국심사를 기다리고 있다. 입국심사대는 총 N개가 있다. 각 입국심사관이 심사를 하는데 걸리는 시간은 사람마다 모두 다르다. k번 심사대에 앉아있는 심사관이 한 명을 심사를 하는데 드는 시간은 Tk이다. 가장 처음에 모든 심사대는 비어있고, 심사를 할 준비를 모두 끝냈다. 상근이와 친구들은 비행기 하나를 전세내고 놀러갔기 때문에, 지금 심사 www.acmicpc.net 최근 실패했던 문제들을 다시금 도전해보고 있던 도중 "이 문제가 왜 실패한 문제에 있지?"싶었던 문제가 하나 있었다. 문제의 대략적인 풀..