深度学习和神经网络介绍

文章目录

  • 深度学习和神经网络介绍
  • 深度学习的介绍
    • 目标
    • 1. 深度学习的概念
    • 2. 机器学习和深度学习的区别
      • 2.1 区别1 :特征提取
      • 2.2 区别2:数据量
    • 3. 深度学习的应用场景
    • 4. 常见的深度学习框架
  • 神经网络的介绍
    • 目标
    • 1. 人工神经网络的概念
    • 2. 神经元的概念
    • 3. 单层神经网络
    • 4. 感知机
    • 5. 多层神经网络
    • 6. 激活函数
    • 6. 神经网络示例

深度学习的介绍

目标

  1. 知道什么是深度学习
  2. 知道深度学习和机器学习的区别
  3. 能够说出深度学习的主要应用场景
  4. 知道深度学习的常见框架

1. 深度学习的概念

深度学习(英语:deep learning)是机器学习的分支,是一种以人工神经网络为架构,对数据进行特征学习的算法。

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

2.1 区别1 :特征提取

特征提取的角度出发:

  1. 机器学习需要有人工的特征提取的过程

  2. 深度学习没有复杂的人工特征提取的过程,特征提取的过程可以通过深度神经网络自动完成

2.2 区别2:数据量

数据量的角度出发:

  1. 深度学习需要大量的训练数据集,会有更高的效果
  2. 深度学习训练深度神经网络需要大量的算力,因为其中有更多的参数

3. 深度学习的应用场景

  1. 图像识别

    1. 物体识别
    2. 场景识别
    3. 人脸检测跟踪
    4. 人脸身份认证
  2. 自然语言处理技术

    1. 机器翻译
    2. 文本识别
    3. 聊天对话
  3. 语音技术

    1. 语音识别

    4. 常见的深度学习框架

    目前企业中常见的深度学习框架有很多,TensorFlow, Caffe2, Keras, Theano, PyTorch, Chainer, DyNet, MXNet, and CNTK等等

    其中tensorflow和Kears是google出品的,使用者很多,但是其语法晦涩而且和python的语法不尽相同,对于入门玩家而言上手难度较高。

    所以在之后的课程中我们会使用facebook出的PyTorch,PyTorch的使用和python的语法相同,整个操作类似Numpy的操作,并且 PyTorch使用的是动态计算,会让代码的调试变的更加简单

神经网络的介绍

目标

  1. 知道神经网络的概念
  2. 知道什么是神经元
  3. 知道什么是单层神经网络
  4. 知道什么是感知机
  5. 知道什么是多层神经网络
  6. 知道激活函数是什么,有什么作用
  7. 理解神经网络的思想

1. 人工神经网络的概念

人工神经网络(英语:Artificial Neural Network,ANN),简称神经网络(Neural Network,NN)或类神经网络,是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型,用于对函数进行估计或近似。

和其他机器学习方法一样,神经网络已经被用于解决各种各样的问题,例如机器视觉和语音识别。这些问题都是很难被传统基于规则的编程所解决的。

2. 神经元的概念

在生物神经网络中,每个神经元与其他神经元相连,当它“兴奋”时,就会向相连的神经元发送化学物质,从而改变这些神经元内的电位;如果某神经元的电位超过了一个“阈值”,那么它就会被激活,即“兴奋”起来,向其他神经元发送化学物质。

1943 年,McCulloch 和 Pitts 将上述情形抽象为上图所示的简单模型,这就是一直沿用至今的 M-P 神经元模型。把许多这样的神经元按一定的层次结构连接起来,就得到了神经网络。

一个简单的神经元如下图所示,

其中:

  1. a1,a2…ana_1,a_2\dots a_na1​,a2​…an​ 为各个输入的分量
  2. w1,w2⋯wnw_1,w_2 \cdots w_nw1​,w2​⋯wn​ 为各个输入分量对应的权重参数
  3. bbb 为偏置
  4. fff 为激活函数,常见的激活函数有tanh,sigmoid,relu
  5. ttt 为神经元的输出

使用数学公式表示就是:
t=f(WTA+b)t = f(W^TA+b) t=f(WTA+b)
可见,一个神经元的功能是求得输入向量与权向量的内积后,经一个非线性传递函数得到一个标量结果

3. 单层神经网络

是最基本的神经元网络形式,由有限个神经元构成,所有神经元的输入向量都是同一个向量。由于每一个神经元都会产生一个标量结果,所以单层神经元的输出是一个向量,向量的维数等于神经元的数目。

示意图如下:

4. 感知机

感知机由两层神经网络组成,输入层接收外界输入信号后传递给输出层(输出+1正例,-1反例),输出层是 M-P 神经元

其中从w0,w1⋯wnw_0,w_1\cdots w_nw0​,w1​⋯wn​都表示权重

感知机的作用:

把一个n维向量空间用一个超平面分割成两部分,给定一个输入向量,超平面可以判断出这个向量位于超平面的哪一边,得到输入时正类或者是反类,对应到2维空间就是一条直线把一个平面分为两个部分

