机器学习与计算机视觉(深度学习)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

 

    要说很多现在最火的AI是什么,那就是深度学习。那么深度学习和机器学习有什么关系呢?我们可以通过一问一答的形式来解决。

 

1、什么是机器学习?

    机器学习一般是指传统的人工智能方法,它包括bayes、决策树、svm、线性回归、逻辑回归、神经网络、knn、kmeans等。目前使用较多的机器学习库就是sklearn。

 

2、深度学习是什么?

    深度学习来自于传统的机器学习方法-神经网络,即nerual network。只不过深度学习比传统的神经网络层数更多、计算量更大,深度学习中大量使用的反向传播算法起始就来自于神经网络。深度学习少则几层,多则上百层,随之而来的训练时间也很长。即使使用分布式、gpu运算,也要很长的时间。

 

3、深度学习需要哪些基础?

    深度学习来源于机器学习,而机器学习的本身和矩阵论、概率论、凸函数和优化方法息息相关。所以,如果需要深入了解深度学习,也需要多看看数学相关的内容。深度学习没有脱离模型、损失函数、优化方法的基本框架。

 

4、目前使用比较广泛的深度学习模型有哪些?

    目前使用比较多的深度模型有cnn、rnn、lstm。其中cnn多用于图像,rnn多用于语音、而lstm多用于行为识别。当然,2018年除了深度学习模型以外,gan也非常火,即生成对抗网络。姑且不论gan的具体含义,但是它所体现的思想非常有意义。当然,如果是图像本身,那么一般是cnn+opencv一起使用,如果是语音,一般是kaldi+rnn一起使用。因为我们实在没有必要从头开始做一些基础工作。

 

5、目前开源的深度学习框架有哪些?

    现在使用较多的深度学习框架有tensorflow、keras、caffe、mxnet和darknet等。这几种深度学习框架结构差不多,一般都包含数据表示、layer、network、solver这几个模块。可以重点学习一种,其他几种用到的时候看一下就可以了。我个人比较推荐的是darknet。darknet结构简单,可以移植到多个cpu体系,不依赖于第三方库,支持GPU、cuDNN,使用方便。

 

6、为什么大多数深度学习多使用python来操作?

    大多数深度学习多支持python操作,python不用编译,和matlab类似,也不涉及版权,第三方库多,所以使用广泛。当然,如果是caffe的使用者,可能连编译代码都不需要。当然如果需要将深度学习框架port到嵌入式设备上,那么c&c++是少不了的,大家可以试试darknet移植到arm开发板上面。

 

7、很多论文中提到的yolo、r-cnn、fast r-cnn、faster r-cnn、ssd又是指什么?

    这是针对物体检测提出的优化深度学习网络,比如道路上的行人检测、汽车检测、符号检测等等。我们可以看成是针对cnn和应用场景的进一步优化。

 

8、一般深度学习怎么训练?

    深度学习可以用cpu训练,也可以用gpu训练。但是gpu一般比cpu快十几到几十倍。首先,我们需要自定义网络模型;然后定义网络训练参数,最后输入数据开始训练。等到训练结束后,我们就会得到一个训练模型。使用这个训练模型,我们就可以进行检测、分类和识别了。

 

9、个人如何使用别人训练好的模型?

    可以利用别人的模型加上自己的数据继续训练,或者直接修改别人的softmax层,添加自己的分类选项。个人如果训练数据,可以选择数据量比较少的模型进行训练,如果是项目需要,尽量复用别人的模型,特别是imagenet上面公用的权重模型数据。

 

 

你可能感兴趣的:(机器学习与计算机视觉)