본문 바로가기

분류 전체보기

(957)
BM(Boltzmann machine)과 RBM(Restricted Boltzmann machine) * Reference : http://www.mit.edu/~rsalakhu/papers/dbm.pdf 자세한건 모르겠고, RBM과 BM의 네트워크 구조 차이는 아래와 같음. 위에 링크걸어둔 레퍼런스 논문에서 사용된 그림인데, 보는것과 같이 각 Layer(v 또는 h)에 존재하는 node들이 서로 연결이 되어있냐 없냐의 차이. 정확한 이유는 잘 모르겠으나, 같은 Layer에 있는 것들끼리 서로 직접적인 영향을 주지 않기때문에, conditional independent한 관계로 해석할 수 있기때문인거 같음.
[python]numpy에서 표준분포로 random 수 생성 다차원 랜덤 배열 생성을 위해서 numpy를 이용. numpy에서는 다양한 분포함수를 제공하고 있다. (http://docs.scipy.org/doc/numpy/reference/routines.random.html) 아래에 예로 적어놓은 standard_normal은 표준분포이다. 원하는 분포함수를 위 레퍼런스를 보고 결정하면 된다. 만들어지는 데이터의 타입은 일단 1차원의 경우에는 >>> from numpy import * >>> random.standard_normal(5) array([ 0.19178306, 1.29379677, 0.38624875, -0.62396755, 0.88241794]) 2차원의 경우에는 >>> from numpy import * >>> random.standard_nor..
python for windows에 igraph 설치시 pycairo 설치방법 이전에 python에서 그래프로 데이터를 표현할 때 networkx를 썼었는데, networkx도 괜찮은데, igraph가 더 괜찮다고 해서 설치를 해봤다. 매뉴얼만 보면 어렵지 않다. installer를 이용해서 한큐에 딱 설치되면 좋겠지만.. 누군가 조금만 고생해주면 좋겠는데 말이지..ㅋㅋ 이 package가 다양한 package와 연동되서 돌아가기 때문에 좀 그런가보다.. 어쨌든.. 설치는 아래와 같이.. igraph가 그래프를 그리는데 cario라는 라이브러리를 사용하는데 1. http://ftp.acc.umu.se/pub/gnome/binaries/win32/pycairo/1.8/ 에서 python 2.6 또는 2.7 버젼용 installer를 다운받아서 설치한다. 2. pycairo를 설치한 ..
개념(concept)을 표현할 수 있는 방법은... (위 그림은 말하고자 하는 내용과는 전혀 무관함..ㅡ,.ㅡ) 우리가 어떤 지식을 이해(understand)한다는 것을 어떻게 정의할 수 있을까? 예를들어서 '숟가락'을 이해한다는 것을 어떻게 표현할 수 있을까? 아참, 일단 위에서 표현이라고 한것은 데이터로 표현한다는 것을 의미한다. 즉, color 이미지를 24bit RGB값의 조합으로 표현하는 것과 의미가 다르지 않다. 컴퓨터로 처리할 수 있는 어떤 데이터를 의미한다. 어쨋든, 영상처리에서 인식 알고리즘을 통한 결과를 가지고 이해했다고 하지는 않는다. 그냥 숟가락이라고 부르는 물체가 있는 것만 알지.. 결국에는 어떤 대상의 function, 즉 기능을 인식해야 한다고 볼 수 있다. 기능을 인식한다는 것은 무엇을 의미하는가.. 예를들면 숟가락의 기능을 ..
python을 이용한 google 검색 데이터 수집 글쎄.. 잘은 모르겠다. 이렇게 접근하고 있는 것이 과연 적절한 방법인지. 어떤 로봇이든 agent든.. 사람이 아닌 기계가 어떤 객체를 이해한다는 것은 무엇을 의미하는가. 영상이든 음성이든 인식을 한다는 것과 이해를 한다는 것은 다르다. 영상을 인식한다는 것은 영상에 나타난 어떤 객체의 특징을 보고 이 객체의 이름이 무엇인지를 기존에 학습한 데이터에서 분류를 하는 것이다. 학습하지 않은것은 당연히 무엇인지 알 수 없다. 지금 하고자 하는 것은 인식의 문제가 아니라, 인식이 이루어지고 난뒤에 그 객체가 가지는 특성, 개념들을 우리가 임의로 정의하지 않고 얻을 수 있는 방법이 무엇이 있을까를 고민하다가, 매일 접하는 웹에서 데이터를 일단 얻어보기로 했다. 아무래도, 객체의 특성이나 객체들이 개념들이 for..
python으로 구현한 google crawling and lexical semantics를 통한 어휘간 관계 그래프 표현 (위 이미지는 아래글과 관계가 없음) 최근에 간단한(?) 실험을 하나 해보려고 하는게 하나 있다. 간단하게 설명하면 특정사물을 지칭하는 단어와 그 단어와 이웃하는 단어들간의 관계를 Web에서 크롤링한 데이터로부터 확률적인 값으로 위의 그림과 같이 네트워크를 구축한 뒤에, 입력으로 어떤 두 사물의 이름을 넣었을때 그 사물이름간의 관계를 확률적인 값으로 얻을 수 있을까이다. 복잡한 구조는 아니다. 단순히 단어간의 근접도와 빈도만으로 네트워크를 형성하는 것이니. 실험은 Google 검색엔진에 특정 keyword로 query를 던지고, 나오는 결과의 URL을 Parsing하여 모두 모은뒤에, 각 URL을 방문하여 해당 페이지의 Text 데이터를 긁어온다. 그 Text 데이터에서 html및 script, css등..
Cognitive Architecture Cognitive architecture라 함은 인간의 마음이나 행동, 인지 기능을 모델링하여 Computational Architecture로 만든것을 말한다. A.I.에서 전통적인 expert system과 접근 하는 방법이 다르다. 인지심리나 생리학에 기반하여 각종 심리학적 이론을 모델링한다. 분명 이론에 대한 과학적 근거는 대부분 없다고 본다. 사람의 마음이라는 것이 논리적이다라고 생각하지 않기때문에, 논리적이어야 하는 컴퓨터에 어떻게 적용하겠나... 그래서 많은 이론들은 모순을 차단하기위한 전제조건을 걸거나, 어떠한 가정을 둔다. 내가 이것을 연구하는 이유는 딴거없다. 겉모습이 사람같은 로봇말고, 그 내부또한 사람같은 로봇의 지능?마음?을 심어주기 위해서이다. 이 cognitive archite..
최선을 다하고 있는가 목표가 있는가? 꿈이 있는가? 최선을 다해라... 최선이라는 말은 결과를 보고난뒤에 내 자신이 스스로 대견함이나 감동을 느꼈을때.. 그때가 최선이다.. 그러지 않고서는 최선을 다했다고 말하지 말자... 난 지금도 이리재고 저리재고... 맨날 재기만 하고.. 온 힘을 다 쏟고 있지는 않다고 생각한다.. 부끄럽다.. 최선을 다하지 못하고 있는 내 자신이...