日萌社

人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新)


2.2 神经网络简介

2.2.1 什么是神经网络

人工神经网络( Artificial Neural Network, 简写为ANN)也简称为神经网络(NN)。是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)结构和功能的 计算模型。经典的神经网络结构包含三个层次的神经网络。分别输入层,输出层以及隐藏层。

其中每层的圆圈代表一个神经元,隐藏层和输出层的神经元有输入的数据计算后输出,输入层的神经元只是输入。

  • 神经网络的特点

    • 1、每个连接都有个权值
    • 2、同一层神经元之间没有连接
    • 3、最后的输出结果对应的层也称之为全连接层
  • 组成:

    • 输入层:神经网络的第一层,原始的样本数据
    • 输出层:神经网络的最后一层,最终的计算结果
    • 隐藏层:其余的中间层都被称为隐藏层(hidden layer)
    • 权重(weight):就是之前所说的参数,这里被称为一个神经节点的权重。
    • 激活函数(activation function):激活函数是两层神经元之间的映射函数,是一种输出到输入的转换,一般是非线性的,而且是单调可微函数(因为优化方法是基于梯度的)。常见的激活函数有:sigmoid,tanh

那么为什么设计这样的结构呢?首先从一个最基础的结构说起,神经元。以前也称之为感知机。神经元就是要模拟人的神经元结构。

一个神经元通常具有多个树突,主要用来接受传入信息;而轴突只有一条,轴突尾端有许多轴突末梢可以给其他多个神经元传递信息。轴突末梢跟其他神经元的树突产生连接,从而传递信号。这个连接的位置在生物学上叫做“突触”。

要理解神经网络,先解释一种叫做感知机(perceptron)的人工神经元。感知机由科学家Frank Rosenblatt发明于1950至1960年代,他受到了来自Warren McCulloch 和Walter Pitts的更早工作的启发。

注:我们通常使用其它种类的人工神经元模型,主要使用的是一种叫做sigmoid神经元(sigmoid neuron)的神经元模型。

2.2.1.1 感知机(PLA: Perceptron Learning Algorithm))

感知机就是模拟这样的大脑神经网络处理数据的过程。感知机模型如下图:

感知机是一种最基础的分类模型,前半部分类似于回归模型。感知机最基础是这样的函数,而逻辑回归用的sigmoid。这个感知机具有连接的权重和偏置

我们通过一个平台去演示,就是tensorflow playground

2.2.2 playground使用

网址:http://playground.tensorflow.org

那么在这整个分类过程当中,是怎么做到这样的效果那要受益于神经网络的一些特点

要区分一个数据点是橙色的还是蓝色的,你该如何编写代码?也许你会像下面一样任意画一条对角线来分隔两组数据点,定义一个阈值以确定每个数据点属于哪一个组。

其中 b 是确定线的位置的阈值。通过分别为 x1 和 x2 赋予权重 w1 和 w2,你可以使你的代码的复用性更强。

此外,如果你调整 w1 和 w2 的值,你可以按你喜欢的方式调整线的角度。你也可以调整 b 的值来移动线的位置。所以你可以重复使用这个条件来分类任何可以被一条直线分类的数据集。但问题的关键是程序员必须为 w1、w2 和 b 找到合适的值——即所谓的参数值,然后指示计算机如何分类这些数据点。

2.2.2.1 playground简单两类分类结果

但是这种结构的线性的二分类器,但不能对非线性的数据并不能进行有效的分类。如下面异或问题例子:

  • 感知机结构,能够很好去解决与、或等问题,但是并不能很好的解决异或等问题。我们通过一张图来看,有四个样本数据

与问题:每个样本的两个特征同时为1,结果为1

或问题:每个样本的两个特征一个为1,结果为1

如果解决异或:每个样本的两个特征相同为0, 不同为1?

画图理解:

公式理解:

其实上述我们可以就理解:Z= sigmoid(AX1+BX2+C), 本身sigmoid函数是单调递增函数。

左上角点:x1=0,x2=1输出z=1

右上角点:x2=1,x2=1输出z=0

左下角点:x1=0,x2=0输出z=0

