zoukankan      html  css  js  c++  java
  • 卷积神经网络

    这篇文章有讲:

    http://www.36dsj.com/archives/24006

    第一点,在学习Deep learning和CNN之前,总以为它们是很了不得的知识,总以为它们能解决很多问题,学习了之后,才知道它们不过与其他机器学习算法如svm等相似,仍然可以把它当做一个分类器,仍然可以像使用一个黑盒子那样使用它。

    第二点,Deep Learning强大的地方就是可以利用网络中间某一层的输出当做是数据的另一种表达,从而可以将其认为是经过网络学习到的特征。基于该特征,可以进行进一步的相似度比较等。

    第三点,Deep Learning算法能够有效的关键其实是大规模的数据,这一点原因在于每个DL都有众多的参数,少量数据无法将参数训练充分。

    卷积神经网络简介(Convolutional Neural Networks,简称CNN)

     

    1. 神经网络

    首先介绍神经网络,这一步的详细可以参考资源1。简要介绍下。神经网络的每个单元如下:

    其中,该单元也可以被称作是Logistic回归模型。当将多个单元组合起来并具有分层结构时,就形成了神经网络模型。下图展示了一个具有一个隐含层的神经网络。

    神经网络的训练方法也同Logistic类似,不过由于其多层性,还需要利用链式求导法则对隐含层的节点进行求导,即梯度下降+链式求导法则,专业名称为反向传播。关于训练算法,本文暂不涉及。

    2 卷积神经网络

    2.1 局部感知

    卷积神经网络有两种神器可以降低参数数目,第一种神器叫做局部感知野。

    2.2 参数共享

    但其实这样的话参数仍然过多,那么就启动第二级神器,即权值共享。

     

    2.3 多卷积核

    上面所述只有100个参数时,表明只有1个100*100的卷积核,显然,特征提取是不充分的,我们可以添加多个卷积核,比如32个卷积核,可以学习32种特征。在有多个卷积核时,如下图所示:

    2.4 Down-pooling

    在通过卷积获得了特征 (features) 之后,下一步我们希望利用这些特征去做分类。理论上讲,人们可以用所有提取得到的特征去训练分类器,例如 softmax 分类器,但这样做面临计算量的挑战。

    为了解决这个问题,首先回忆一下,我们之所以决定使用卷积后的特征是因为图像具有一种“静态性”的属性,这也就意味着在一个图像区域有用的特征极有可能在另一个区域同样适用。

    因此,为了描述大的图像,一个很自然的想法就是对不同位置的特征进行聚合统计,例如,人们可以计算图像一个区域上的某个特定特征的平均值 (或最大值)。这些概要统计特征不仅具有低得多的维度 (相比使用所有提取得到的特征),同时还会改善结果(不容易过拟合)。这种聚合的操作就叫做池化 (pooling),有时也称为平均池化或者最大池化 (取决于计算池化的方法)。

    2.5 多层卷积

    在实际应用中,往往使用多层卷积,然后再使用全连接层进行训练,多层卷积的目的是一层卷积学到的特征往往是局部的,层数越高,学到的特征就越全局化。

    另外,

    Yann Lecun的成就在于对于卷积神经网络,开发了LeNets,用了反向传播算法。

    反向传播是关于计算误差的一种算法,在一个神经网络中,用那个值来优化各神经网络层神经元之间的连接强度。Hinton,David Rumelhart,还有Ronald Williams提出了反向传播的一个版本,它可以立刻计算出多个输入的误差,之后得出一个平均值。这个值随后会反向传播回神经网络,从输出层到输入层。他们在1986年的《自然》杂志上发表了一篇论文,阐述了反向传播算法可以提高机器学习能力。

    而此时的LeCun在巴黎紧张地开发自己的反向传播算法,LeCun并没有取平均值,他的反向传播算法版本每次会取到一个单独的样本数据,然后再计算错误。这种方法非常复杂,但是效果却不错,而且学习速度也更快。LeCun的LeNets深度学习网络可以被广泛应用在全球的ATM机和银行之中,它可以理解支票上写的是什么。

    关于人工智能未来的一个赌局

    卷积神经网络受到了很多人的质疑,Vladinmir Vapnik就是其中之一,他是一名数学家,也是目前应用最广的人工智能模式之一的支持向量机之父。

    未来会怎样?

    实际上对于深度学习来说,这仅仅是个开始,包括LeCun在内的深度学习圈子仍然在优化这项技术。今天,卷积神经网络应用最广泛的地方都需要依靠监督学习。这意味着,如果你想要学习如何识别某个特定对象,那么你必须要列举好几个例子。想要真正像大脑那样进行无监督学习,还需要深度学习进一步探索。

  • 相关阅读:
    hdu 5400 Arithmetic Sequence(模拟)
    hdu 5402 Travelling Salesman Problem(大模拟)
    hdu 5009 Paint Pearls (dp)
    poj 1236 Network of Schools(tarjan+缩点)
    hdu 3836 Equivalent Sets(tarjan+缩点)
    编程之美2015初赛第一场 hihoCoder #1156 : 彩色的树(染色问题)
    hdu 2807 The Shortest Path(矩阵+floyd)
    The Unique MST (判断是否存在多个最小生成树)
    Advanced Fruits(好题,LCS的模拟)
    Dark roads(kruskal)
  • 原文地址:https://www.cnblogs.com/charlesblc/p/6598797.html
Copyright © 2011-2022 走看看