zoukankan      html  css  js  c++  java
  • CNN网络的基本介绍(一)

        CNN,是卷积神经网络的简称,是深度学习的算法之一,目前在图像的分割领域有着广泛的应用。此篇博客类似于学习笔记,将学习到了CNN知识做记录、总结。

    首先,先谈一下,CNN学习必须要掌握的部分:

    1、卷积神经网络的表示

    2、线性回归算法

    3、梯度下降法

    4、激活函数

    5、卷积运算

    6、池化层

    7、全连接层

    8、卷积神经网络

    9、目标函数

    本系列的第一部分,将展示1-3部分的具体内容。

    一、卷积神经网络的表示

    神经网络结构主要包括:输入层,隐藏层,输出层,如下图所示:

    输入层是向神经网络输入数据,输出层则输出运算之后的数据,隐藏层则是具体的运算过程节点的真正数值,不过我们看不见,我们只能看见输入层和输出层。

    需要提及的是,神经网络的层数是指,除输入层以外的其他层数的合计,此处只有一层隐藏层和一层输出层。

    a[n]表示第N层神经元的激活函数组成的矩阵,z[n]函数表示第N层神经元的处理逻辑做出的矩阵,激活函数a通过z函数的数据来产生合理的输出并传递给下一层。

    如下图所示,Z[2]的输入来自于上一次激活函数产生的值,是一个四行一列的矩阵,而W[2]是一个一行四列的矩阵,最后运算会产生的a[2]是一个一行一列的矩阵。

    二、线性回归

    基本术语:

      (色泽=青绿;根蒂=收缩;敲声=浊响)

      (色泽=乌黑;根蒂=稍蜷;敲声=沉闷)

      (色泽=浅白;根蒂=硬挺;敲声=清脆)

      每对括号内是一条记录,这组记录的集合称为一个数据集,每条记录是关于一个事件或对象的描述,称为一个示例或样本,反映事件或对象在某方面的表现或性质的事项。我们也把一个示例称为-一个“特征向量”(feature vector)

     线性回归:

    给定数据集D={(x1, y1), (x2, y2), ... },我们试图从此数据集中学习得到一个线性模型,这个模型尽可能准确地反应x(i)和y(i)的对应关系。这里的线性模型,就是属性(x)的线性组合的函数,可表示为:

      

      向量表示为

      

      其中

      

      W在这里称为权重,直观的表达了各属性在预测中的重要性,因此线性模型有很好的可解释性,例如西瓜问题中学到如下图的模型,那么意味着通过考虑色泽、根蒂和敲声来判断挂的好坏,其中根蒂最重要,敲声次之。

      

      线性回归试图学得一个线性模型以尽可能准确地预测实值输出标记:

      

      这称为多元线性回归。

    Sigmod函数:

    我们在做概率估计的时候,预测值处于0~1之间,Sigmod函数正是这样一条平滑曲线,我们可以借助它来预测概率。

      

    损失函数:

    如何确定w和b,关键在于衡量f(x)与y之间的差异。均方误差是回归任务中最常用的性能度量,因此我们可试图让均方误差最小化,即:

      

      均方误差有非常好的集合意义,他对应了常用的欧几里得距离或欧式距离。基于均方误差最小化来进行模型求解的方法称为“最小二乘法”。在线性回归中,最小二乘法就是试图找到一条直线,是所有样本到直线上的欧式距离之和最小。

    三、梯度下降法

    梯度下降法(英语:Gradient descent)是一个一阶最优化算法。 要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索。如果相反地向梯度正方向迭代进行搜索,则会接近函数的局部极大值点;这个过程则被称为梯度上升法。

    梯度下降方法基于以下的观察:如果实值函数
    在点
    处可微且有定义,那么函数
    点沿着梯度相反的方向
    下降最快。
    因而,如果
    对于
    为一个够小数值时成立,那么
    考虑到这一点,我们可以从函数F的局部极小值的初始估计
    出发,并考虑如下序列
    使得
    因此可得到

      
    如果顺利的话序列
    收敛到期望的极值。注意每次迭代步长可以改变。
    右侧的图片示例了这一过程,这里假设F定义在平面上,并且函数图像是一个碗形。蓝色的曲线是等高线,即函数F为常数的集合构成的曲线。红色的箭头指向该点梯度的反方向。(一点处的梯度方向与通过该点的等高线垂直)。沿着梯度下降方向,将最终到达碗底,即函数F值最小的点。下图中的J函数和F同理:
  • 相关阅读:
    打造TypeScript的Visual Studio Code开发环境
    Visual Studio Code 使用Git进行版本控制
    每周一书《Oracle 12 c PL(SQL)程序设计终极指南》
    每周一书-《鸟哥的Linux私房菜》获奖公布
    Python黑帽编程 4.1 Sniffer(嗅探器)之数据捕获(上)
    微信公众平台及门户应用
    Bootstrap开发框架
    公用类库使用帮助
    git
    SQL Server 基本函数 与 类型
  • 原文地址:https://www.cnblogs.com/studya/p/12249650.html
Copyright © 2011-2022 走看看