데이터분석 167

텐서플로우 입문기 (4) - 딥러닝(CNN)을 통한 손글씨 인식.

컨볼루션 뉴럴 네트워크. 이름만해도 너무나도 멋있는 기법인데 사실은 이걸 이해하려고 위키피디아를 보고있으면 20시간을 봐도 이해하지 못 한 기억이 있다. 너무나도 처음부터 전문적인 내용을 파려고 했던듯. 근데, 이 작은 책은 이해하는데 20분도 채 걸리지 않게 해주었다. 일단, 그 무시무시한 컨볼루션 신경망을 한번 이미지검색해본다. 이렇게 보면 이해할수가 없다. 무언가 단계만 많이 보이는듯. 아무래도 컨볼루션(합성곱) 의 경우는 이미지 인식에서 굉장히 많은 기여를 하였고, 태생자체도 시각적 특징을 감지하는데 많이 쓰인다고 한다. 생각을 해보면 어떠한 이미지를 인식하는데 픽셀 하나하나 검사하면, 사실은 너무 지엽적일수 있다. 사실 우리는 좀더 큰 시야에서 특징을 잡고 사물을 인식하지 않나? 예를들어 눈이 ..

텐서플로우 입문기 (3) - 인공신경망을 이용해서 펜글씨 예측

MNIST데이터를 가지고, 실제 인공신경망을 돌려볼수 있다. 이 데이터는 아래와 같이 여러 숫자들을 손글씨로 쓴것들을 모아놓은 데이터인데, 5000개의 데이터가 존재하며 이는 모두 레이블링 되어있으므로 실제로 학습결과를 판단하기에 용이하다. 다만, 실제로 저런 손글씨중에는 우리가 알아보기 힘든 손글씨도 존재하긴 하다. 3의 첫번째 글자는 저게 3인지 8인지 구분하기가 상당히 어렵고, 8의 열네번째 경우도 8이라고 보기 힘든 글씨체나 다름이 없다. 기계한테 독심술까지 강요할수는 없다. 따라서 약 90퍼센트의 확률만 때려맞춰 줘도 평타는 치는 경우라고 할수 있겠다. 텐서플로우에서 제공하는 이러한 숫자필기 이미지들을 가지고 하면 되는데 이는 다음과 같이 간단한 코드로 가져오기가 가능하다. 이제 가져온 이미지를..

텐서플로우 입문기(2)

K평균 알고리즘. 군집은 초기단계서부터 가까운 군집에 할당하는 방법으로 상당히 빠른 시간안에 계산된다고 한다. 위와같은 대충의 데이터를 만든 다음에, 한번 그룹화를 해볼수 있다. 전체적인 코드는 다음과 같다. 일단, 데이터는 일부러 두가지정도로 군집화된 데이터를 생성했다. 데이터프레임은 numpy보다 쓰기 편한 자료 구조이다. 이를 constant화를 하여 4개의 군집을 중심으로 랜덤하게 섞은 값을 중심값으로 정한다.

텐서플로우 입문기(1)

대한민국에 사는 사람들 머릿속에 몰아친 혁명은 바로 두가지였다. 바로 2016년말에 일어난 2백만 평화 병신항쟁 그리고 모든 패러디와 풍자를 낳았던 알파고의 등장. 전자는 다수의 사람들의 힘을 여실히 보여주었고, 후자는 대량의 데이터의 힘을 보여주었다. 어쨌든 IT블로그이니 알파고의 힘을 가능케한 구글의 오픈소스 머신러닝 라이브러리인 텐서플로우를 입문하는 기록을 남겨야겠다고 생각했다. 이용한 서적은 [텐서플로 첫걸음, 한빛미디어, 조르디토레스 지음, 박해선 옮김] 리눅스 터미널로 깔짝깔짝하니 그래프도 안튀어나오고 답답해 죽겠어서 다시한번 친구한테 받은 포맷도 안되는 2009년형 맥똥컴을 부팅. $ sudo easy_install pip $ sudo pip install --upgrade virtualen..

R 에서 readTableHeader 에러가 떨어질경우

readTableHeader에 의하여 발견된 완성되지 않은 마지막 라인입니다 read.table시, 에러가 뜰때에는 해결방법이 구글에 잔뜩올라와있는데, 엑셀의 마지막 라인에다 엔터를 치라고 되어있다. 허나, 잘 안된다. csv로 변환해서 한다고 하면 이러한 메시지가 뜰때가 있다. line 23 did not have 2 elements 왜냐구? 안에 string내부적으로 띄어쓰기가 되어있다. sep 패러미터를 주지 않으면 알아서 띄어쓰기가 seperator로 작동하게 되므로 다음과 같이 sep을 주면 된다. > df = read.table("F:\\data.csv", header = TRUE, sep = ",")다만 엑셀에서 csv로 저장할때는 comma delimited라고 되어 있으면 동작

데이터분석 2016.05.01

R - Tableau 연결

> install.packages("Rserve");> library(Rserve); 위와같이 Rserve를 설치하고 다음의 명령어로 실행 > run.Rserve() -- running Rserve in this R session (pid=13956), 1 server(s) -- (This session will block until Rserve is shut down)그리고 Tableau 로 돌아가서 도움말 -> 설정 및 성능 -> R연결관리 연결확인 후, '계산된 필드 추가' 를 통해, SCRIPT_REAL이라는 함수로 실행가능 다만 속도가 좀 느린것같아 더이상은 안하고싶다. 참고 https://www.datascienceriot.com/how-to-use-r-studio-with-tableau/kr..

데이터분석 2016.05.01

영상정합 (Registering Images)

영상정합은 컴퓨터 비전을 다른시점이나 관점에서 촬영했을때, 이를 하나의 좌표계에서 처리하기 위한 기법이다. 다른 말로 말하면, 이미지를 비교할수있게 잘 조정하는것.아래와 같은 의료영상을 시간에 따라 비교하거나 할때 영상정합 과정을 거쳐서 이미지 보정을 할 수 있다. 출처 : http://2014.ncigt.org/pages/File:Resection.png 예를들어 나의 17년간의 얼굴을 평균내고 싶다고 하자. 이를 평균내려면 언제는 작게 찍히고 언제는 크게 찍히는 경우가 있을텐데 이를 보정해서 평균을 낼 필요가 있다. 다음의 대단한 사람을 참조하면http://jk-keller.com/daily-photo/총 17년동안 자기 이미지만을 찍어서 올린사람인데, 동영상을 찍기전에는 내부적으로 평균을 맞춰서 이..

최소자승법 (Least Square Solution)

데이터와 오차간의 합을 최소화하도록 모델의 파라미터를 구하는 방법.즉 어떤 모델을 가지고 데이터들을 추론하더라도 딱 그 방정식의 직선 위에 그 값들은 존재하지 않고 어느정도 오차를 가지고 떨어져있게 마련인데 이를 최소화하는것이 바로 최소자승법(Least Square Solution) 이다.위와같은 식으로 구한 X가 잔차제곱의 합을 최소로 하는 모델 파라미터다만, 몇개의 아웃라이어가 껴있으면 RANSAC등을 이용하여야한다.