右下角点:x1=1,x2=0输出z=1

观察异或运算我们来看下面结果:

  • 如果当X2=0, 将X1的取值从0到1,使得Z的结果也从0到1,意味着Z的变化时与X1正相关,需要设置A为正数
  • 如果当X2=1, 将X1的取值从0到1,使得Z的结果也从1到0,意味着Z的变化时与X1负相关,需要设置A为负数

上面的两个结论是矛盾的,所有采用逻辑回归无法精确得到一个输出为异或的模型

如果给出这样的数据

2.2.2.2 单神经元复杂的两类-playground演示

那么怎么解决这种问题呢?其实我们多增加层或者多几个感知机即可解决?也就是下图这样的结构,组成一层的结构?

2.2.2.3多个神经元效果演示

2.2.3 神经网络发展史

  • 1、深度学习其实并不是新的事物,深度学习所需要的神经网络技术起源于20世纪50年代,那个时候叫做感知机。当时也通常使用单层感知机,尽管结构简单,但是能够解决相当复杂的问题。
  • 2、后来感知机被证明存在严重的问题,因为只能学习线性可分函数,连简单的异或(XOR)等线性不可分问题都无能为力,1969年Marvin Minsky写了一本叫做《Perceptrons》的书,他提出了著名的两个观点:1.单层感知机没用,我们需要多层感知机来解决复杂问题 2.没有有效的训练算法。
  • 3、1974年哈佛大学博士毕业生Paul J. Werbos首次提出反向传播算法应用在神经网络的可能,The Roots of Backpropagation: From Ordered Derivatives to Neural Networks and Political Forecasting,但并未得到学术界的重视。直到1986年BP算法才真正开始流行起来,主要是因为Rumelhart、Hinton、Williams合著的《Learning representations by back-propagating errors》
  • 4、 虽然训练算法有了突破,但是还存在很多问题,比如以当时计算机的计算能力,训练一次神经网络耗时太久,不具备实际使用价值。同时还会存在过拟合以及梯度消失等问题。而90年代中期,由Vapnik等人发明的支持向量机(Support Vector Machines,SVM)算法诞生,它同样解决了线性不可分问题,但是对比神经网络有全方位优势:
    • 1、高效,可以快速训练;
    • 2、无需调参,没有梯度消失问题;
    • 3、高效泛化,全局最优解,不存在过拟合问题,几乎全方位的碾压神经网络。
  • 5、几乎在这10几年的时间,只有Hinton等几位学者在研究神经网络。直到2006年,提出了"深度置信网络"概念,有一个预训练的过程。使用微调技术作为反向传播和调优手段。减少了网络训练时间,并且提出了一个新的概念叫做"深度学习"
  • 6、直到2012年,在ImageNet竞赛中,Hinton教授的团队,使用以卷积神经网络为基础的深度学习方案,他们训练的模型面对15万张测试图像时,预测的头五个类别的错误率只有 15.3%,而排名第二的日本团队,使用的SVM方法构建的模型,相应的错误率则高达 26.2%。从此一战成名!2012年后深度学习就成为主流。

2.2.4 总结

  • 神经网络的定义
  • 感知机与神经网络的联系
  • 神经网络的发展历史

