计算机视觉基础知识(十二)--神经网络与深度学习

1.神经网络

  • 一种机器学习的算法
  • 一般有输入层-->隐藏层-->输出层
  • 隐藏层数量多于两个的称为深度神经网络;
  • 输入的是特征向量;
  • 特征向量代表的是变化的方向;
  • 或者说是最能代表这个事物的特征方向;
  • 权重是特征值,有正有负,加强或抑制;
  • 权重的绝对值大小,代表输入信号对神经元的影响大小

什么是神经网络

  • 人是怎么思考的?--生物神经网络

  •  由相互联系的神经元组成;
  • 神经元具有权重;
  • 根据训练期间的错误更新偏差;
  • 找到一个未知函数的近似解;

感知器 

  1. 外部刺激通过神经末梢,转为电信号
  2. 电信号传导到神经细胞(又称神经元)
  3. 无数神经元构成神经中枢
  4. 神经中枢综合各种信号,给出判断
  5. 人体根据神经中枢指令,对外部刺激作出反应.

生物神经网络基本工作原理

  • 一个神经元的输入端有多个树突;
  • 树突主要用来接收输入信息;
  • 突触累加信息;
  • 累加的信息大于特定的阈值时;
  • 轴突会把信息传输出去;
  • 此时称为神经元被激活;
  • 相反,处理后的输入信息小于阈值,神经元处于抑制状态;

人工神经网络

  1. 接收来自其他n个神经元传递的信号;
  2. 这些信号与相应的权重进行加权求和,并传递给下个阶段(预激活阶段);
  3. 加权结果(也称为预激活的加权)传递给激活函数;

 

 

人工神经网络与生物神经网络的不同 

  • 人脑中的一个神经元可连接一定距离内的任意神经元;
  • 人工神经网络具有离散的层\连接和数据传播的方向

神经元

  • 组成神经元网络的最基本单位;
  • 起初来源于人体,模仿人体的神经元;
  • 功能与人体的神经元一致;
  • 对得到的信号,经数据处理;
  • 给出一个结果作为输出;
  • 或者作为下一个神经元的输入

  • 当h大于0时输出1;
  • 当h小于0时输出0;
  • 实质是把特征空间一切两半;
  • 每一半分属不同的类; 

  • 神经元的缺点:只能一刀切;
  • 解决方法:多层神经网络;

人工神经网络的实现

  • 神经网络是一种运算模型;
  • 由大量的节点(神经元)和其间的相互连接构成;
  • 两个节点之间的连接具有一个权重;
  • 权重相当于人工神经网络的记忆;
  • 输出依赖于网络的连接方式,权重和激励函数的不同而不同;
  • 网络本身是对自然界某种算法或者函数的逼近;
  • 也可能是对一种逻辑策略的表达

多层神经网络

  • 由多个神经元组合而成;
  • 前一个神经元的结果作为后一个神经元的输入;
  • 任何多层网络可以用三层网络近似表示;
  • 根据经验确定隐藏层应该有多少个节点;
  • 根据测试的效果调整隐藏层节点数量;

前馈神经网络

  •  也称多层感知机;
  • 人工神经网络主要考虑网络链接的拓扑结构\神经元特征\学习规则等;

2.激活函数

  • 神经网络设计的一个核心单元;
  • 处于活跃状态的神经元成为激活态;
  • 非活跃的神经元成为抑制态;
  • 激活函数赋予神经元自我学习和适应的能力;
  • 激活函数的作用为了在网络中引入非线性的学习和处理能力;

常用的激活函数

  • sigmoid函数:y=logsig(x)=\frac{1}{1+e^{-x}}
  • tanh函数:y=tansig(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}}
  • ReLU函数:f(x)=max(0,x)

 

激活函数的作用

 

sigmoid的主要缺点

  •  梯度饱和,两边数值的梯度都为0;
  • 结果的平均值不为0,会导致后层神经元输入非零均值信号,对梯度产生影响

 reLU

  • 起源于神经科学的研究;
  • 从生物学角度模拟了脑神经接受信号更精确的激活模型

