- oharinth
'AI'에 해당되는 글 4건
- 2009/08/30 논리 판단 도구와 human-computer 공통언어에 대한 note (2)
- 2009/08/30 흥미로운 검색엔진 캐롯(Carrot)
- 2009/05/25 단어 사이의 연관구조와 Enigmatrix
- 2009/05/22 무한과 유한 그리고 Adventurer
- oharinth
어제 저녁 때 m1s3군과 저녁식사를 하다가 흥미로운 검색엔진을 리서치 해보자는 얘기를 들었다.
우리나라에서는 거의 알려져 있지 않은 것 같다.
carrot이란 녀석이다.
http://demo.carrot-search.com/
검색결과를 clustering(군집화) 해주는 기능과 visualize(시각화) 해주는 참신한 기능이 있다.
백두산을 한번 검색해 보았다.
백두산의 검색결과:
백두산을 검색하자 좌측 부분으로 clustering(군집화) 된 카테고리들을 보여준다.
백두산이 어떤 속성을 가지는지 대략적으로 이해할 수 있게 해 준다.
야후가 인터넷 초창기에 카테고리를 통해 대상을 찾아들어가는 방식과 정반대로 대상을 통해 카테고리를 보여주는 방식인 것이다. Data Mining 기법이 사용된 것 같다.
여기서 Visualization탭을 눌러보면 재미난 결과를 볼 수 있다.
백두산의 Visualize (시각화 결과):
백두산과 관련된 속성 들과 카테고리의 특성을 컬러풀하게 직관적으로 설명해주는 것이다.
어찌보면 단순한 아이디어 같지만, 재미있고 참신하다.
소녀시대의 검색결과:
소녀시대에 대한 특성이 clustering(군집화) 및 카테고리화 된다.
sbpyun군과 예전에 논의했던, 단어와 관계된 연결구조와 Enigmatrix가 떠올랐다.
캐롯은 그 아이디어와는 조금 다른 클러스터링이라는 기법을 쓰고 있지만, 관계성을 만드는 고리로 클러스터링을 활용해보는 방법도 좋을 것 같다는 생각을 해본다.
어찌보면, 캐롯의 시각화는 도식적이고 단순한 측면도 있지만, 충분히 새로우며, 상상력을 자극해 주며, 응용해볼 분야가 많은 것 같다.
캐롯은 야후와 위키의 정보를 기본적으로 사용하는 것 같고, 오픈 소스 진영의 다양한 검색엔진 프로젝트를 융합시켜서 만들고 있는 결합 프로젝트 같다.
좀 더 리서치해볼 가치가 있는 흥미로운 검색 엔진이다.
술자리에서 m1s3군과 나눈 추가 이야기:
carrot이 clustering을 하더라도 내가 추구했던 reasoning이나 연관관계에 대한 추론기능이 없다면, 한계점이 있는 검색 엔진일 거라는 지적을 했었다.
역시 resoning이나 추론, 동적인 operater같은 기능은 없는 것 같다. 구글이나 울프램 알파도 물론 마찬가지다.
우리가 좀 더 강력하고 뛰어난 검색엔진을 만들 여지가 아직 많은 것이다.
-oharinth
댓글을 달아 주세요
너와 논의 하던 단어사이의 연관성을 표현하기 위한 직관적인 좋은 예가 Wired지 최신호에 그림이 실렸다.
신기하게도 요즘 내가 너에게 설명하고자 했던 자료 구조와 너무 흡사해서 손뼉을 탁 하고 쳤을 정도다.
와이어드 웹에서 찾아보니 그 그림을 제대로 볼 수 있는 링크를 찾았다. (아래다.)
http://www.wired.com/special_multimedia/2009/mf_enigmatrix
아주 직관적이어서 맘에 든다.
단, 이 논의는 이번 Wired지의 컨셉이 Puzzle, Mystery, Magic이기 때문에 수수께끼 같은 퍼즐같은 테마와 정보들이 위와 같은 정보 구조로 연결되어 있다는 것을 보여주는 사실상 거의 오락적인 이미지다.
하지만, 오락적인 이미지 치고는 상당히 직관적이고 각 테마들의 연관성에 대해 연결되는 Key값들까지 멋지게 표현되고 있다.
사실, 저 Enigmatrix 는 그저 대중의 눈을 끌기 위한 지극히 단순한 형태의 Graph에 불과하다.
또한 자료 구조만 존재할 뿐 어떻게 추론할 수 있는 지에 대한 아무런 내용도 존재하지 않는다.
하지만, 저 섹시한 이미지를 바라보면 여러가지 방향으로 상상의 나래를 펼칠 수가 있었다.
(사실 저와 같은 Graph 구조는 스타워즈DVD 제작후기영상이나, 이번 터미네이터4 영화도중에도 멋지게 표현되었다. )
정확히 표현한다면, 그런 미디어들을 보기 이전부터 이와 같은 자료구조에 대한 그림은 머릿속에 이미 그린 후였지만, 어쨌든 그 그림은 수학적으로는 매우 단순한 Graph일 뿐임 또한 이미 인지하고 있었다.
저 이미지에서 Mathmatics와 Mystery 를 연결시킬 수 있는 다양한 Path가 가능하다.
( 만두집에서 나는 '시인'과 '벽돌'의 연관성은 무엇일까? 라는 화두를 던졌었다. )
어떤 Path가 가장 훌륭한 Path 즉 - solution 일까?
추론할 수 있는 경로는 굉장히 많다.
이것은 마치 양자역학적으로 보면 입자가 위치A에서 위치B로 이동하는 대에 수많은 Path가 가능하다는 컨셉과 비슷한 면도 있는 것 같다.
어느 것이 최선의 선택일까?
위키나 Google은 막대한 양의 자료구조를 축적하긴 하지만, 저와 같은 신경망 구조 사이의 연관성이나 추론 작용은 전혀 해주지 못한다.
네가 말한 MSDN도 물론 마찬가지로 그저 돌대가리 같은 Link의 덩어리들일 뿐이다. Node 와 Node 사이의 Path에 대해선 아무것도 말해주지 않는 멍청한 자료구조 덩어리들이다.
울프램 알파를 써본 결과, Node 에 해당되는 property는 이미 정형화되어 있었고, 그것을 동적으로 추가하는 기능은 찾지 못했다.
Britney의 Age는 검색이 되지만, Britney의 Height는 전혀 모른다고 나온다. 멍청하기 이를 데 없다. Britney의 Height 속성(Property)를 추가하는 기능은 없었다.
이것은 동적인(또는 완전히 색다른 방식의 탐색적인, 또는 지능적인) 자료구조 갱신 기능을 구현해야 해결할 수 있을 것 같고,
또한, 효율적인 추론(또는 검색) 알고리즘을 추가해야만 지능적인 검색문제를 해결할 수 있을 것 같다.
그 추론 알고리즘으로 삼단논법이나, 포함관계, Correlation, 6하원칙( Who, Why, Where, ... 등 ), 귀납/연역추론 등의 기법을 적절하게 적용시키면 어떤 새로운 검색 기법을 만들 수 있을 것으로 생각된다.
Graph 구조의 연결함수는 어떻게 만들 수 있을까, 또한 어떻게 추론(또는 검색) 알고리즘을 만들어야 할까?
이것이 앞으로 탐험할 부분이다.
상상의 나래 속에서 뇌우와 폭풍 속에서 몰아치는 알고리즘들의 형상들이 존재한다.
지금 떠 오른 하나의 이미지는,
신경망구조 = 뉴런(Object 또는 Node) 그리고 시냅스 (Property 및 Method) 라는 구조가 상상되었다.
물론 이미지는 이것 말고도 중첩되어서 여러가지 황당스러운 몽상적인 아이디어들이 떠오르고 있다.
그것들을 앞으로 하나씩 논의해보고 싶다.
댓글을 달아 주세요
무한과 유한에 대하여 서로의 오해가 많이 풀린 것 같다.
무한에 대하여 발견하고, 도전하여 유한의 화폭에 담는 노력을 가치있다고 너도 말했다.
따라서, 서로의 뜻은 일치한다고 생각한다.
문제는 용기라고 넌 말했다.
나의 대답은 이렇다.
무한을 떡주무르듯 주무르고 도전하고자 하는 자신감과 용기가 내게도 있다.
따라서 진실이라는 바다, 무한이라는 바다로 탐험하고 Adventure할 것을 제의 한다.
"진실이라는 거대한 대양이 탐험되지 않은 채 놓여 있음에도 불구하고 해안에서 아름다운 조개 껍데기를 찾으며 즐거워하는 아이"
잘 알겠지만, 뉴튼이 한 말이다.
무한한 세계에서 유한의 화폭으로 작은 것을 발견한 것으로도 굉장한 발견의 희열과 그 가치를 느낄 수 있다는 대목이다.
하지만 난 무엇보다, 그 순수한 호기심과 즐거움에 오히려 더 큰 매력을 느낀다.
“내가 세상을 좀 더 멀리 볼 수 있다면 이는 단지 내가 거인들의 어깨 위에 서있었기 때문이다”
이 말은 조금 다르게 오늘날의 경우로 말하면, 세상을 분석하고 바라볼 수 있는 수많은 Tool과 정보는 이미 많다.
그들을 잘 활용만 하면 우리는 미래를 예측하고 더 멀리 내다보는 것도 가능하다는 의미.
솔직히 난 뉴튼을 싫어한다. 뉴튼의 주절댐을 인용하고 싶지도 않고.
다만, 그 괴물같은 냉철한 과학적 사고력과, 라면발 같은 뽀글보글한 가발을 쓰고 사색에 빠진 근엄한 표정의 천재 과학자의 모습말이다. 무엇보다 미적분이라는 기절초풍할 마법을 발견했다는 것도 뉴튼을 인간이 아닌 초인으로 보게 할 만하다.
그런데도 저런 어린 아이 같은 짧은 말을 남긴 걸 보면, 그의 정신도 그 기반은 순수한 호기심과 동심이 있었던 것 같다.
우리가 할 수 있는 건 무엇일까?
무한의 바다에서 조개를 주워도 되고, 나심이나 David X Li, Chris Anderson, Mathmatica, Java같은 거인(?)이 만들어 놓은 조개를 적당히 이용해서 진주조개목걸이를 만들어도 충분히 멋진 일이 아닐까?
구글보다 파워풀한 독창성으로 넘치는 지능형 추론엔진을 만들고, 매트릭스보다 환상적인 Virtual Space를 만들고, 누구도 예측못했던 Stock의 미래를 분석하고, 좁은 지구를 벗어나 은하와 우주를 분석하고 탐험하는 일 말이다.
일단 소떼에서 나와서 그런 소릴 하라고?
나도 그러려고 노력 중이다. 이 꼬뚜레를 좀 풀어 놓고 말이다.
댓글을 달아 주세요
안녕하세요? 제가 관심있는 부분과 닿아있어 짧게 의견 남겨봅니다.
2009/09/19 16:08 [ ADDR : EDIT/ DEL : REPLY ]인간의 사고를 아이콘이나 심볼로 표현하는 새로운 언어 혹은 상형문자는 기본적으로 인간의 시각기능을 전제하고 있습니다. 그러한 인간의 언어를 컴퓨터가 제대로 수용하기 위해서는 인간들이 기본적으로 전제하고 있는 공통의 전제조건들, 시각적 심상이 해당 컴퓨터의 바탕에 있어야 한다고 생각합니다. 인간과 컴퓨터의 공통 언어라는 곳에서 컴퓨터의 언어 이해를 배제한 구문해석 정도로 생각하신다면 공통언어는 영어가 되어도 좋을 것 같습니다. 더군다나 수화나 아이콘을 매체로 하는 언어의 경우에, 그 매체를 통한 발화의 특성상 다양한 표현을 하기가 어려우며, 인간만 하더라도 모두가 공감하는 아이콘 혹은 수화의 경우 극히 제한되어 있을 것입니다. 고개를 끄덕인다는 제스쳐만 해도 여러 나라에서 다른 의미로 받아들여지기도 하니까요. 결국 언어를 기호로 보았을때 기의와 기표 둘 다 있어야 실제적인 의사소통에 사용될 기호가 성립될 것인데 컴퓨터가 적절한 기의를 정합시킬 수 있어야 할 것이며, 또한 언어에서는 문법이 있어야 다양한 표현이 가능해 질 것인데 이것 또한 언어행위자의 인식능력과 연관되는 것이기 때문에 프롤로그와 새로운 수화류의 언어로는 소통의 가능성이 미약할 것이라 생각합니다.
흥미로운 글 남겨주셔서 감사드립니다.
2009/10/05 12:19 [ ADDR : EDIT/ DEL ]시각적 심상이 해당 컴퓨터의 바탕에 있어야 한다. 라고 하신 대목은 의미심장한 것 같습니다.
저도 같은 같은 고민을 하고 있었습니다.
조금 더 깊이 생각한다면, 시각적 심상 뿐 아니라, 인간의 오감, 즉 청각, 후각, 미각, 촉각 (좀 더 샛길로 간다면 의식과 무의식 ) 등 인간의 경험 자체를 이미지화 하는 작업이 필요할 것입니다.
이를 구현할 수 있는 기술은 패턴 인식이 될 수 있다고 생각합니다. 예를 들면 사과라는 Object를 인식시키기 위해서는 사과의 3차원적인 형태에 대한 시각적 모델링 자료가 필요할 것이며, 단 맛에 대한 센서 모델링도 필요할 것입니다. 제가 머릿속의 번개와 구름속에서 구현하고자 하는 부분이 바로 이 "기의" 적인 자료구조를 만드는 일과 관련되어 있었습니다.
"기의"와 "기표"로 분류하신 개념으로 본다면 위와 같은 경험 모델링은 "기의" 쪽을 다룰 수 있는 토대가 될 것입니다.
아이콘이나 상형문자, 수화언어는 "기표" 쪽에 해당될 수 있겠죠.
결국 기의, 기표 양쪽 모두에 대한 자료구조화와 소프트웨어적 구현이 필요합니다.
하지만 지금 제 막연한 짐작으로는 "기표"적인 것이 그나마 현재의 기술로는 구현하기가 수월하고 연구도 많이 되고 있다라는 것이며, "기의"적인 쪽은 훨씬 복잡하며 난해한 연구주제가 될 것이라고 생각합니다.
때 마침, 덜 난해한 "기표적"인 자료구조에 대해 먼저 논의를 하고 있었습니다.
물론 엄밀하게 본다면, "기의"가 없이 "기표"만으로 제대로 된 AI를 구현하는 것은 불가능할 것입니다.
또한 "기의"적 구현을 완벽하게 하려면, 인간의 뇌를 완벽히 모델링해야 하는 엄청난 리소스가 필요할 것이므로, 다른 대안이 필요하다고 생각합니다.
하지만 엄밀하지 않게, 맥락 상으로 또는 제한된 논리적 사고 정도는 가능할 수 있지 않겠느냐는 것이 저의 생각입니다.
기표적 체계와 기의적 체계가 융합된 형태의 소프트웨어가 만들어져야 조금 그럴싸한 AI가 만들어지지 않을까 생각합니다.
일단 비교적 간단한(?) 기표적 접근을 구현하고 싶은게 현재의 논점입니다.
공통언어를 영어로 해도 좋다는 부분에 대하여는 동감합니다.
컴퓨터 내부적으로는 어떤 언어를 택하든 자료구조화는 유사할 것입니다.
하지만 사람의 경우는 영어를 학습해야 한다는 단점이 있습니다. 수화나 아이콘은 비교적 학습의 시간이 짧을 수 있다는 장점이 있다는 것이죠. 물론 표현의 한계성은 풀어야 할 과제라고 생각합니다.
중요한 것은 어떤 언어를 택하느냐 라기 보다는, 모두가 이해할 수 있는 상징 또는 기호가 무엇인가라고 생각합니다. (물론 개인 모두의 경험이 다르므로, 상징에 대한 인식도 모두 다르다고 할 수 있지만 분명히 공통된 기호들도 존재하니까요 )
그 자체가 기의이면서 기표인 symbol도 존재할 수 있지 않을까 란 생각이 들기도 하구요.
프롤로그는 다분히 기표적인 도구라고 생각합니다.
하지만 기의적 체계와 연동시킬 수 있다면 분명히 새로운 형태의 추론 체계를 만들 수 있을 것입니다.
의견 감사드리고, 좋은 말씀 또 부탁드리겠습니다.
- oharinth