深度学习与人工神经网络的介绍

深度学习

机器学习的分支,人工神经网络为基础,对数据的特征进行学习的方法。

机器学习和深度学习的区别

在这里插入图片描述

  • 特征抽取
    • 机器学习:人工抽取特征的过程
    • 深度学习:自动的进行特征抽取
  • 数据量
    • 机器学习:数据量少,效果不是特别好
    • 深度学习:数据量大,效果更好
  • 应用场景:
    • 深度学习:图像识别(物体识别、场景识别、人脸检测跟踪、人脸身份认证)、自然语言处理(机器翻译、文本识别、聊天对话)、语音识别

常见的深度学习框架

目前企业中常见的深度学习框架有很多:Tensorflow、Caffe2、Keras、Theano、PyTorch、Chainer、DyNet and CNTK等等。

神经网络

人工神经网络的概念

人工神经网络(Artificial Neural Network,ANN)是一种模仿生物神经网络的结构和功能的数学模型,用于对函数进行估计和近似
和其他机器学习方法一样,神经网络已经被用于解决各种各样的问题,例如机器视觉和语音识别。

神经元的概念

神经网络中的基础单元,相互连接,组成神经网络。
一个简单的神经元如下图所示:
在这里插入图片描述
可见,一个神经元的功能是求得输入向量和权向量的内积后,经过一个非线性传递函数得到一个标量的结果

单层神经网络

它是最基本的神经元网络形式,由有限个神经元组成,所有神经元的输入向量都是同一个向量,由于每一个神经元都会产生一个标量结果,所以单层神经元的输出是一个向量,向量的维数等于神经元的数目。
示意图如下:
在这里插入图片描述

感知机

感知机是由两层神经网络组成,输入层接受外界输入信号后传递给输出层。上部分的单层神经网络的示意图可以理解为有三个感知机。
在这里插入图片描述
感知机的作用
简单的二分类模型,给定阈值,判断数值属于哪一部分。
把一个n维向量空间用一个超平面分割成两部分,给定一个输入向量,超平面可以判断出这个向量位于超平面的哪一边,得到输入是正类还是反类。对应到2维空间就是一条直线把一个平面分成两个部分

多层神经网络

多层神经网络就是由单层神经网络进行叠加之后得到的,所以就形成了的概念,常见的多层神经网络有如下结构:

  • 输入层(Input layer),众多神经元接受大量输入消息。输入的消息称为输入向量。
  • 输出层(Output layer),消息在神经元链接中传输、分析、权衡,形成输出结果,输出的消息称为输出向量。
  • 隐藏层(Hidden layer),是输入层和输出层之间众多神经元和链接组成的各个层面,隐层可以有一层或多层,隐层的节点数目不定,但数目越多神经网络的非线性越显著,从而神经网络的强健性更显著。
    示意图如下:
    在这里插入图片描述
    全连接层
    第N层和第N-1层每个神经元相互连接,我们成为当前这一层为全连接层。
    所谓的全连接层就是在前一层输出的基础上进行一次 Y = W x + b Y=Wx+b Y=Wx+b的变化(不考虑激活函数的情况下就是一次线性变化,所谓线性变化就是平移(+b)和缩放(*W)的组合)

激活函数

假设我们现在有这样一组数据,需要将他们分为两类。
在这里插入图片描述
通过感知机模型我们可以划出一条线,把平面分割开。
在这里插入图片描述
假设我们确定了参数w和b之后,可以看出无法通过直线完全分开,此时该如何做?
可以考虑使用多层神经网络来尝试,比如在前面的感知机模型中再增加一层
在这里插入图片描述
增加一层后发现求y的公式类似,这样操作后依然只能绘制出直线,相比于前面的感知机,没有任何改进。
非线性的特征:已知有函数 f ( x ) = y f(x)=y f(x)=y满足以下公式:
f ( x 1 + x 2 ) = y 1 + y 2 和 f ( k x 1 ) = k y 1 f(x1+x2) = y1+y2和 f(kx1) = ky1 f(x1+x2)=y1+y2f(kx1)=ky1
如果我们在感知机的基础上加上非线性的激活函数后,输出的结果就不再是一条直线了。
在这里插入图片描述
如上图,右边是sigmoid函数,对感知机的结果,通过sigmoid函数进行处理。
如果我们给定合适的参数w和b,就可以得到合适的曲线,能够完成对最开始问题的非线性分割,所以激活函数很重要的一个作用就是增加模型的非线性分割能力。如果你觉的没有效果不够明显,可以使用多层的隐藏层来使效果更加显著。
常见的激活函数有:
在这里插入图片描述
从图中可以看出:

  • simoid的结果只有正数,靠近0的输出变化率最大
  • tanh和sigmoid不同的是,tanh输出可以是负数
  • Relu是输入只能大于0,如果你输入含有负数,Relu就不适合,如果你的输入是图片格式,Relu就挺常用的,因为图片的像素值作为输入时取值为[0,255]。

激活函数的全部作用

  • 增加模型的非线性分割能力
  • 提高模型鲁棒性(稳健性)
  • 缓解梯度消失问题
  • 加速模型收敛
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值