내 낡은 서랍 속의 바다, 빅 데이터

Topics/ETC 2012. 12. 20. 13:59 posted by Minery

손 종 수 (2012.12.01.)


그룹 패닉 3집에는 ‘내 낡은 서랍 속의 바다’라는 곡이 있다. 이 곡은 다음과 같은 노랫말로 시작한다.

내 바다 속에는 깊은 슬픔과 헛된 고민들 회오리 치네

이 곡은 가수 이적이 자신의 오래된 서랍을 열면서 떠오른 기억들이 동기가 되어 만들어졌다고 한다. 필자 역시 살면서 생긴 잡동사니들을 넣어두기 위한 큰 박스가 세 개있다. 물건을 사면 같이 딸려오는 품질 보증서라든지 고장이 난 이어폰, 충동구매로 샀다가 한 번도 쓰지 않은 스피커까지 순서나 정돈이 없이 꾹꾹 들어차 있다. 일 년에 그 박스들을 열어 보는 것이 몇 번이나 될까? 몇 번 열어보지도 않을 그 박스들을 보물이라도 되는 냥 소중히 간직하고 있다. 필자가 그 박스들을 간직하고 있는 이유는 그 안에 들어있는 물건들이 소장할 정도로 가치가 높기 때문이 아니라 그것들을 통해 과거에 필자가 했던 생각이나 느낌을 되찾을 수 있기 때문이다.
2000년대 이후 정부, 기업, 교육 계 등 할 것 없이 모든 분야에서 급속한 정보화가 이루어져 왔다. 이 과정에서 기술적 한계와 표준의 부재로 인하여 데이터들은 마치 낡은 서랍 속에 아무렇지 않게 쑤셔 넣어진 잡동사니들처럼 쌓이게 되었다. 빅 데이터란 낡은 서랍 속에 넣어둔 잡동사니들 중에서 뭔가를 찾고 싶은데 잡동사니가 너무 많아서 찾는 시간이 너무 오래 걸린다는 것이 문제가 되어 제시된 표어와 같은 용어이다. 자, 그럼 이제 빅 데이터의 정의를 짚어보자. 빅 데이터의 정의는 다양한 것이 있지만 보통은 맥킨지(McKinsey)와 IDC의 정의를 인용한다.

  • 일반적인 데이터베이스 소프트웨어가 저장, 관리, 분석할 수 있는 범위를 초과하는 데이터(맥킨지)
  • 다양한 종류의 대규모 데이터로부터 저렴한 비용으로 가치를 추출하고 데이터의 초고속 수집, 발굴, 분석을 지원하도록 고안된 차세대 기술 및 아키텍처(IDC)

정의에서 볼 수 있듯 빅 데이터는 통상적인 데이터베이스 시스템에서 처리하기 어려운 수준의 데이터를 의미한다. 그리고 이 데이터는 일정한 형태를 지닌 데이터가 아니라 다양한 형태를 가지고 있어서 데이터를 정리하는데도 엄청난 시간과 노력이 필요하다. 마치 때때로 컴퓨터에 저장시켜 놓은 예전 파일을 찾는데 많은 시간을 쏟곤 하는 것처럼 말이다. 저장 시켜둔 파일의 개수가 1만개조차 되지 않는데도 컴퓨터 안의 어디에 있는지 모르겠다며 포기한 경험을 우리는 다들 한번쯤은 가지고 있다. 만약 파일의 개수가 수천억 개라면 어떨까? 빅 데이터에서 다루는 데이터의 크기는 어떤 데이터냐에 따라 조금씩 다르긴 하지만 보통 몇 테라바이트에서 몇 만 테라바이트에 이르기도 한다. 이 거대한 비정형의 데이터에서 의미 있는 무언가를 찾아내고자한다면 우리는 무엇을 해야 할까? 빅 데이터는 이 문제를 해결하기 위한 시스템과 방법론을 모두 포함한다.

