深度学习初步介绍
今天开始介绍深度学习了,其实现在比较牛的SEnet还有Mask R-cnn等网络的理解,都是建立在一些基本架构上,如果你对于一些基本的网络以及其原理特别清楚的话,看新的网络往往都是一眼就能学会的,甚至能自己简单预测一些网络的发展趋势。
废话不多说了,现在先简单的介绍一些深度学习的基本概念,这次主要想介绍两个概念,一个是深度学习框架,一个是深度学习模型。深度学习框架是深度学习运行的基本环境,例如我们的Pytorch,深度学习模型是我们用来解决问题的工具。如果你以前没有接触过这个概念,可能会懵懵的,我做个简单的比较吧,深度学习框架可以理解为一座房子,深度学习模型则是我们使用的家具,我们使用家具完成某个目的的时候我们在什么房子下都可以,比如我们可以在楼房使用椅子,也可以在砖瓦房使用椅子。框架对我们而言只是一个基础环境,最重要的是我们选择的深度学习模型,再做一个比较,框架类似于操作系统,模型类似于各种软件,比如linux下的qq和windows下的qq。
常见的深度学习框架有哪些呢,虽然网上有很多十大框架之类的,但是我个人认为,一个人的精力有限,还是专注一个或者几个框架比较好,我个人推荐的主要如下:
1.如果是工业以及公司方面,TensorFlow肯定是首选,Caffe框架也升级了现在是Caffe2了,也是很不错的框架,同时可以尝试一下Pytorch框架,这个框架真的很不错。
2.如果是科研方面,肯定是Pytorch排第一,同时Caffe2也是个不错的选择。
其实我个人更倾向于不管工作还是科研都选择Pytorch框架,我研究生的时候有一个师弟,对深度学习很感兴趣的师弟,他参加过一个比赛,现在应该快到最终决赛了,听他说识别图像分类的功能中,同样的设定,Pytorch要比TensorFlow高1%左右,这是个很大的差距了,当然我也只是听说,而且也可能只是对于个别案例Pytorch要比TensorFlow高1%,但是也表现出了Pytorch的性能优越。
常见的深度学习模型有哪些呢,首先看有几个大的方面,主要是分类,分割,目标检测,其实都是预测,分类方面比如LeNet-5,AlexNet等,分割方面如U-Net,目标检测如YOLO 等,以后会慢慢介绍并且附上程序以及相关的结果图。