5. 多层神经网络

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

  • 输入层(Input layer),众多神经元(Neuron)接受大量输入消息。输入的消息称为输入向量。
  • 输出层(Output layer),消息在神经元链接中传输、分析、权衡,形成输出结果。输出的消息称为输出向量。
  • 隐藏层(Hidden layer),简称“隐层”,是输入层和输出层之间众多神经元和链接组成的各个层面。隐层可以有一层或多层。隐层的节点(神经元)数目不定,但数目越多神经网络的非线性越显著,从而神经网络的强健性(robustness)更显著。

示意图如下:

概念:全连接层

全连接层:当前一层和前一层每个神经元相互链接,我们称当前这一层为全连接层。

思考:假设第N-1层有m个神经元,第N层有n个神经元,当第N层是全连接层的时候,则N-1和N层之间有1,这些参数可以如何表示?

从上图可以看出,所谓的全连接层就是在前一层的输出的基础上进行一次Y=Wx+bY=Wx+bY=Wx+b的变化(不考虑激活函数的情况下就是一次线性变化,所谓线性变化就是平移(+b)和缩放的组合(*w))

6. 激活函数

在前面的神经元的介绍过程中我们提到了激活函数,那么他到底是干什么的呢?

假设我们有这样一组数据,三角形和四边形,需要把他们分为两类

通过不带激活函数的感知机模型我们可以划出一条线, 把平面分割开

假设我们确定了参数w和b之后,那么带入需要预测的数据,如果y>0,我们认为这个点在直线的右边,也就是正类(三角形),否则是在左边(四边形)

但是可以看出,三角形和四边形是没有办法通过直线分开的,那么这个时候该怎么办?

可以考虑使用多层神经网络来进行尝试,比如在前面的感知机模型中再增加一层

对上图中的等式进行合并,我们可以得到:
y=(w1−11w2−1+⋯)x1+(w1−21w2−1+⋯)x2+(w2−1+⋯)b1−1y = (w_{1-11}w_{2-1}+\cdots)x_1+(w_{1-21}w_{2-1}+\cdots)x_2 + (w_{2-1}+\cdots)b_{1-1} y=(w1−11​w2−1​+⋯)x1​+(w1−21​w2−1​+⋯)x2​+(w2−1​+⋯)b1−1​
上式括号中的都为w参数,和公式y=w1x1+w2x2+by = w_1x_1 + w_2x_2 +by=w1​x1​+w2​x2​+b完全相同,依然只能够绘制出直线

所以可以发现,即使是多层神经网络,相比于前面的感知机,没有任何的改进。

但是如果此时,我们在前面感知机的基础上加上非线性的激活函数之后,输出的结果就不在是一条直线

如上图,右边是sigmoid函数,对感知机的结果,通过sigmoid函数进行处理

如果给定合适的参数w和b,就可以得到合适的曲线,能够完成对最开始问题的非线性分割

所以激活函数很重要的一个作用就是增加模型的非线性分割能力

常见的激活函数有:

看图可知:

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

激活函数的作用除了前面说的增加模型的非线性分割能力外,还有

  • 提高模型鲁棒性
  • 缓解梯度消失问题
  • 加速模型收敛等

这些好处,大家后续会慢慢体会到,这里先知道就行

6. 神经网络示例

一个男孩想要找一个女朋友,于是实现了一个女友判定机,随着年龄的增长,他的判定机也一直在变化

14岁的时候:

无数次碰壁之后,男孩意识到追到女孩的可能性和颜值一样重要,于是修改了判定机:

在15岁的时候终于找到呢女朋友,但是一顿时间后他发现有各种难以忍受的习惯,最终决定分手。一段空窗期中,他发现找女朋友很复杂,需要更多的条件才能够帮助他找到女朋友,于是在25岁的时候,他再次修改了判定机:

在更新了女友判定机之后,问题又来了,很多指标不能够很好的量化,如何颜值,什么样的叫做颜值高,什么样的叫做性格好等等,为了解决这个问题,他又更新了判定机,最终得到超级女友判定机

上述的超级女友判定机其实就是神经网络,它能够接受基础的输入,通过隐藏层的线性的和非线性的变化最终的到输出

通过上面例子,希望大家能够理解深度学习的思想

输出的最原始、最基本的数据,通过模型来进行特征工程,进行更加高级特征的学习,然后通过传入的数据来确定合适的参数,让模型去更好的拟合数据。

这个过程可以理解为盲人摸象,多个人一起摸,把摸到的结果乘上合适的权重,进行合适的变化,让他和目标值趋近一致。整个过程只需要输入基础的数据,程序自动寻找合适的参数。

