机器学习和生物信息学实验室联盟
标题:
呼唤支持多线程的分类器!
[打印本页]
作者:
zouquan
时间:
2012-1-15 23:53
标题:
呼唤支持多线程的分类器!
这几天参加JRS比赛,这次比赛的样本不算大规模,10000个样本,维度高,训练集文件在500M左右。不大不小,普通台式机可以跑动,就是慢。
通过使用mulan和weka我们发现,他们最大的弱点是不支持多线程,因此我们的机器空有4核16G内存,事实上用不上。事实上,只有25%的CPU和1G的内存被消耗。
因此,我认为目前机器学习最需要解决的问题是如何并行化提高运算速度,合理利用资源。并行化可以有3个档次,分别是
多线程
(任何机器都支持)、
Cuda
(需要Nvdia显卡)、
Hadoop
(需要机群)。显然,能力越来越强、但要求也越来越高。
各位都或多或少开发了自己的分类器,但各位的程序能否支持并行呢?或者可以并行到哪个程度呢?显然,把weka整个并行化或多线程化,是一个浩大的工程,依靠我们的力量完成不现实。但我们自己涉猎过的代码,能否修改一下支持多线程呢?这将是推动科学进步、真正有影响力的工作!
每位同学目前都有自己的工作,来做这件事情显然有些力不从心。我后面要安排专人来做这个工作,而且我会亲自参与、督阵。但目前各位同学已经开发过的代码,应该考虑自己进行修改。
比如:旭斌开发了svm的回归,自己能否考虑写一个支持多线程或cuda或hadoop的版本?
文瑞在搞基于hadoop的libsvm,能否加入多线程,毕竟有hadoop环境的人太少了,多线程的libsvm也很受欢迎啊,特别是grid优化参数的时候能否多线程?
每一位同学都熟悉weka,并且应该很喜欢这东西吧?我是因为weka而喜欢java和code的。建议大家学习一下mulan(
http://mulan.sourceforge.net/
),mulan的工作量不是很大,是在weka基础上开发的。我们应该学习他的思路,也仿照mulan的开发思路,开发出我们实验室自己的jar包,与weka不同的是:我们可能加入了自己的分类器(比如旭斌、邱诚之前开发的集成分类器)、加入了自己的可多线程(或cuda、hadoop)的分类器。
我认为这是一个真正有益于科学发展的工作,希望大家提出自己的想法和意见。如果可以,我们以后处理500M的数据,就不会出现要跑2天的尴尬情景了。
作者:
xmubingo
时间:
2013-4-16 15:37
本帖最后由 xmubingo 于 2013-4-16 15:43 编辑
我也发现了。分类器多线程化交叉验证并不能加快多少。主要原因是像svm这种耗时算法,它们的时间成为了提速的瓶颈。对svm进行多线程还是难的,但是多线程化Evaluation这个类是可行的。
Mahout中也有mapreduce版本的svm
Mark:
Folding, Cross Validation with Map Reduce
http://pkghosh.wordpress.com/201 ... on-with-map-reduce/
libsvm-hadoop
https://github.com/ericlee100/libsvm-hadoop
欢迎光临 机器学习和生物信息学实验室联盟 (http://123.57.240.48/)
Powered by Discuz! X3.2