Bioblogs

Machine learning in bioinformatics

hongiiv 2008. 5. 6. 09:30
반응형
구글의 Map Reduce는 분산 파일과 분산 컴퓨팅을 위한 프로그래밍 모델로서 이를 오픈소스로 구현한 것이 Apache Hadoop이다. 원래 구글이 검색에 사용하기 위한 것으로 수많이 웹 페이지를 분류하고 인덱싱하기 위한 프로그래밍 모델이다. Hadoop 역시 Nutch라는 Lucene 공개 검색엔진의 Indexer와 Search로 구성된  자바로 구현한 오픈소스 검색엔진의 분산 파일 시스템으로 Map-Reduce 프로그래밍 모델을 통해서 구현되었다.

여기서 주목해야 할 점은 이러한 Map-Reduce를 여러가지 Machine Learning에 적용할 수 있다는 것이다. 따라서 엄청난 변수와 입력을 다룰 수 있게 된다는 것이다. Machine learning in bioinformatics를 보면,
  • 지도(교수, 감독?)분류(supervised classification)
  • 클러스터링(clustering)
  • 확률 그래프 모델(probabilistic graphical models)
로 나누어 각각이 bioinformatics에서 어떻게 사용되는지 볼 수 있다. 이러한 Machine Learning들을 클러스터는 아니지만, 요즘 나오는 멀티 코어 CPU에서 Map-Reduce를 이용할 수 있는지에 대해서는 Map-Reduce for Machine Learning on Multicore에서 엿볼 수 있다. 여기서는
  • locally weighted linear regression(LWLR)
  • k-means
  • logistic regression(LR)
  • naive Bayes(NB)
  • SVM
  • ICA
  • PCA
  • gaussian discriminant analysis(GDA)
  • EM
  • backpropagation(NN)
의 총 10개의 Machine Learning에 대해서 Map-Reduce를 적용해서 선형적인 속도 향상을 얻고 있다. Map-Reduce나 Hadoop에 대한 세미나 자료를 보면, 어떻게 활용되는가 하는 부분에 Machine Learning이 빠지지 않고 나오는데, 그에 대한 좋은 접근을 보여주고 있다고 할 수 있겠다. 그러나 여기서 멈추지 않고, 이를 실제 구현하는 움직임이 Apache Mahout 프로젝트에서 나타나고 있다.

이전 블로그에서 봤던 GPU를 이용한 프로그래밍이나, MPI와 같은 메세지패싱에 비해서 Map-Reduce는 파일 시스템에 대한 분산까지도 고려하고, 많은 부분에 적용 가능하기에 참 매력적이지 않을 수 없다.

Machine Learning을 통해서 데이터 분석시에 한번쯤 데이터가 커서 걱정된다면, 한번쯤 알아 두어도 좋을 듯 하다.


반응형