图像分类_02神经网络(NN)简介:定义+ 感知机+历史

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

815902569f6a467a99304f9ac1482386.png


2.2.1 什么是神经网络


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


9733240a29f04aa2aa70f0560bd20288.png


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


  • 神经网络的特点


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


  • 组成:


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


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


507f90d67d1e45dba5e3b4e96fa142b2.png


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


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


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


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


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


a069b3ac41e548f88c43363d80af82b6.png


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


9ca9ef1e2b7e4857a5c2e19a09a7a38a.png


2.2.3 神经网络发展史


ba630d5d7136443bbe3c149dbbc6ec6e.png


  • 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 总结


  • 神经网络的定义


  • 感知机与神经网络的联系


  • 神经网络的发展历史
目录
相关文章
|
2月前
|
消息中间件 Kubernetes 网络协议
Cilium 系列 -15-7 层网络 CiliumNetworkPolicy 简介
Cilium 系列 -15-7 层网络 CiliumNetworkPolicy 简介
|
3月前
|
消息中间件 NoSQL Linux
workFlow c++异步网络库编译教程与简介
搜狗公司C++服务器引擎,编程范式。支撑搜狗几乎所有后端C++在线服务,包括所有搜索服务,云输入法,在线广告等,每日处理数百亿请求。这是一个设计轻盈优雅的企业级程序引擎,可以满足大多数后端与嵌入式开发需求。 编程范式 结构化并发与任务隐藏回调与内存回收机制
54 0
|
4月前
|
机器学习/深度学习 算法 数据挖掘
【数据挖掘】神经网络与感知机基础概念讲解(图文解释 超详细)
【数据挖掘】神经网络与感知机基础概念讲解(图文解释 超详细)
36 0
【数据挖掘】神经网络与感知机基础概念讲解(图文解释 超详细)
|
1月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【PyTorch实战演练】使用Cifar10数据集训练LeNet5网络并实现图像分类(附代码)
【PyTorch实战演练】使用Cifar10数据集训练LeNet5网络并实现图像分类(附代码)
66 0
|
3月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
基于深度学习的图像分类:使用卷积神经网络实现猫狗分类器
基于深度学习的图像分类:使用卷积神经网络实现猫狗分类器
64 0
|
2天前
|
数据可视化 数据挖掘
【视频】复杂网络分析CNA简介与R语言对婚礼数据聚类社区检测和可视化|数据分享
【视频】复杂网络分析CNA简介与R语言对婚礼数据聚类社区检测和可视化|数据分享
10 2
|
4天前
|
人工智能 安全 大数据
SDN(软件定义网络)——重塑网络架构的新视角
SDN(软件定义网络)是网络架构革新的关键,通过分离控制与数据平面,实现网络的灵活、高效管理。未来,SDN将更广泛应用于各行业,与云计算、大数据、AI融合,推动数字化转型。开放与标准化的趋势将促进SDN生态发展,提供以业务需求为导向、智能化自动化管理及增强网络安全的新视角。SDN将在更多领域扮演重要角色,支持网络技术的创新与进步。
|
9天前
|
安全 数据建模 网络安全
深入理解SSL数字证书:定义、工作原理与网络安全的重要性
本文阐述了SSL数字证书在网络安全中的关键作用,定义了其作为验证服务器身份的数字凭证,基于PKI体系保障数据传输安全。文章介绍了三种类型的证书,包括DV、OV和EV,适用于不同安全需求的网站。获取和安装证书涉及向证书颁发机构申请并部署到服务器。在网络安全挑战下,正确使用和管理SSL证书对于保护用户数据和提升信任度至关重要。
|
16天前
|
网络协议 Java API
Python网络编程基础(Socket编程)Twisted框架简介
【4月更文挑战第12天】在网络编程的实践中,除了使用基本的Socket API之外,还有许多高级的网络编程库可以帮助我们更高效地构建复杂和健壮的网络应用。这些库通常提供了异步IO、事件驱动、协议实现等高级功能,使得开发者能够专注于业务逻辑的实现,而不用过多关注底层的网络细节。
|
24天前
|
数据采集 网络协议 API
python中其他网络相关的模块和库简介
【4月更文挑战第4天】Python网络编程有多个流行模块和库,如requests提供简洁的HTTP客户端API,支持多种HTTP方法和自动处理复杂功能;Scrapy是高效的网络爬虫框架,适用于数据挖掘和自动化测试;aiohttp基于asyncio的异步HTTP库,用于构建高性能Web应用;Twisted是事件驱动的网络引擎,支持多种协议和异步编程;Flask和Django分别是轻量级和全栈Web框架,方便构建不同规模的Web应用。这些工具使网络编程更简单和高效。