机器学习群内分享: 机器学习入门的几个问题

编者按:本文内容摘录自CSDN博客专家、CSDN学院讲师蔡军生老师在CSDN组建的机器学习技术学习微信群中的分享内容。蔡军生从事C++开发已经15年以上经验,并在软件开发管理方面有10年以上资历。
蔡军生个人博客:http://blog.csdn.net/caimouse
蔡军生更多课程请见:http://edu.csdn.net/lecturer/446

以下为蔡军生老师4月13日在机器学习学习群中的内容分享:

本次分享的主题是“机器学习入门的几个问题”,基本从以下四个方面分享:

  1. 为什么需要机器学习?
  2. 使用什么平台来学习?
  3. 深度学习从哪里入手?
  4. 深度学习使用什么技术和编程语言?

首先说第一点“为什么需要机器学习?”。

我总结了一些原因:

人学习知识太辛苦了,比如我们要学习16年,才能大学毕业,机器学习能否帮助人类缩短这个学习过程,比如缩短到1、2年。

人学习技能也是一个漫长的过程,比如学习开车,至少需要几个月,成为老司机也至少要一年到两年的时间;另外,不是所有人都能开车,比如小孩、老人、特殊人群。如果机器学会开车,将会让所有人都能开车。

另外,重复工作太过乏味。机器自动学习规律,然后自动执行重复性的工作,人只需要给机器做一次老师,就可以解决这个问题了。

最后,人学会了知识,再教给机器更难。比如众多开发人员,面对很多难题无法解决,比如教会机器识别汽车的车轮。

第二,使用什么平台来学习?

机器学习的平台众多,目前主要有7个:

Caffe:全称Convolutional Architechture for Fast Feature Embedding,卷积神经网络框架。
TensorFlow:Google实现,C++编写底层,适配Python/Go/Java。
Torch:是得益于一个简单、快速的脚本语言Lua JIT,以及底层C/CUDA实现。
Keras:一个非常高层的库,可以工作在Theano和TensorFlow(可以配置)之上。
MxNet:一个支持大多数编程语言的框架之一,包括Python、R、C++、Julia等。
Paddle:是百度自主研发的性能优先、灵活易用的深度学习平台,是一个已经解决和将要解决一些实际问题的平台。
MatLab:有一些在使用,比如吴恩达的课程里就是用了它。

关于几个平台的比较,大家可以参考下面两篇文章:
http://blog.csdn.net/qiexingqieying/article/details/51734347
http://www.oschina.net/news/80593/deep-learning-frameworks-a-review-before-finishing-2016

至于,使用哪个平台,这关键在于自己使用顺手,可以多个平台学习。我是使用TensorFlow平台,主要是使用Python语言,在Python 3.5里安装TensoFlow,只需要一条命令:pip install TensorFlow。另外,TensorFlow在Github达到5万个星星,意味着已经成为主流,更新速度很快,马上就要1.1的版本了。eepMind团队全部转向TensorFlow,目前世界上最成功能团队,都在使用。

第三,深度学习从哪里入手?

选择开发语言:Python
选择平台: TensorFlow
学习入门例子: 线性回归、手写数字识别、强化学习玩游戏
学习基本算法:机器学习基本算法、深度学习基本算法
学习基本数学:微积分、概率论与数理统计、线性代数(向量、矩阵)http://blog.csdn.net/caimouse/article/details/59489449

因此,先要学习编程是入手的第一环节,接着在熟悉的平台编程,学习算法。

第四,深度学习使用什么技术和编程语言?

相关的技术有很多,关键要理解这几个:

  • 感知机
  • 神经网络
  • 卷积
  • 激活函数
  • CNN、RNN、DNN
  • 池化

编程语言:C++、C、Python、Go、Java、R

目前基上是使用Python,原因是:

  1. 基本上所有平台都支持Python语言
  2. Python已经占领在科学计算领域
  3. Python开源,无任何公司把持
  4. Python形成像MatLab生态,免费的MatLab
  5. Python语句简短:代码效率高,是C的6倍,是C++的3倍,适合做实验和研究。所以我推荐Python语言,在手机里开发深度学习推荐使用C++。

第五,先学习算法还是先学会编程?

我选择先学会编程,原因:
1)先实践,尝试解决问题
2)遇到困难,再去学习相关知识,学习算法
3)再把算法用到实践里解决问题
4)体会算法的优点,进行总结

因为深度学习也是软件开发的一种,是实践性很强的,所以先要有实践的基础,再去学习理论。用理论指导实践,在实践中把理论吃透。特别强调最好是“玩中学,学中玩”。因此,深度学习,最好先上来学会强化学习,这样可以学会玩游戏,可以观察机器学习的过程。

点击下载蔡军生老师的演讲PPT

你可能感兴趣的:(机器学习)