点进来说明有过这种罪恶的想法——用C++/C学习机器学习。不妨分享我看到的一个观点:

的确你可以用任何语言编程语言学习一切专题,但是千万不要用C++学机器学习,碰都不要碰。

  1. 首先人们经常夸大Python比较慢这件事;初学者喜欢争论哪个语言更快之类的话题。我曾经也这样争论过。但是你要知道你不是在实现TensorFlow。你只是在学习的过程中实现一个梯度下降算法,这时你的问题规模远远没有到达Python这门语言的计算的瓶颈。
  2. TensorFlow和很多其他的架构都是C++实现的。你肯定知道它们最后只是用Python或者Matlab封装起来了。这就意味者即使你用python编写机器学习算法,在这些接口之下你还是在跑C++的代码,所以运行起来速度差别不会很大。
  3. 最值得强调的是,你的目的是学好机器学习,而不是学习编程。理解ML中的复杂的数学概念已经非常折磨人了,如果你再用C++这么复杂的语言,那么你的学习速度将非常非常慢。C++机器学习程序,debug的过程你懂的。总的来说你的脑子的学习速度要比CPU的运行速度要重要的多。

所以我的建议是同一时间学习一门课程,不要C++和机器学习并进

很多学校课程或者在线课程都会教Matlab或者Python,随便挑一个课程然后用这些简单的语言实现算法才是最重要的。如果有一天,你真的要面对速度问题,再一头扎进C++也不迟。

以上回答摘自:Quora(https://www.quora.com/I-want-to-use-C+±to-learn-Machine-Learning-instead-of-Python-or-R-is-it-fine)

其实很长一段时间我也在不断尝试安装mlpack,Caffe来用C++实现机器学习,这个脑残的举动给我带来了无穷无尽的痛苦。其实我非常喜欢用C/C++写程序,因为这会跟我学习的底层的原理联系起来,看到这篇文章之后才知道自己喧宾夺主了,老老实实的用Python就完了,C++虐你的时候不差这么一两次。

更多推荐