深度学习——白话CNN入门浅见

搞CNN的工程应用有一段时间了,特别是在计算机视觉领域。分享下我自己的CNN学习历程。

深度学习到底是啥?
简单的说,深度学习就是模仿人脑结构,像人一样学习(当然,也有所谓的专家不同意这个观点);它处理问题的路径是从具体到抽象、从部分到整体。像人的认知过程一样逐层进行,逐步抽象。最大的特点就是网络自己学习特征、组合特征,而不需要人工参与。

入门路线
1、首先在自己电脑上安装一个开源的框架,像Tensorflow、caffe这样的,先玩一下这个框架,把框架用起来
2、然后跑一些基础的网络,由浅入深
3、如果有条件的话,整个有GPU的电脑,GPU跑的要快很多,跟CPU比起来

详细点说,我认为可以按以下步骤去学习它:
第一个阶段:
1)、实现并训练只有一层的softmax回归模型用于手写数字图片分类;
2)、实现并训练含三个全连接层的模型用于手写数字图片分类;
3)、实现并训练含三个卷基层+池化层的模型用于手写数字图片分类;
阶段目的:搞懂一些机器学习、深度学习的概念,找个开源工具并用起来,尝试着训练一些简单的网络,试试加入一些常见的trick去调试网络。

第二个阶段:
训练一些经典的CNN分类网络,熟悉一些常用数据集,熟悉下CNN分类网络的发展历程,一些trick的更替:
1)、Lenet,1986年
2)、Alexnet,2012年
3)、GoogleNet,2014年
4)、VGG,2014年
5)、ResNet,也有人称呼残差网络,2015年
这个几个网络是都是深度学习在图像领域的经典之作,在pc上实现了它们,训练它们,同时你又仔细推敲看看他们的网络结构。
阶段目的:在实际当中独立使用它们,也可以结合传统的图像处理技术使用它们。一句话:你已经入门了

 
学习的几个误区:
1、死嗑线性代数、概率论、微积分这些理论知识。
     使用深度学习的目的是处理实际工程问题,最重要的是怎么用。一开始不会用就去推导这些公式、求原理,有点舍本逐末。另一个重要的原因是,复杂的公式、原理会把初学者搞晕的,打击初学者的积极性,而且理论不和实践结合,很难理解;所以建议学用结合、边用边学。
2、比较哪种网络好
    比较哪个深度模型最优是没有意义的。因为没有一种模型是万能的,得根据具体数据集的类型特征、具体使用场景来决定采用什么模型。
3、一开始就自己设计网络
   深度学习各个应用领域都有很多经典的网络,都经过大量验证过的,一句话,没啥问题,用起来效果挺好。我一般拿过来用,改改输入, 调调参数,在已有模型的基础上,微调微调即可。
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值