激活函数比较

神经元稀疏

  •  ReLU函数是分段线性函数;
  • 把所有的负值变为0,正值不变;
  • 这种操作称为单侧抑制;
  • 因为单侧抑制,网络中的神经元具有稀疏激活性;
  • 模型增加N层后,理论上ReLU神经元的激活率降低2的N次方倍;

张量

  • 算法的运行依赖数据结构;
  • 张量将各种数据统一封装并输入网络;
  • 不同情况下有不同存在形式的张量;
  • 张量的一大特征是维度;
  • 0维张量是一个常量;
  • python中读取ndim获取张量维度;
  • 数组等价一维张量;
  • 二维数组等价一个二维张量;
  • n维张量本质是一维数组,数组中的元素都是n-1维张量

设计神经网络

  1. 确定网络的层数;
  2. 确定每层单元个数;
  3. 将特征向量归一化,加速学习过程;
  4. 编码离散变量,每一个输入单元对应一个可能特征值;
  5. 可以解决分类问题(classification)
  6. 也可解决回归问题(regression)
  7. 两分类问题的输出表示:[0,1];
  8. 多分类问题的输出表示:[1 0 0 0 0 0];
  9. 确定隐藏层的数量没有规则;
  10. 根据实验测试和误差精准度不断调整改进.

感性认识隐含层

  • 输入层的每个节点代表图片的某一像素;
  • 输入层的节点个数为像素点的个数;
  • 输出层为一个单一节点,标示0和1;
  • 对人脸识别的问题;
  • 问题分解:
  • 上方有头发;
  • 左上\右上各有一个眼睛;
  • 中间有鼻子
  • 下方中间有嘴巴
  • 左右两侧有耳朵
  • 综合上述问题的结果:
  • 大部分为1,判定为人脸;

  • 子网络继续分解为解决更为简单的问题. 
  • 一层层的分解;
  • 直到一个神经元能回答一个简单的问题;

 

3.深度学习

深度神经网络&深度学习

  • 传统的神经网络发展到了多隐藏层结构
  • 具有多个隐藏层的网络称为深度神经网络;
  • 基于深度神经网络的机器学习称为深度学习

机器学习

  • 是人工智能的核心;
  • 研究如何使用机器来模拟人类学习活动的一门学科;
  • 一种实现人工智能的方法;
  • 是一门多领域交叉学科;
  • 涉及概率论\统计学\逼近论\凸分析\算法复杂度理论等多门学科
  • 使计算机具有智能的根本途径
  • 应用遍及人工智能的各个领域
  • 主要使用归纳\综合而不是演绎

深度学习

  • 多层人工神经网络
  • 是机器学习的分支
  • 对数据进行表征学习的方法
  • 一种实现机器学习的技术;
  • 将模型处理得更加复杂;
  • 使模型对数据的理解更为深入;
  • 动机在于建立\模拟人脑进行分析学习的神经网络
  • 模仿人脑的机制来解释数据;
  • 实质是通过构建具有多隐藏层的机器学习模型;
  • 以及海量的训练数据
  • 学习更有用的特征
  • 最终提升分类或预测的准确性
  • 最重要的作用是表征学习,
  • 学习层级化的特征

 

  • 数据规模推动深度学习进步; 

 

人工智能关系圈

最近更新

  1. TCP协议是安全的吗?

    2024-02-21 06:58:08       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-21 06:58:08       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-21 06:58:08       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-21 06:58:08       18 阅读

热门阅读

  1. 基于opencv的SIFT特征提取

    2024-02-21 06:58:08       27 阅读
  2. NPM运行保存问题解决

    2024-02-21 06:58:08       27 阅读
  3. 整型数组按个位值排序/最低位排序(C语言)

    2024-02-21 06:58:08       33 阅读
  4. k8s集群5个故障案例分析

    2024-02-21 06:58:08       32 阅读
  5. 【npm】常见错误

    2024-02-21 06:58:08       28 阅读
  6. 分布式场景怎么Join | 京东云技术团队

    2024-02-21 06:58:08       29 阅读