낡은 서랍 속에 숨어있는 가치를 찾아서
빅 데이터의 적용 분야는 컴퓨터가 쓰이는 모든 분야에 가능하지만 가장 크게 당면한 문제인 웹 데이터에 대해 적용하는 문제를 생각해보도록 하자. 굳이 빅 데이터를 언급하지 않더라도 2000년대 이후로 웹에는 엄청난 양의 데이터가 쌓이고 있다. 헌데, ‘스마트 혁명’을 시작으로 많은 사람들이 웹에 자신들의 이야기와 사진, 동영상을 쏟아내고 있다. 이로 인하여 웹에 적재되고 있는 데이터의 양은 그 전과 비교할 수 없을 정도로 많아지고 있다. 자료가 많아지고 있다는 것은 찾을 수 있는 정보가 많아진다는 의미이므로 우리에게 축복으로 생각할 수 있다. 그러나 다른 한편으로, 엄청나게 많아진 데이터로 인하여 원하는 정보를 찾는 것이 어려워졌다고도 할 수 있다. 이에 몇몇 선구적 연구자들은 엄청나게 쌓인 데이터 속에 그 전까지 우리가 활용하지 못했던 보석과 같이 아름답고 귀한 무언가가 있을지도 모른다고 생각했다. 그래서 이들은 방대한 양의 데이터를 분석하고 처리하기 위해 컴퓨터 몇 백대를 연결한 클러스터 서버를 구축하기도 하고 슈퍼컴퓨터를 사용하기도 했다. 빅 데이터를 분석할 수 있는 컴퓨터 시스템을 구축하고 나면 그 다음 문제에 바로 직면하게 된다. 그것은 수많은 데이터를 분석하기 위한 시스템으로 무엇을 할 것인가의 문제이다. 이 문제는 어느 분야의 기업, 조직이냐에 따라 달라지는데 미국의 온라인 쇼핑몰 업체인 아마존은 고객의 구매성향을 분석하기 위하여 빅 데이터 처리를 사용한다. 역시 미국의 거대 검색 업체인 구글에서는 사용자 맞춤형 광고를 서비스하기 위하여 빅 데이터 처리를 사용한다.
빅 데이터를 분석하면 어떤 가치를 얻을 수 있을까? 빅 데이터는 데이터를 데이터 하나하나 살펴보는 것이 아니라 큰 시각에서 흐름을 본다. 예를 들어, 인터넷 뉴스에 달려있는 댓글들을 모두 수집하여 하나의 데이터 세트로 저장 한 후 이를 분석하면 특정 기간 동안의 여론을 파악할 수 있다. 혹은 어느 지역에 사는 사람들의 모든 트위터 메시지를 분석하여 지역의 이슈를 파악할 수 있다. 축적된 데이터를 큰 시각으로 보았을 때 우리는 사회 현상, 관심사의 변화, 환경 정보의 특징 등을 파악하는 것이 가능하다. 이는 기존 데이터베이스 시스템으로는 거의 파악하기가 불가능한 것으로 빅 데이터 처리를 위한 시스템과 정리되지 않은 데이터를 정리하기 위한 기술이 반드시 필요하다.

낡은 서랍 속을 정리하는 기술 – 시맨틱 웹
시맨틱 웹(Semantic Web)은 빅 데이터의 대두와는 별개로 1999년에 팀 버너스 리(Tim Berners Lee)에 의해 제안된 차세대 웹 기술이다. 기존 웹에서는 자료를 자동적으로 처리하기가 어렵기 때문에 모든 웹 페이지, 웹 이미지, 웹 비디오 등의 웹 자원에 온톨로지라는 의미 주석을 달아서 컴퓨터 스스로 웹의 자료를 처리하도록 고안된 것이 시맨틱 웹이다. 시맨틱 웹은 논리학에 기반을 둔 기술 로직(Description Logic)을 사용하고 있으며 모든 자료를 논리적으로 처리할 수 있다. 따라서 시맨틱 웹을 사용하면 정리되지 않은 낡은 서랍 속의 데이터들을 가지런하게 정리하고 컴퓨터 시스템이 자료를 읽고 처리할 수 있도록 정형화시키는 것이 가능하다. 그러나 문제는 자료들에 의미 주석을 다는 것 또한 쉽지 않다는 것이다. 그리고 이로 인해 아직까지는 빅 데이터 분야에서 시맨틱 웹을 적극적으로 활용하고 있지 못하고 있는 실정이다. 게다가 빅 데이터와 시맨틱 웹을 동시에 연구한 연구자가 거의 드물기 때문에 두 기술을 동시에 활용하려면 학문간 융합 연구가 반드시 필요하다고 할 수 있다.

