일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 오토인코더
- CNN
- Python
- 역전파법
- 자전거 여행
- 전처리
- A Neural Algorithm of Artistic Style
- 딥러닝
- SQL
- 오일러 프로젝트
- 수달
- 소수
- Gram matrix
- c#
- 신경망
- 소인수분해
- 냥코 센세
- bayesian
- 역전파
- deep learning
- 합성곱 신경망
- 비샤몬당
- mnist
- 베이지안
- Autoencoder
- backpropagation
- neural network
- Convolutional Neural Network
- project euler
- 히토요시
- Today
- Total
통계, IT, AI
문제는 이곳에서 확인할 수 있다. 모든 square root는 주기를 갖는 분수 꼴로 나타낼 수 있다고 한다. 문제의 예시와 같이 square root의 주기를 반환하는 함수를 작성하여 문제를 풀었지만 주석의 why? 부분은 왜 그것이 보장되는지 모르겠다. import math def f(k, a, b): ''' b/(sqrt(k) - a) to C + (sqrt(k) - A)/B return A, B, C ''' d = (k - a ** 2)/b assert int(d) == d # why? d = int(d) _a = [_a for _a in range(math.ceil(math.sqrt(k) + a - d), math.floor(math.sqrt(k) + a) + 1) if _a % d == 0] ..
문제는 이곳에서 확인할 수 있다. \(16807=7^5\)이며 5자리 숫자이다. 이와 같이 어떤 수의 길이가 n이면서 n승의 형태로 나타낼 수 있는 양의 정수의 개수를 찾아야 한다. 문제의 조건에서 \(10^n\)은 \(n+1\)자리수가 되어 체크할 필요가 없음을 알 수 있다. import itertools ans = 0 for k in range(1, 10): for n in itertools.count(1): if len(str(k ** n)) == n: ans += 1 elif len(str(k ** n)) < n: break print(ans) 답은 49이다.
문제는 이곳에서 확인할 수 있다. 문제의 조건에서 순열에 속하는 모든 수는 같은 자리의 수임을 알 수 있다. 따라서 n을 1부터 늘려가면서 세제곱을 구해가면서 자리수가 달라질때 체크하면 된다. import collections cubic_nums = collections.defaultdict(list) digit_len, n = 1, 1 target_perm_len = 5 while True: cubic_num = str(n ** 3) _len = len(cubic_num) if _len != digit_len: res = [min(v) for v in cubic_nums.values() if len(v) == target_perm_len] if len(res) > 0: print(min(res)) br..
문제는 이곳에서 확인할 수 있다. 계산을 해보니 4자리의 polygonal number는 각각 100여개가 채 되지 않았다. 또한 3부터 8까지의 숫자를 나열하는 개수도 많지 않다. 이 정도면 brute force로도 해결이 가능할 것 같다. import pandas as pd import itertools import functools def p(k, n): if k == 3: return n*(n+1)//2 if k == 4: return n*n if k == 5: return n*(3*n-1)//2 if k == 6: return n*(2*n-1) if k == 7: return n*(5*n-3)//2 if k == 8: return n*(3*n-2) p_num = dict() for k in ra..
문제는 이곳에서 확인할 수 있다. 어떤 소수 두개를 앞뒤로 합치면 그 수도 소수가 되는 경우가 있다. 예를 들면, 3과 7, 3과 11 등이 있다. 이를 연결되었다고 하자. 3, 7, 109 그리고 673은 두개의 원소를 뽑았을때 모두 연결되며, 원소의 개수가 4개인 집합 중 합이 가장 작다. 개수가 5인 집합 중 합이 가장 작은 것을 찾고 그 합을 구하는 것이 문제이다. 3부터 시작하여 소수 판별을 한 뒤, 새로 찾은 소수가 기존의 소수와 연결되는지 판단한다. 길이가 3인 집합이 만들기 위해서는, 연결되는 두 소수를 고른 뒤 모든 원소가 새로 찾은 소수와 연결되는 지 확인하면 된다. 예를 들어 새로 찾은 소수가 109라고 하자. 기존의 소수로 만들 수 있는 109와 연결된 소수는 {3, 109}, {7..
DB에서 조회결과가 없을 때, 빈 리스트가 아닌 디폴트값이 나오도록 하고 싶을 때가 있다. 물론 코딩으로 구현할 수도 있지만, 경우에 따라서는 쿼리만 사용하는 것이 더 간단하기도 하다. 다음과 같이 쿼리를 작성하면 조회 결과가 있을 때는 해당 결과를, 없을 때는 디폴트값으로 '%'를 한 줄 반환한다. 단, mariadb 기준이다. with tb_tmp as ( select 'reason_code' as cd, '0001' as val union all select 'reason_code' as cd, '0002' as val ) select t1.val from tb_tmp t1 where 1=1 and t1.cd = 'reason_code' union select nvl(t1.val, '%') from..
1. 개요 A Neural Algorithm of Artistic Style은 2015년에 발표된 논문으로, 신경망을 이용하여 특정 이미지를 다른 이미지의 화풍을 모방하여 재구성하는 내용을 담고 있다. 발표가 된 직후부터 상당히 화제가 된 논문으로 내가 신경망에 관심을 갖게 된 계기이기도 하다. 본 포스팅에서는 해당 논문에서 소개한 style transfer의 원리를 간략하게 설명하고 논문에 등장한 figure를 재현한다. 2. 원리와 재연 본 논문에서 제시하고 있는 방법은 한 이미지에서는 내용을, 다른 이미지에서는 스타일을 학습하고 결과를 적절하게 혼합하여 이미지를 생성하는 것이다. 먼저 내용을 학습하는 방법을 설명한다. Convolution layer는 filter를 통해 이미지의 특징을 잡아내는 역..
2014년 7월 5일 토요일 알람을 맞춰 일어났다. 날이 흐렸고 오후에 비가 올 수도 있다고 하여 신경쓰였다. 오늘은 나츠메 우인장의 배경이 되는 장소를 둘러보고 히토요시를 벗어날 생각이다. 텐트를 개어 정리하고 아침을 먹었다. 오늘 차도에 차가 별로 없길래 왜 그럴까 생각해 보았는데 토요일이라 그랬던 것 같다. 코인란도리에 들러 전자기기를 충전하며 멍때렸다. 밤에 잠을 좀 설쳐서 그랬는지 꾸벅꾸벅 졸았다. 적당히 충전을 마치고 먼저 텐구바시를 보러 출발했다. 텐구바시는 나츠메 우인장에서 자주 등장하는 붉은 다리이다. 주인공 나츠메는 이 다리에서 한번 떨어지기도 하였다. 구마모토 쪽으로 히토요시 역 보다 한 정거장 전에 있다. 가장 유명한 장소이기 때문에 1순위로 정하였다. 자전거를 타고 그쪽으로 가다보..
2014년 7월 3일 목요일 눈을 뜨니 일본이었다. 2006년에 처음 보았던 후쿠오카의 첫 인상과 달라진 것이 거의 없었다. 비가 오고 있었지만 심한 비는 아니었다. 식사를 하고 하선하니 내 자전거가 나와있었다. 짐을 붙이고나니 모든 것이 순조로워보였다. 경쾌하게 페달을 밟으려고 밖으로 나가니 비가 엄청나게 오고 있었다. 하늘을 보니 아주 오래 올 비는 아닌 것 같았지만 그대로 하카타항에 앉아있고 싶지도 않았다. 어제 만났던 외국인들은 버스를 타고 가는 것을 보니 부러웠다. 자전거 여행을 하면서 비를 만나는 것은 으레 있는 일이지만 그렇다고 익숙해지는 것은 아니다. 어떤 아저씨가 말을 걸었다. 그들도 자전거 여행을 왔는데 오늘은 비가 너무 많이와서 그냥 내일부터 출발할 것이라고 하였다. 고민하다가 그냥 ..
자전거 여행기를 올리는 이유 최근에 어떤 자전거 여행기를 보게 되었다. 그리고 나도 자전거 여행을 하고 싶다는 생각을 하게 되었다. 사실 자전거 여행을 해보지 않은 것은 아니다. 2009년에 제대한 후 그 해부터 2014년까지 매해 자전거로 전국을 돌아다녔으니 사실 자전거 여행을 좋아한다고 해야 맞을 것이다. 하지만 직장을 잡고 나니 돈보다 시간이 더 비싼 자원이 되었다. 그리고 좋아했던 자전거 여행은 해야만 하는 일, 해서 좋은 일, 필요한 일들에 밀려 우선순위의 밑바닥까지 내려갔다. 사실 최근 들어 낙심하는 마음이 컸다. 오랫동안 진행한 일의 결과가 좋지 않고 요즘 진행하고 있는 것도 지지부진하기 때문이다. 그러던 중 자전거 여행기를 보며 내가 좋아했던 것을 다시 생각하게 되니 기분이 조금은 나아졌다..