作者:子夜™
来源:https://www.cnblogs.com/chy2055/p/8205931.html
一、普通程序员如何向人工智能靠拢?
0. 领域了解:在学习任何一门知识之前,首先第一步就是了解这个知识是什么?它能做什么事?它的价值在什么地方?
1. 准备工作:如果你离校过久,或者觉得基础不牢,最好事先做一下准备复习工作。“工欲善其事,必先利其器”。数学、英文和FQ。
2. 机器学习:机器学习的第一门课程首推Andrew Ng的机器学习.这门课程有以下特点:难度适中,同时有足够的实战例子,非常适合第一次学习的人。
3. 实践做项目:学习完了基础课程,你对机器学习就有了初步了解。现在使用它们是没有问题的,你可以把机器学习算法当作黑盒子,放进去数据,就会有结果。需要选择一个应用方向,是图像(计算机视觉),音频(语音识别),还是文本(自然语言处理)。
4. 深度学习:深度学习是目前最火热的研究方向。有以下特点:知识更新快,较为零碎,没有系统讲解的书。
5. 继续机器学习:传统的机器学习有如下特点,知识系统化,有相对经典的书。其中统计学习(代表SVM)与集成学习(代表adaboost)是在实践中使用非常多的技术。
6. 开源项目:当知识储备较为充足时,学习可以再次转入实践阶段。这时候的实践仍然可以分两步走,学习经典的开源项目或者发表高质量的论文。
7. 会议论文:一般较好的课程都会推荐你一些论文。一些著名的技术与方法往往诞生于一些重要的会议。因此,看往年的会议论文是深入学习的方法。
8. 自由学习:到这里了,可以说是进入这个门了。下面可以依据兴趣来自由学习。
有想要学习Web前端的小伙伴,小编在这推荐下自己的Web学习群:585843909,群内不定期分享干货,进群就可领取基础教学视频,欢迎各位加入
二、机器学习领域是否已经达到饱和?
机器学习人才大致可以分为两类:一类是研究型人才,侧重在发明算法; 另一类为应用型人才,着重于使用算法。
我们绝大部分人恐怕属于应用型人才,当然,这里应用其实就是指垂直领域的综合性应用,而不是mnist这类samples。
如果只是调用机器学习的包(比如sklearn)做一些简单的例子, 或者在caffe或tensorflow跑几个例子,设计(修改)一下网络,调整一下超参数,拿数据训练及测试一下,这类人才将来肯定会饱和的。工作量不大,又没有太多创新的话,可替代性就高了。
那么哪种人才不容易被淘汰呢?以个人的经验看,大致有这么三种:
1.一种是具有一定的机器学习基础,又对某个领域具有深刻认识的人才。这类人在某个行业扎根很深很久,熟知其痛点和需求,尤其清楚有哪些坑。既可以在公司里做产品经理,时机成熟也可以创业,可谓进可攻退可守。
2.另一种是技术基础扎实,学习能力强,具有一定的理论基础。尤其是算法实现能力强,甚至可以对框架进行优化,而且速度快的人,老板最喜欢了。你可以打听一下,有多少公司在讨(zhuang)论(bi)AI,但就是不知道怎么做。数一数,恐怕有一大堆吧。
3.第三种是产品开发型人才,这类人可能不一定很懂算法,但很清楚怎么做机器学习应用,怎么把产品做到极致,好用。比如人脸识别系统,算法只是一小部分,更重要的是整个系统架构,做一个demo当然容易,但一个端到端的人脸识别系统包括视频采集,解码,人脸检测,特征提取与人脸数据库(检索),业务逻辑,联动报警,分布式多级部署等等。
以上第一类人才侧重于"我们要做什么,哪个方向",第二类人才侧重于"怎么做",第三类人才负责"怎么把产品做好"。
三、深度学习如何入门?
首先是数学基础,虽然这块的要求并不需要学的很深入,但基本的了解还是要的
1. 线性代数,矩阵和张量的计算
2. 微积分
3. 概率,统计和随机过程
第二块是机器学习的基础知识。深度学习是机器学习的一个分支,由于在图像识别、语音识别、机器翻译等多个地方的效果卓越而流行起来的。
1. 数据,training, validation和testing
2. 线性模型,classification和regression
3. 贝叶斯网络,SVM,马尔科夫随机场
4. cluster,k-means
5. 神经网络
第三块是编程。纸上得来终觉浅,绝知此事要编程。
同时,深度学习在目前阶段,还是需要很大的计算力来支持的,对于稍微有点规模有点实用的场景,分布式和GPU都是需要涉及到的。
编程语言的话,C/C++肯定会涉及,Python估计也无法避免会遇到,java和lua等其他语言会一些则更好,至于世界上最好的语言PHP不会倒无关紧要。
第四块是深度学习框架。
掌握了以上三块后,要是从0开始搭建能应用级别的深度学习项目,简直苦不堪言。
好在互联网提供了很多深度学习框架,帮助我们进行快速部署应用。
1、TensorFlow
TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。
Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流图的一端流动到另一端计算过程。
TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。
TensorFlow可被用于语音识别或图像识别等多项机器深度学习领域,对2011年开发的深度学习基础架构DistBelief进行了各方面的改进,它可在小到一部智能手机、大到数千台数据中心服务器的各种设备上运行。
TensorFlow将完全开源,任何人都可以用。
CS 20SI: Tensorflow for Deep Learning Research
2、Torch
Torch是一个有大量机器学习算法支持的科学计算框架,其诞生已经有十年之久,但是真正起势得益于Facebook开源了大量Torch的深度学习模块和扩展。
Torch另外一个特殊之处是采用了编程语言Lua(该语言曾被用来开发视频游戏)。
3、Caffe
Caffe由加州大学伯克利的PHD贾扬清开发,全称Convolutional Architecture for Fast Feature Embedding,是一个清晰而高效的开源深度学习框架,目前由伯克利视觉学中心(Berkeley Vision and Learning Center,BVLC)进行维护。(贾扬清曾就职于MSRA、NEC、Google Brain,他也是TensorFlow的作者之一,目前任职于Facebook FAIR实验室。)
当然更有成熟应用产品,腾讯的DI-X深度学习平台
https://cloud.tencent.com/product/dix
DI-X(Data Intelligence X)是基于腾讯云强大计算能力的一站式深度学习平台。它通过可视化的拖拽布局,组合各种数据源、组件、算法、模型和评估模块,让算法工程师和数据科学家在其之上,方便地进行模型训练、评估及预测。
目前支持 TensorFlow、Caffe、Torch 三大深度学习框架,并提供相应的常用深度学习算法和模型。DI-X 可以帮助您快速接入人工智能的快车道,释放数据潜力。
有想要学习Web前端的小伙伴,小编在这推荐下自己的Web学习群:585843909,群内不定期分享干货,进群就可领取基础教学视频,欢迎各位加入
网友评论