마치며
1970년대, 1980년대의 컴퓨터 시스템에는 데이터가 부족했다. 따라서 그 당시의 학자들은 데이터를 설계하고 쉽게 만드는 방법에 대해 연구했다. 그리고 부족한 데이터 속에서 의미 있는 정보를 찾아내기 위해 다양한 알고리즘과 방법론을 연구해왔다. 이 방법론들은 지금까지도 컴퓨터 관련 학과들의 기초 전공과목으로 개설되고 있다. 그러나 최근 들어 우리는 데이터 범람의 시대를 맞이하게 되었다. 이 데이터의 범람의 시대에 안타깝게도 우리는 데이터의 모든 것을 활용하지는 못하고 있기도 하다. 이제 전통적인 데이터 처리 기법 위에 비정형 대용량 데이터를 처리하기 위한 방법론과 기술을 얹어야할 시기이다. 내 낡은 서랍 속의 바다에서 물건들을 목록화하고 물건들에 담긴 소중한 기억들을 기록하지 않으면 언젠가 나이가 들어 모두 잊을지도 모르는 것처럼, 쌓여가고 있는 데이터에 숨어있는 보석같은 정보들을 우리는 활용하지도 못한 채 지나가버릴지도 모른다. 이 시대는 빅 데이터라는 화두를 통해 우리에게 쌓여있는 데이터들을 분석하고 가치 있는 정보를 찾아내라고 사명을 내리고 있는 것이 아닐까?


 ※ 이 글은 제가 KUSZINE에 기고하여 출판된 글입니다. http://blog.naver.com/ks_enter/110153588348

손종수

 

 
들어가며

오늘도 인터넷을 여행하고 계실 여러분, 당신께 필자는 큐레이션이라는 새로운 인터넷 여행 안내서를 소개해드리고자 한다. 물론 필자가 말한 ‘새로운’은 최근에 들어 조명되고 있다는 뜻이지, 갑자기 뚝딱하고 나온 것이 아님을 미리 전한다. 이미 인류가 창조적 활동을 시작한 순간부터 큐레이터라는 자들이 있어 예술, 역사의 세계를 정리하였으며, 현대의 정보과잉 시대에 진입한 이후 많은 인터넷 연구자들이 무인 인터넷 탐사선을 만들고자 노력해 왔기에 큐레이션이라는 인터넷 여행안내서가 탄생할 수 있었다. 부디 여러분들이 이 글을 읽으신 후 적극적으로 큐레이트된 정보를 활용할 수 있게 되기를 바라며 또한 스스로 큐레이터가 되어 자기 자신과 주변을 밝히는 분이되기를 바란다.

 

큐레이션이라는 안내서