人工神经网络(ANN/NN)、感知机(PLA)相关推荐

  1. DL之ANN/DNN: 人工神经网络ANN/DNN深度神经网络算法的简介、应用、经典案例之详细攻略

    DL之ANN/DNN: 人工神经网络ANN/DNN深度神经网络算法的简介.应用.经典案例之详细攻略 相关文章 DL:深度学习(神经网络)的简介.基础知识(神经元/感知机.训练策略.预测原理).算法分类 ...

  2. ann matlab,人工神经网络ann及其matlab仿真.ppt

    人工神经网络ann及其matlab仿真 人工神经网络 的研究方法及应用刘 长 安2004. 12. 31 引 言 利用机器模仿人类的智能是长期以来人们认识自然.改造自然和认识自身的理想. 研究ANN目 ...

  3. 人工神经网络ANN建模基础须知

    链接文章:机器学习基础须知.神经网络建模实践,其他博文 人工神经网络ANN 0.感知机:包括输入节点.输出节点两部分,输入节点和输出节点用一个表示权重的值连接.感知机的输出值是计算输入节点的加权和,减 ...

  4. 人工神经网络ANN的算法总结

    用笔记,记录自己的点滴进步:用行动,驱赶心中的彷徨 --杰 人工神经网络ANN的算法总结 前言 卷积神经网络 相关名词解释 卷积层 激励层 池化层 全连接层 补充 参考资料与原文 前言 人工神经网络( ...

  5. 福利 | 从生物学到神经元:人工神经网络 ( ANN ) 简介

    文末有数据派THU福利哦 [ 导读 ] 我们从鸟类那里得到启发,学会了飞翔,从牛蒡那里得到启发,发明了魔术贴,还有很多其他的发明都是被自然所启发.这么说来看看大脑的组成,并期望因此而得到启发来构建智能 ...

  6. 人工神经网络 ANN

    卷积神经网络CNN图解 本文参考人工神经网络ANN 神经网络是一门重要的机器学习技术.它是深度学习的基础. 神经网络是一种模拟人脑的神经网络以期望能够实现人工智能的机器学习技术.人脑中的神经网络是一个 ...

  7. 深度学习(一)多层感知器MLP/人工神经网络ANN

    目录 一.定义和公式 1. 多层感知器 Multi Layer Perceptron MLP 2. MLP实现非线性分类 3. Keras介绍 二. 代码实战 1. 建立MLP模型实现二分类 1.1  ...

  8. 实现人工神经网络ANN对医疗数据分类

    2.3 使用ANN对医疗数据分类 IBM在2015年5月宣布推出Watson Health服务,收集健康数据交给Watson超级计算机进行分析.目前IBM Waston Health最主要的应用便是在 ...

  9. R语言应用实战系列(六)-基于R的人工神经网络ANN算法和KNN算法(k-Nearest Neighbour)

    一.神经网络 人工神经网络算法(ANN),是一种模仿生物神经网络的结构和功能的数学模型和计算模型.神经网络由大量的人工神经元联结进行计算.大多数情况下,人工神经网络能在外在信息的基础上改变内部结构,是 ...

最新文章

  1. cpa机考可以用计算机吗,cpa机考计算器使用方法
  2. 外链起到引导、推广排名的作用
  3. Golang中的自动伸缩和自防御设计
  4. Mac下修改ZOC中文乱码
  5. Android控件的继承关系图
  6. Yii2 behavior运用
  7. html中日期格式化函数,JavaScript日期时间格式化函数分享
  8. maxvalue mysql自动分区_mysql的partition分区
  9. 【Elasticsearch】Elasticsearch 搜索体验可量化的指标 查准率(精确率)、查全率(召回率)
  10. MongoDB 进阶模式设计
  11. Linux下用户组、文件权限、更改目录下所有文件权限
  12. python_scrapy_爬虫
  13. uwsgi怎么启动停止
  14. JSP开发工具安装教程
  15. 爬虫python淘宝_python爬虫爬取淘宝失败原因分析
  16. 支招:如何提高芝麻信用分到800以上
  17. 微信小程序之个人界面编写(2023.5.9版)
  18. iOS基础-高级进阶面试题
  19. LNK2001:无法解析的外部符号,LNK1120:一个无法解析的外部命令
  20. 我爱计算机:张俊林专访

热门文章

  1. CSS实现中英双语导航栏——利用块级元素隐藏实现
  2. 桌面、平板、手机和机器人操作系统(ROS)市场占有率数据和趋势分享(附引用2019版)
  3. Java、JSP外卖订餐系统
  4. Apache Zeppelin 简单介绍,以及下载地址
  5. 高中数学基础10:二项分布与二项式定理
  6. UDF函数开发中的坑
  7. 视频多少帧时才不卡顿
  8. 下载 GitHub的代码:git(windows)
  9. SaaS是什么,目前主流的国内SAAS平台提供商有哪些?
  10. Nullpoint及其相关的报错