일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 히토요시
- deep learning
- mnist
- 냥코 센세
- A Neural Algorithm of Artistic Style
- Autoencoder
- bayesian
- Gram matrix
- 합성곱 신경망
- 수달
- c#
- 베이지안
- 전처리
- 소수
- 소인수분해
- 딥러닝
- 비샤몬당
- neural network
- Python
- 자전거 여행
- 역전파
- project euler
- backpropagation
- 오일러 프로젝트
- CNN
- 역전파법
- 오토인코더
- Convolutional Neural Network
- SQL
- 신경망
- Today
- Total
통계, IT, AI
1. 개요문제는 이곳에서 확인할 수 있다. 어떤 정수 \(a\), \(b\)가 주어졌을 때, Quadratic form \(n^2+an+b\)는 \(n=0\)부터 시작하여 소수를 연속적으로 생성한다. 예를 들어 \(n^2+n+41\)은 40개의 소수를, \(n^2-79n+1601\)은 80개의 소수를 생성한다. 소수를 연속적으로 가장 많이 생성하는 \(a\)와 \(b\)를 찾고 그 곱을 구하는 것이 목표이다. 단, \(a\), \(b\)를 \(\left| a\right| lim: break self.prime_list.extend(prime_candidate_list) def quadratic_formula(n, a, b): """소수를 생성하는 식""" return n**2 + a*n + b p = P..
1. 개요문제는 이곳에서 확인할 수 있다. 1보다 크고 1000보다 작은 어떤 자연수 \(d\)로 순환소수 \(1/d\)를 만들 수 있다. 예를 들어 \(1/6=0.1(6)\)이며 \(1/7=0.(142857)\)이다. 순환되는 부분이 가장 긴 \(d\)를 찾는 것이 목표이다. 2. 구현: ver 1.0나눗셈을 수행하면서 순환되는 부분이 어디에서 발생하는지 확인한다. # -*- coding: utf-8 -*- def count_reciprocal_cycles(d): """나눗셈을 수행하면서 나머지가 0이면 순환되는 부분이 없으므로 0을 반환한다. 나머지가 이미 발생한 나머지라면 순환이 시작되는 부분이므로 이 부분을 찾는다.""" quotient_list, remainder_list = [], [] n =..
1. 개요문제는 이곳에서 확인할 수 있다. \(n\)번째 피보나치 수열의 값을 \(F_n\)이라고 할 때 최초로 1000의 자리를 넘는 \(F_n\)의 \(n\)을 구하는 것이 목표이다. 단, \(F_1=F_2=1\)이다. 2. 구현: ver 1.0처음에는 피보나치 수열의 일반항을 구하여 진행하려고 했으나 일반항에 무리수가 포함되어 있고 거듭제곱 연산이 발생하기 때문에 계산상 오차가 발생하였다. 피보나치 수열의 일반항은 3. 피보나치 수열의 일반항에 적고, 본 문제의 해결은 피보나치 수열의 정의를 이용한다. # -*- coding: utf-8 -*- import math as m fn_2, fn_1 = 1, 1 fn = fn_2 + fn_1 n = 3 while m.log(fn, 10) < 999: # ..
1. 개요 문제는 이곳에서 확인할 수 있다. 숫자 0, 1 그리고 2가 주어졌다고 하자. 이 숫자들로 만들 수 있는 순열을 크기 순으로 나열하면 012, 021, 102, 120, 201 그리고 210이다. 이때 이 순열의 3번째 값은 102이다. 이와 같은 방식으로 0부터 9까지의 숫자가 주어졌을 때 100만번째 값을 구하는 것이 목표이다. 2. 구현: ver 1.0 0, 1, 2가 주어지고 5번째 값을 구한다고 하자. 가장 앞에 오는 수는 2이다. 왜냐하면 0과 1이 가장 앞에 올때 순열의 가짓수는 각각 2이기 때문이다. 이후 남은 5-2-2=1번째 순열을 구하면 되므로 남은 0과 1이 선택된다. 이와 같은 방식을 구현한다. # -*- coding: utf-8 -*- import math as m d..
1. 개요 문제는 이곳에서 확인할 수 있다. 어떤 자연수 \(n\)이 있을 때, \(n\)을 제외하고 \(n\)을 나누어 떨어지게 하는 수들을 proper divisors라고 하자. proper divisors의 합이 \(n\)과 같을 때 \(n\)을 perfect number라고 한다. 그리고 proper divisors의 합이 \(n\)보다 작을 때 \(n\)을 deficient number, 클 때 abundant number라고 한다. 예를 들면, 28의 proper divisors는 1, 2, 4, 7, 14이며 그 합은 28이므로 28은 perfect number이다. 12의 proper divisors는 1, 2, 3, 4, 6이며 그 합은 16이므로 가장 작은 abundant number이..
1. 시작하며 1.1 신경망 연구의 역사 1.1.1 다층 신경망에 대한 기대와 실망 - backpropagation의 등장하면서 신경망 연구에 진전이 있었으나 아래의 두가지 이유 때문에 붐이 끝나게 되었다.- 첫째, backpropagation은 다층 신경망에서의 overfitting을 막을 수 없었다. - 둘째, 이론을 만들기 어려워 연구가 어려웠다.- 단, Convolutional Neural Network; CNN은 다층 신경망에서 학습에 성공했고 특히 이미지 인식에서 좋은 성능을 보였으나, 신경망 연구에 대한 관심이 떨어지면서 CNN 또한 그렇게 되었다. 1.1.2 다층 신경망의 사전훈련(pre-training) - 다층 신경망에 대한 사전훈련을 통하여 학습이 원활하게 이루어짐이 보고됨에 따라 신..
1. 개요- 목표는 이 논문을 이해하고 딥러닝을 이용하여 화풍을 모방하는 시스템을 만드는 것이다. 해당 논문은 아래와 같이 이미 오래 전부터 화제가 되었던 것이다. SBS 뉴스: 이건 '반 고흐'의 그림이 아닌 '컴퓨터'의 그림입니다. 2. 계획- 딥러닝이 신경망(Neural Network)의 난제를 해결하면서부터 발전했다는 것은 알기 때문에 신경망에 대한 공부를 선행하는 것으로 한다. - 라는 책이 공부하기에 적합해 보여 이 책을 요약하면서 따라가는 것으로 한다. - 단, 목표로 하는 것을 이루기 위해서는 이 책에서는 합성곱 신경망(Convolutinal Neural Network; CNN)까지만 이해하면 되는 것 같으니 거기까지만 진행하며 이후의 과정은 다른 자료를 참고한다.- 위 책은 상세한 구현은..
1. 개요 문제는 이곳에서 확인할 수 있다. 자연수 \(n\)보다 작으면서 \(n\)을 나누어 떨어지게 하는 수를 proper divisor라고 하자. 그리고 \(d(n)\)을 \(n\)에 관한 proper divisors의 합이라고 정의하자. 이때 서로 다른 \(a\)와 \(b\)에 대하여 \(d(a)=b\), \(d(b)=a\)의 관계가 있을 때 \(a\)와 \(b\)를 amicable numbers라고 한다. 예를 들어, \(d(220)=284\), \(d(284)=220\)이므로 220과 284는 amicable numbers이다. 10000보다 작은 amicable numbers의 합을 구하는 것이 문제의 목표이다. 2. Ver 1.0\(d(n)\)을 정의할 때, 처음에는 소수를 사용하는 방법을..
1. 개요 풀이가 워낙 간단하여 19, 20번 두 문제를 푼다. 각각의 문제는 이곳과 이곳에서 확인할 수 있다. 19번 문제의 목표는 1901년 1월 1일부터 2000년 12월 31일에서 각 월의 1일이 일요일인 날의 수를 세는 것이다. 20번 문제는 \(100!\)의 각 자리의 수를 더하는 것이다. 2. Ver 1.0 # -*- coding: utf-8 -*- import datetime, math # 19. Counting Sundays print(sum(1 for y in range(1901, 2001) for m in range(1, 13) if datetime.date(y, m, 1).weekday() == 6 )) # 20. Factorial digit sum print(sum(int(i) f..
1. 들어가며 얼마전에 모표준편차를 추정하기 위하여 표본의 범위와 표본의 표준편차 중 무엇을 사용하는 것이 더 나은지 포스팅한 적이 있다. 그것을 밝히기 위해서 여러가지 공식을 증명했었지만 내용과 관련이 없는 것은 적지 않았다. 그렇게 증명한 것 중에 버리기 아까운 것을 적는다. 임의의 분포를 따르는 변수 \(X\)의 평균 \(E(X)\)이 0, 분산 \(Var(X)\)이 \(\sigma^2\), 제곱의 평균 \(E(X^2)\)이 \(\mu_2\) 그리고 네제곱의 평균 \(E(X^4)\)이 \(\mu_4\)라고 하자. \(E(X)\)을 0으로 설정한 이유는 일반성을 잃지 않으면서도 계산의 복잡성을 낮추기 위함이다. 독립적인 \(n\)개의 sample로 계산한 표본 분산 \(s^2\)이 \(\sum_{i}..