이 글을 읽고 계시는 여러분도 마찬가지로 지금쯤 ‘큐레이션’이라는 단어를 검색하고 있지 않을까? 우리는 무언가 궁금하거나 정보가 필요할 때 인터넷 세계를 여행한다. 검색어를 써넣은 후 검색 버튼을 누르면 다양한 정보가 눈앞에 펼쳐진다. 그러나 인터넷의 불행은 정보가 너무 많다는 것에서 시작되었다. 너무 많은 정보는 정말 좋은 정보를 정보의 바다 깊이 묻어버렸다. 물론 구글, 네이버, 야후 같은 검색엔진이 우리가 감수해야할 수고를 어느 정도 덜어주고 있기는 하지만 여전히 좋은 정보는 정보의 바다 어딘가에 숨어있다. 필자 역시 마찬가지로, 좋은 최신 논문 하나를 찾기 위해 네 시간, 다섯 시간 넘게 정보의 바다를 헤매곤 한다. 그렇게 해서 내가 찾아낸 정보가 과연 정말 좋은 정보일까? 그보다 더 좋은 정보가 있지 않을까? 글쎄, 진리는 정보의 신만이 알고 있다. 다만, 우리 인간들은 자신들의 지식과 경험을 통해 진리에 한 발짝씩 더 다가갈 수 있을 뿐이다. 핵심은 바로 여기에 있다. 여러분들이 찾고자하는 지식과 경험을 누군가는 이미 찾아서 체계적으로 정리해놓았을지도 모른다. 큐레이션은 어떤 분야에 대해 누군가 먼저 정보를 찾아보고 정리하여 목록화한 자료를 말하며 이 글에서 말하고자하는 인터넷 여행 안내서이다. 이른바 큐레이션을 활용하면 불필요한 검색으로 인한 시간의 낭비를 줄일 수 있고, 서울 가는 길에 샛길로 새지 않을 수 있다.


예를 들어 생각해보자. 유튜브에는 엄청난 수의 동영상이 매일같이 올라오고 있다. 만약 누군가가 유튜브에서 재미있는 동영상을 찾아보고 싶다면 어떻게 해야 할까? ‘재미있는 동영상’으로 검색해야할까? 미안하지만 ‘재미있는 동영상’으로 검색해봐야 큰 성과는 없을 것이다. 그런데 어떤 사람이 자신의 블로그에 유튜브에서 자신이 보고 정말 재미있었던 동영상을 엄선하여 골라놓았다고 하자. 적어도 그 블로그의 주인장만큼의 웃음을 지닌 사람이라면 재미있게 동영상을 볼 수 있을 것이다. 그것은 블로그 주인장의 의도 여부와 관계없이 그 블로그는 “재미있는 동영상을 큐레이트”한 블로그가 된 것이다. 자, 그러면 이제 인터넷 큐레이션의 종류에는 무엇이 있고 어떤 특징이 있는지, 그리고 어떻게 활용하는지 살펴보자.

 

큐레이션에도 파(派)가 있다
무협의 세계에는 무당파, 화산파, 숭산파 등 다양한 파가 존재한다. 큐레이션에도 마찬가지로 대표적인 몇 개의 종파가 존재하는데, 필자는 큐레이션의 중추적 역할을 누가 하느냐에 따라 세 개 파로 분류해보았다.

 

전문가 큐레이션
전문가 큐레이션은 그 영역이 전통적인 미술관, 박물관 큐레이션과 다를 뿐이지 큐레이트 하는 방식이 거의 같다. 전문가 큐레이션은 전문가들이 다양한 웹 사이트나 블로그, 논문 등의 자료를 섭렵하고 그 중에 좋은 것을 골라 일반 사용자들에게 보여주는 방식을 사용한다. 이 방식은 아무래도 전문가들이 정보를 섭렵하고 정돈해주므로 잘 요약되고 분류된 고품질의 큐레이션을 볼 수 있다는 것이 장점이다. 그러나 소수의 전문가에게 큐레이션을 의존하기 때문에 질에 비해 양이 충분하지 않다는 단점이 있다. 그리고 또 한 가지 문제는 믿었던 큐레이터가 정치나 특정 기업과 연줄이 닿았을 때 큐레이션이 공정하지 않을 수도 있다는 것이다.

 

