摘要:看了这篇文章后,找到机器学习捷径了

[wximg]http://mmbiz.qpic.cn/mmbiz_jpg/TCHicQEF6XKCDhTAIVVuicSpSdRZEZ912v7O52sgaNcyE5oSCyFuQ1Z9lhmwNj0RSic4hpClSROjjeRA87n96Sstg/0?wx_fmt=jpeg[/wximg]

深度学习、神经网络、人工智能应该是当下最火爆的字眼了: 

(1)2017年年初,AlphaGo 实力大增,化身 Master,在弈城和野狐等平台上横扫中日韩围棋高手,几乎已经无人能胜。 

(2)今年3月22日,百度首席科学家吴恩达宣布将从百度离职,3个月后建立新公司:Deeplearning.ai。并且,最近研究医学影像新成果,肺炎诊断准确率创新高。

(3)《最强大脑》一场人脸识别“跨年龄识别”挑战中,植入了百度大脑的机器人“小度”以 3:2 击败了世界记忆大师王峰,展现了人工智能的超凡能力。 

仿佛人人都谈论着人工智能,说话不带 DL、CNN 这些字眼的就落伍了,但人工智能、机器学习又是什么,以后会不会替代人类,我应该怎么学习它?

1. 机器学习在移动端的落地

来了解几件有趣的事情:

  • Facebook 在 2016 年的时候发布了 Caffe2go,移动端的深度学习库;

  • 2017年 Google IO 上面发布了 TensorFlow Lite,移动端的神经网络库;

  • 腾讯优图开源了NCNN 框架,实现深度神经网络在移动端的落地。

这就有点颠覆人们对深度学习的观念了,机器学习不是应该需要海量的数据和计算资源吗(CPU/GPU)?移动设备的存储和计算能力能满足要求吗?

换个角度来思考,以目前移动设备的存储和计算能力,是不可能实现在移动端进行模型训练的,当然也没有这个必要。

但是如果在服务端利用海量的数据和计算资源训练好模型,然后将训练好的模型部署到移动端,只利用移动端的计算能力来进行推理。

而且随着移动端计算能力的提升,这个将是机器学习在移动端落地的趋势,这也是各大巨头正在做的事情。 

2. 机器学习捷径之路 

但应该怎么学习机器学习呢,从哪入手?网上资料很多,大部分都说需要有一定的数学基础,然后学会 SVM、线性回归、梯度下降、Softmax 回归……

然后再去学习 Sigmod、SGD,会用各种 Loss Function,再去构建 CNN、RNN…… Oh my God 

在正式学习机器学习之前,我们先来看几个例子感受下:

(1)物体识别:

[wximg]https://mmbiz.qpic.cn/mmbiz_png/TCHicQEF6XKCDhTAIVVuicSpSdRZEZ912vsd3mTiaCYeJWaWpRkGIEaaGJCTIsw7U9yzDVQBDJ8Mia9cibWwKdQ1dSg/0?wx_fmt=png[/wximg]

这个是监控下识别出的每一个物体,如人及其特征、汽车等。

(2)医学推断:计算机从已知的病人的历史病历和体检报告中找到某种规律,然后从一个患者的病历和体检报告来推测未来得什么病的可能性。

(3)语音识别:用户用语音形式发出需求,程序自动识别语音满足用户的需求,如 Siri。 

当然还有其他很多类似的例子,如股票交易、数字识别、自然语言处理(NPL)、机器翻译、智能应答系统、OCR 等,这些例子很好的展示了机器学习的理念,部分例子需要建模,自动建模为某一行业或者说某些领域带来了价值。

看完这几个例子后,我们再来缕缕如何学习机器学习。 

坦白说,机器学习是一个工具,一个可以用来解决现实问题的工具。

如果想成为一个机器学习专家/科学家,那人工智能学习之路就很漫长了,因为你要成为一个制作工具的人。

但是,假设只是一个想使用机器学习这个工具来解决现实问题的普通工程师,也许有捷径可以走。

TensorFlow 是一个很基础的库和深度学习框架,它支持 Python 和 C++,也允许在 CPU 和 GPU 上的计算分布,甚至支持使用 gRPC 进行水平扩展。

如果要训练一个完全可用的模型,还需要具有相当的深度学习知识。

如果把模型比作一个房子的话, 那么 TensorFlow 相当于砖、水泥和脚手架之类,至于房子有几层,什么朝向等等,还需要用户来决定。

那么训练一个可用的模型就好像在这种情况下修一个好住的房子一样,需要具有相关的知识和经验。 

不过这个目前不是一个问题,因为 Google 的工程师和研究人员在开源框架的同时,也开源了他们针对各种问题进行机器学习的代码和模型(当然是基于 TensorFlow 的),这相当于公开了房子的设计图,我们就可以从这里入手,先实现、再优化、再创造。

3. 机器学习在移动端的具体实现

机器学习在移动端的具体实现、优化、创造等介绍,可以参考这里:

《TensorFlow on Android:物体识别》

[wximg]https://mmbiz.qpic.cn/mmbiz_jpg/TCHicQEF6XKCDhTAIVVuicSpSdRZEZ912vWTlwdDfEukWiaPL6dibp4HHCv6L64Lc5GuTCW5qyQYaZeecxL5c0X5rQ/0?wx_fmt=jpeg[/wximg] 

《TensorFlow on Android:训练模型》:

[wximg]https://mmbiz.qpic.cn/mmbiz_png/TCHicQEF6XKCDhTAIVVuicSpSdRZEZ912vnbghlrckqibib3DzHefnYYAh4X6TyZjdBwaZ2f8bJMBVSiaKuNnqYcplQ/0?wx_fmt=png[/wximg]