본문 바로가기

수치해석

(5)
PCA를 이용한 eigenface - test data로 확인해보기 eigenface들을 다 얻었으니 test data를 통해 실제로 approximation이 잘 되는지 확인해보았다 test data는 처음 사용한 이미지셋이 아니라 유명인 사진을 이용해보았다 coefficient 50개와 최대값인 1024개를 비교해보았는데 아래와 같은 결과가 나왔다 50개는 비슷한 사진이라는건 알겠지만 사람들이 다 무서워졌다ㅋㅋ 1024개는 당연한 말이지만 원본과 거의 유사한 이미지가 나왔다 2차원의 이미지를 무식하게 1차원으로 변환하고 해상도도 매우 낮은 이미지를 썼지만 그래도 눈에 보이는 결과가 나와서 신기하긴했다 실제로 pca가 어떻게 응용될 수 있는지 알 수 있던 기회였다
PCA를 이용한 eigenface - eigenface 만들기 데이터 전처리를 통해 얻은 이미지들을 (이미지개수, 32, 32) 형태의 numpy array로 만들어주었다 이미지가 3차원이기 때문에 SVD를 쉽게 이용하기 위해 2차원으로 바꾸어주었다 (이미지개수, 1024)의 형태가 되었으므로 eigenface의 기저는 최대 1024개가 되었다 1 2 3 4 5 6 7 # subtract average value from original data data_avg = np.average(data_orig,axis=0) data = data_orig-data_avg A = data.reshape(data_size,32*32) U,s,V=np.linalg.svd(A, full_matrices=False) plt.plot(s[:100]) cs 해당 코드를 실행시켜보면 s가..
PCA를 이용한 eigenface - 데이터 전처리 PCA는 고차원의 데이터를 저차원의 데이터로 표현하는 방법인데 이를 얼굴 이미지에 사용하여 공통적인 부분을 뽑아내고 인물 분류에 사용할 수 있다 수학적인 내용은 잘 정리된 블로그들이 많기 때문에 실제로 구현했던 방법 위주로 작성해보고자 한다 먼저 데이터는 해당 사이트에서 받아서 사용하였다 http://vis-www.cs.umass.edu/lfw/ LFW Face Database : Main vis-www.cs.umass.edu deep-funneling을 통해 정면으로 align된 데이터여서 좋았다 OpenCV를 사용하여 얼굴 부분만 32 x 32 사이즈로 저장하였다 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 i = 0..
System equations 연립방정식은 2개 이상의 미지수를 포함하는 집합이다 방정식의 개수와 미지수의 개수를 비교하여 세가지로 나눌 수 있다 Square system 미지수의 개수와 방정식의 개수가 같은 경우이다 두 직선의 교점과 같은 예시가 있다 $ y = ax + b $ , $ y = cx + d $ x,y의 두개의 미지수와 두개의 방정식! 이런 square system의 경우 solution은 unique하거나 없다 가우스 소거법을 사용해 solution space를 구할 수 있다 LU분해를 함께 진행해준다면 연산 시간을 줄일 수 있다 Under constrained system 미지수의 개수보다 방정식의 개수가 적은 경우이다 두개의 평면의 접선과 같은 예시가 있다 이때 미지수는 세개, 방정식은 두개가 되므로 두 평면이 만..
Finding roots $ f(x) = 0 $의 해를 찾는 방법은 여러가지가 있고 x값 또한 하나의 수, 평면에서의 좌표, 3차원 이상의 공간에서의 좌표 등 여러가지 형태로 나타낼 수 있다 이 때 closed form expression은 일반적으로 손으로 써서 계산했던 근의 공식이라던가 사칙연산으로 나타낼 수 있는 값과 같이 일반적으로 받아들여지는 연산들의 조합으로 이루어진 solution을 말한다 이와 반대로 non-closed form(open) expression은 재귀와 같이 식으로 나타낼 수는 없지만 적절한 값을 찾아낼 수 있는 solution이다 반복적인 연산은 프로그래밍으로 구현하게 된다 수치해석에서의 여러 해를 구하는 방법을 크게 세가지 카테고리로 나누어 알아보자 Graphcial Methods 해를 구하기 위..