뉴욕타임즈를 방문자 수에서 이긴 허핑턴포스트 [ http://huffingtonpost.com ]
허핑턴포스트는 여러 블로그에 올라온 글 중에서 엄선된 것만을 골라 그 글의 몇 줄을 웹 사이트에 인용하고 링크를 거는 방식으로 큐레이션을 제공한다. 점차 허핑턴포스트의 방문자 수가 많아지면서 허핑턴포스트의 큐레이터들은 점차 더 전문적인 사람들의 블로그 포스트를 엄선하게 되었고 결국 2011년 후반기에 뉴욕타임즈보다 많은 방문자 수를 가질 수 있게 되었다.

 

전문가가 추천하는 디자인 명품들 [ http://www.fab.com ]
fab.com은 디자인적 요소가 많은 제품들을 대상으로 디자인 전문가들이 평가를 하고 추천한 제품들을 마치 백화점에서 보는 것처럼 보여주는 큐레이션 사이트이다. 여러분들은 전문가들에 의해서 선정된 좋은 디자인의 제품들을 ‘눈팅’하는 것만으로 즐거움을 느낄 수 있다.

 

IT 관련 기술 및 동향을 제공해주는 IT Find [ http://www.itfind.or.kr ]

위 두 사이트와는 다소 성격이 다르긴 하지만 국내 웹에서도 잘 큐레이트된 정보를 접하는 것은 어려운 일이 아니다. 그 중에 하나로, IT Find는 국가 기관이나 각 연구소에서 작성한 IT 관련 기술의 동향, 분석 보고서 등을 총 망라하여 제공해주는 웹 사이트이다. 특히 IT Find에 올라오는 자료들 중에서 ‘동향 보고서’라는 이름의 자료들은 관련 분야의 전문가들이 최근에 이슈가되는 논문이나 기술을 정리하여 빠르게 최신 기술에 대한 정보를 얻을 수 있도록 해준다.


집단지성 큐레이션


집단지성 큐레이션은 다수의 사용자들이 콘텐츠나 정보에 대한 평가를 하고 이 하나하나의 평가들을 모아서 다른 사용자들에게 추천하는 방식의 큐레이션이다. 최근에 거론되고 있는 인터넷 큐레이션 서비스들은 대부분 집단지성 큐레이션이라고 봐도 될 만큼 대세를 이루고 있기도 하다. 이런 스타일의 큐레이션은 전문가 큐레이션에 비해 다소 전문성은 떨어지지만 대중성은 더 좋다고 볼 수 있다. 그리고 집단지성 큐레이션은 참여자가 많을수록 더 믿을만한 결과를 보여준다는 특징이 있다. 그러나 집단지성 큐레이션은 때때로 너무 흥미위주이며 전문가적 식견을 볼 수 없다는 단점이 있기도 하다.
 
소셜 북마킹 서비스 딜리셔스 [ http://Del.icio.us ]
딜리셔스는 이제 너무 유명해서 다소 고루하게까지 느껴진다. 우리가 괜찮은 웹 사이트를 ‘즐겨찾기’하는 것처럼 인터넷을 돌아다니며 만난 웹 사이트를 딜리셔스에 즐겨찾기 할 수 있다. 만약 딜리셔스의 사용자가 나 하나라면 아무런 새로운 점이 없겠지만 동시에 많은 사람이 사용한다면 웹 사이트의 큐레이션이 된다. 즉, 몇 사람이 봤고 몇 사람이 즐겨찾기 했냐에 따라 우리는 좋은 웹 사이트나 콘텐츠를 쉽게 골라낼 수 있다.

 

흥미로운 지식과 정보를 공유하는 메모리스트 [ http://memoryst.com/ ]
메모리스트는 인터넷을 돌아다니다가 흥미롭거나 유용한 웹 페이지를 스크랩하고 다른 사람들과 공유할 수 있도록 해주는 서비스이다. 패션, 자동차, 자전거, 영화, 음악 등 다양한 카테고리 별로 큐레이트된 자료를 볼 수 있다.

 

사건, 이야기별로 SNS 메시지를 재구성한다 [ http://storify.com ]
소셜 네트워크 서비스를 쓰다보면 동시다발적으로 비슷한 주제에 대해서 메시지가 올라올 때 누군가 그 메시지들을 일목요연하게 정리해주길 바라는 마음이 생기기도 한다. 스토리파이는 사용자들이 트위터나 페이스북 같은 SNS에 올린 글들을 사건이나 이벤트별로 정리할 수 있도록 해준다. 누군가가 어느 주제에 대해 스토리를 만들면 사용자들은 그 주제에 대한 메시지들을 공유하면서 자연스럽게 정보가 큐레이트된다.

 

인공지능 큐레이션
인공지능 큐레이션은 사람의 손을 거치지 않고 컴퓨터가 스스로 정보의 가치를 판단하고 선별하여 사용자에게 제공하는 큐레이션이다. 필자가 인공지능 큐레이션이라고 부르는 이유는 실제로 인공지능이 구현되었기 때문이 아니라 컴퓨터가 사람의 의도를 알아서 판단하는 인공지능을 공통적으로 지향하기 때문이다. 인공지능 큐레이션은 컴퓨터가 알아서 하기 때문에 모든 것이 귀찮은 사람들에겐 안성맞춤이다. 그러나 컴퓨터라는 것이 아직까지는 사람의 감성이나 언어를 완벽히 이해할 수 없기에 때때로 부정확한 결과가 나오기도 하니 불평은 말도록 하자.

 

정리정돈이 필요한 SNS 메시지들을 큐레이트 해주는 Paper.li [ http://paper.li ]
트위터나 페이스북을 쓰다보면 시골 장터마냥 시끄럽다고 느낄 때가 있다. 사람들은 정치, 경제, 사회, 문화, 체육 등 관심사도 다양하고 친구냐, 친척이냐, 동료냐에 따라 서로 다른 종류의 메시지가 끊임없이 올라온다. 특히 트위터의 경우 타임라인의 업데이트가 너무 빨라서 뭘 해야할지도 결정하지 못한채 나가버리는 경우도 빈번하다. Paper.li는 이런 SNS 메시지들을 분야별로 정리해서 마치 신문을 보는 것처럼 24시간에 한 번씩 큐레이션해준다.

 

큐레이트된 검색 결과만을 보여주는 검색엔진 Blekko [ http://blekko.com ]
Blekko는 구글이나 야후와 같은 검색엔진이다. 하지만 Blekko는 구글, 야후와는 달리 그렇게 많은 검색 결과를 보여주지 않는다. 대신 사용자가 검색한 검색 결과를 평가하여 비중이 있는 것들만 선정하여 보여준다.

 

마치며

 ‘쿠플존’이라는 학생 커뮤니티 웹 사이트가 있다. 쿠플존은 해마다 2월이 되면 입학 예정인 새내기들의 질문 글이 넘쳐난다. 처음에는 선배들이 새내기가 반가워서 친절히 답해주지만 같은 질문이 반복될수록 선배들의 반응도 시들해지기 마련이다. 그런데 어느 날인가 한 사용자가 새내기들이 가장 궁금해하고 필요해하는 글들만 모아서 공지사항에 올려놓았다. 새내기는 그 글로 인해서 질문 글을 올리거나 검색할 필요 없이 간단히 클릭 하나로 궁금증을 해결할 수 있게 되었고 선배들 역시 대부분의 질문에 답이 되는 글 하나만 알려주면 되게 되었다. 큐레이션이란 그런 것이다. 여러분들도 여러분들이 알고 있는 지식과 노하우를 큐레이트해서 인터넷 어디엔가 올려둬 보시라. 전공에 대한 지식이든 취미에 대한 지식이든 그도 아니면 게임 아이템 획득 방법에 대한 지식이든 상관없다. 그것이 다른 누군가에겐 눈물 나게 감사한 일일 수도 있으니까.

손종수
  경기 광주 출생. 고려대학교 경영정보학과 졸업. 현재 고려대학교 대학원 컴퓨터정보학과 박사과정을 수료하고 자료구조, 인공지능 등을 강의하고 있다. 그리고 2009년 고려대학교 세종캠퍼스 커뮤니티 사이트인 쿠플존을 제작하였으며 현재는 명예운영자로 활동 중이다.


 ※ 이 글은 제가 KUSZINE에 기고하여 출판된 글입니다.


복잡계 네트워크 ( Complex network )

Topics/ETC 2011. 11. 7. 00:42 posted by Minery

복잡계 네트워크 과학(Complex network science)에 대한 개략적인 정리를 해봤다.
뭔가 시맨틱 웹, Linked data, 온라인 소셜 네트워크 등.. 우리 연구실에서 도입할 만한게 있는지 알아보기 위해 공부를 시작 했는데 끝없는 미로에 빠져버렸다. 더 깊은 미로에 빠지기 전에 일단 이쯤에서 멈추고 정리한다. 나중에 뭔가 좋은 아이디어가 생각나겠지..



Loop invariant

Topics/ETC 2010. 3. 30. 14:06 posted by Minery

loop invariant 란 루프를 돌 동안 유지되어야 하는 statement 들이다. Loop invariant 를 체크해 봄으로써 루프가 완성적인지 아닌지 체크해 볼 수 있으므로,알고리즘을 짤 때, 특히 루프를 사용할 때 루프 점검에 아주 탁월한 방법이다. Loop invariant 에는 세 가지의 요구조건이 있다.
1. Initialization (precondition)
2. Maintanance
3. Termination (postcondition)

아래의 파일을 참조하세요.

Information Theory and ID3 Algorithm

Topics/ETC 2009. 2. 2. 23:11 posted by Minery

본 발표자료는 정보이론(Information theory)과 ID3 알고리즘에 대한 튜토리얼 형식의 발표자료 이다. 본 발표자료의 내용은 모두 내가 만든 것이 절대!! 아니고 웹에 산재한 자료를 (불법적으로) 긁어와서 재구성했고 발표 자료의 중간 이후 부터는 luger의 인공지능 책에서 내용을 간추려 정리하였다.




XML clustering method

Topics/ETC 2009. 2. 2. 22:51 posted by Minery
본 발표자료는 07년 가을에 대학원 데이터마이닝 수업을 들으며 중간발표로 쓰인 자료이다. XML 포맷의 데이터를 클러스터링하기 위한 방법들을 소개하며 zip파일에는 발표자료에서 인용된 논문들을 첨부시켰다.
1. Introduction 에서는 xml 포맷 파일의 개요와 관련된 클러스터링에 대한 개요를 기술하였으며, 2. XML and XML schema 에서는 xml에 대해 생소한 사람들을 위해 간략히 xml 파일 포맷의 기초를 서술하였다. 3. Relational vs. XML 에서는 관계형 데이터베이스로 데이터를 관리하는 방법과 xml 파일을 이용해서 데이터를 관리하는 방법에 대해 비교하였다. 그리고 4. Paper overview 에서 관련 클러스터링 기법을 소개한다.



인공신경망 (EBPA) 프로그래밍

Topics/ETC 2009. 1. 19. 19:29 posted by Minery
아래의 발표자료 및 C++ 코드는 인공신경망 중 오류역전파 알고리즘으로 불리는 EBPA (Error BackPropagation Algorithm)을 C++로 구현하고 실험한 자료이다. 편집기로 소스코드를 열면 인풋, 히든, 아웃풋 레이어를 설정할 수 있으며 트레이닝 데이터는 traning.dat에서 설정하며 testing.dat에서 결과를 확인할 수 있다.
 
* 이전에 올려두었던 프로그램은 아웃풋 레이어의 노드가 두개일 때만 잘 작동합니다.
* 한참동안 잊고 살다가 얼마전에 살펴보니 그런 문제가 있더라구요.
* 고쳐서 새로 올렸습니다.



아래의 발표자료는 2005년 대학원 수업 들으면서 발표했던 발표자료이다. 별로 잘 알지도 못하는 홈 네트워크와 상황인지관련 기술에 대해 공부하면서 발표자료를 준비했다. 발표준비를 하는 성의로 보자면 지금보다 그 때가 더 성실하지 않았나.. 하는 반성이 생긴다.


Context Aware Middleware for Ubiquitous Home-network

1. Definition of “Context”
2. Why middleware for context awareness
3. Characteristics of middleware for context awareness
4. Middleware for context awareness in Ubiquitous  computing environment
5. EPC network
6. Conclusion
7. References


Learning : capability of general intelligence

Learning이란 일반적 지능의 가능성을 말하며 여기서의 지능은 세계와 경험에 의하여 일련의 상호작용을 통해 행동과 판단이 바뀔 수 있게 하는 것을 의미한다.

 

기계학습에는 3가지의 범주가 있는데 1)symbol based machine learning, 2) biological machine learning 그리고 3) social interaction machine learning이 있다.

1)    text , simbol을 기반으로 한 기계학습으로서 formal logic, induction, decision tree등의 기법이 여기에 해당된다. 주로 function이나 logic에 의한 기법들로서 판단(decision)능력은 이미 검증된 바 있으나 위에서 정의한 학습(Learning)의 측면에 있어서 새로운 사실을 받아들이고 검출해내는 능력은 떨어진다.

2)    인체의 구조나 생물의 구조에 아이디어를 얻어 그것을 컴퓨터로 구현한 것이다. 대표적으로는 인공신경망과 유전자학습 알고리즘이 있다. 인공신경망은 인간의 뇌에 존재하는 뉴런을 구현한 것으로서 패턴학습을 시키는데 뛰어난 능력을 발휘한다. 그러나 1000억개의 뉴런이 있는 인간의 뇌와 비교해서 훨신 적은 뉴런의 개수 때문에 학습이 수월치 않다는 단점과 search, indexing능력이 떨어지는 편이다. 그리고 유전자 학습 알고리즘은 풀고자 하는 문제에 대한 가능한 해들을 정해진 형태의 자료구조로 표현한 다음, 이들을 점차적으로 변형함으로써 점점 더 좋은 해들을 찾는 방법이다. 즉 풀고자 하는 문제에 대한 가능한 해들을 염색체로 표현한 다음 이들을 점차적으로 변형함으로써 점점 더 좋은 해들을 찾는다. 유전자 학습 역시 최적해를 구하는데 유용하게 사용될 수 있으나 search문제나 목록화 문제를 해결하는데 있어서 적절치 않다.

3)    Social interaction 방법의 대표적인 예로서 Agent가 있다. 에이전트(소프트웨어, 하드웨어 또는 다른 방식의) agenthood 한 행동특징을 보여 센서(sensor)를 통해서 소프트웨어 환경을 지각하고 Actuator를 통해 행동한다. Agent는 자율적으로 수행된다. 에이전트는 대개 (소프트웨어를 포함해서) 논리적으로 또는 다른 방법으로 학습(Learn)하고 추론(Reason)하는 능력을 가진다. 그들은 세상과 다른 것들에 대한 사실들과 규칙들을 발견할 수 있고, 이러한 진리여부를 추정하고 추론할 수 있고, 그들의 Ontology를 변경할 수 있다. Agent 구현의 가장 큰 문제점으로는 behavior rule을 어떻게 만들 것인 가에 대한 문제이다.

Monkey and banana problem

Topics/ETC 2008. 12. 24. 23:28 posted by Minery

Monkey and banana problem은 인공지능(Artificial Intelligence), 특히 논리프로그래밍 (Logic Programming) 에서 유명한 토이 이그잼플(Toy example)이다. 이 문제를 해결하는 과정은 상식적인 추리를 수행하는 자동 문제풀이기(automatic problem solver)의 동작을 설명하기 위해 많이 언급되기도 한다. 이 문제의 변형으로서 장롱속의 바나나를 열쇠를 사용해서 꺼내는 것도 있다. 문제는 다음과 같이 주어진다.

어떤 방에 원숭이, 의자, 책상, 그리고 바나나가 있다. 원숭이와 책상과 의자는 모두 방의 바닥에 있으며 바나나는 천장에 매달려있다. 바나나를 얻기 위해 원숭이는 어떤 동작들을 수행하여야 하는가? 원숭이는 바나나를 따먹을 수 있을 정도로 키가 크지 않다. 책상 위에 올라가도 바나나를 따먹을 수 없으며 책상 위에 의자를 올려놓은 후 의자위에 올라가면 바나나를 따먹을 수 있다.