深度学习和神经网络介绍相关推荐

  1. 基础 | 深度学习与神经网络-介绍

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自|深度学习自然语言处理 导读 深度学习 深度学习改变了搜索. ...

  2. 换脸原理,使用GAN网络再造ZAO应用:深度学习和神经网络介绍

    人工智能有两大分支,一支是机器学习,一支叫深度学习,目前后者占据人工智能技术的主流,当前流行的ZAO换脸应用,自动驾驶,人脸识别使用的都是后者.深度学习主要用于模仿人的认知能力,它的特长在于处理非机构 ...

  3. 深度学习和神经网络的介绍(一)

    1.深度学习和神经网络 1.1 深度学习的介绍 目标: 知道什么是深度学习 知道深度学习和机器学习的区别 能够说出深度学习的主要应用场景 知道深度学习的常见框架 1.1.1 深度学习的概念 深度学习是 ...

  4. 15个小时彻底搞懂NLP自然语言处理(2021最新版附赠课件笔记资料)【LP自然语言处理涉及到深度学习和神经网络的介绍、 Pytorch、 RNN自然语言处理】 笔记

    15个小时彻底搞懂NLP自然语言处理(2021最新版附赠课件笔记资料)[LP自然语言处理涉及到深度学习和神经网络的介绍. Pytorch. RNN自然语言处理] 笔记 教程与代码地址 P1 机器学习与 ...

  5. 华南理工深度学习与神经网络期末考试_深度学习基础:单层神经网络之线性回归...

    3.1 线性回归 线性回归输出是一个连续值,因此适用于回归问题.回归问题在实际中很常见,如预测房屋价格.气温.销售额等连续值的问题.与回归问题不同,分类问题中模型的最终输出是一个离散值.我们所说的图像 ...

  6. 百度嵌入式深度学习框架Paddle-Mobile介绍

    本篇内容介绍嵌入式深度学习的应用场景.Paddle-Mobile的特性优势以及使用开发方法,预计阅读时间4分钟 嵌入式深度学习有哪些应用 深度学习技术已经在互联网的诸多方向产生影响,关于深度学习和神经 ...

  7. 深度学习(神经网络) —— BP神经网络原理推导及python实现

    深度学习(神经网络) -- BP神经网络原理推导及python实现 摘要 (一)BP神经网络简介 1.神经网络权值调整的一般形式为: 2.BP神经网络中关于学习信号的求取方法: (二)BP神经网络原理 ...

  8. python神经网络教程16_Python深度学习之神经网络视频

    Python深度学习之神经网络视频 课程简介 该阶段是深度学习的入门课程,主要介绍经典的深度学习框架TensorFlow的使用,IO操作,以及神经网络基础.卷积神经网络的相关知识,并用卷积神经网络原理 ...

  9. 零基础入门深度学习(3) - 神经网络和反向传播算法

    无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理想有追求的程序员,不懂深度学习(Deep Learning)这个超热的技术,会不会感觉马上就o ...

  10. 深度学习与神经网络概述

    本文将简单介绍:人工智能(Artificial Intelligence).机器学习(Machine Learning).深度学习(Deep Learning),并介绍神经网络的发展,以及三个在线演示 ...

最新文章

  1. 神经网络迭代次数的线性累加现象
  2. 利用BIND 9基于电信网通智能DNS 搭建
  3. linux内核响应,读书笔记——Linux内核源代码情景分析——3.4  中断的响应和服务...
  4. php 获取URL 各部分参数
  5. 【CSS进阶】box-shadow 与 filter:drop-shadow 详解及奇技淫巧
  6. ft232h引脚_usb转串口芯片 ft232的奇怪现象
  7. Oracle 11g Java驱动包ojdbc6.jar安装到maven库,并查看jar具体版本号
  8. 国内外独立IP行情及网站用独立IP优势面面观
  9. 信安教程第二版-第12章网络安全审计技术原理与应用
  10. 参数化查询为什么能够防止SQL注入
  11. 使用java反射写一个通用的jdbc查询
  12. 程序员面试宝典(第三版).pdf
  13. 【逗老师带你学IT】PRTG、Zabbix通过API监控深信服VDC和VMP云桌面运行状态
  14. Python 练习题
  15. 有道单词本手机和电脑同步问题
  16. 用Python构建一个PE文件
  17. 机器视觉入门:决策树的剪枝理论
  18. Saltstack入门到精通教程(五):Jinja详解
  19. 互联网日报 | 6月3日 星期四 | 华为正式发布HarmonyOS 2;联想会员数突破1.4亿;今年全国高考报名人数1078万...
  20. 读李尚龙《你只是看起来很努力》摘录的句子

热门文章

  1. 创建室内导航地图的9个步骤
  2. c语言编程如何进行n次方运算,c语言n次方怎么输入?_后端开发
  3. 三星pay显示连接服务器失败,Samsung Pay刚刚上线就遇绑卡失败,三星闹哪样?
  4. 金蝶商贸版密码服务器没显示,金蝶KIS商贸版无损解密用户密码
  5. 母亲节祝福html源码,有创意的母亲节祝福语大全
  6. 二人行必有我师,探秘复旦大学EMBA2019级同侪私董会
  7. pat2020春季考试7-2 The Judger (25 分) 7-4 Replacement Selection (30 分)
  8. 《虚拟仿真实验教学解决方案(BJBR)》(Yanlz+Unity+SteamVR+VR+AR+MR+HR+??BR??+??CR??+??DR??+??ER??+虚拟仿真+人机交互+立钻哥哥+==)
  9. powershell为所有用户卸载磁贴应用
  10. 安装了linux后win10键盘失灵,win10系统安装后笔记本键盘失灵不能用的解决方法