人工神经网络ANN

这篇具有很好参考价值的文章主要介绍了人工神经网络ANN。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 人工神经网络简介

1.1 生物神经网络

人工神经网络的灵感来自其生物学对应物。生物神经网络使大脑能够以复杂的方式处理大量信息。大脑的生物神经网络由大约1000亿个神经元组成,这是大脑的基本处理单元。神经元通过彼此之间巨大的连接(称为突触)来执行其功能。

人体神经元模型如下图所示:

人工神经网络ANN

  • 接收区(receptive zone):树突接收到输入信息。
  • 触发区(trigger zone):位于轴突和细胞体交接的地方,决定是否产生神经冲动。
  • 传导区(conducting zone):由轴突进行神经冲动的传递。
  • 输出区(output zone):神经冲动的目的就是要让神经末梢,突触的神经递质或电力释出,才能影响下一个接受的细胞(神经元、肌肉细胞或是腺体细胞),此称为突触传递。

1.2 人工神经网络

人工神经网络定义为:人工神经网络是一种由具有自适应性的简单单元构成的广泛并行互联的网络,它的组织结构能够模拟生物神经系统对真实世界所做出的交互反应。

人工神经网络的结构如下图所示:

人工神经网络ANN

  • 输入层:输入层接收特征向量 x 。
  • 输出层:输出层产出最终的预测 h 。
  • 隐含层:隐含层介于输入层与输出层之间,之所以称之为隐含层,是因为当中产生的值并不像输入层使用的样本矩阵 X 或者输出层用到的标签矩阵 y 那样直接可见。

人工神经网络由一个输入层和一个输出层组成,其中输入层从外部源(数据文件,图像,硬件传感器等)接收数据,一个或多个隐藏层处理数据,输出层提供一个或多个数据点基于网络的功能。根据不同的问题,可以加入多个隐藏层,由图中这种全连接改为部 分连接,甚至是环形连接等。

2. 人工神经网络原理

人工神经网络的强大之处在于,它拥有很强的学习能力。在得到一个训练集之后,它能通过学习提取所观察事物的各个部分的特征,将特征之间用不同网络节点连接,通过训练连接的网络权重,改变每一个连接的强度,直到顶层的输出得到正确的答案。

神经网络算法大致过程如下:
第一步,我们要预先设定一种网络结构和激活函数,这一步其实很困难,因为网络结构可以无限拓展,要知道什么样的结构才符合我们的问题需要做大量的试验。
第二步,初始化模型中的权重。模型中的每一个连接都会有一个权重,在初始化的时候可以都随机给予一个值。
第三步,就是根据输入数据和权重来预测结果。由于最开始的参数都是随机设置的,所以获得的结果肯定与真实的结果差距比较大,所以在这里要计算一个误差,误差反映了预测结果和真实结果的差距有多大。
最后一步,模型要调节权重。这里我们可以参与的就是需要设置一个“学习率”,这个学习率是针对误差的,每次获得误差后,连接上的权重都会按照误差的这个比率来进行调整,从而期望在下次计算时获得一个较小的误差。经过若干次循环这个过程,我们可以选择达到一个比较低的损失值的时候停止并输出模型,也可以选择一个确定的循环轮次来结束。

2.1 ANN的基本构造

人工神经网络是许多神经元经联接而成的网络结构。因此,ANN的构造有两层含义:1. 神经元的结构;2. 网络互联结构(拓扑结构)。

2.1.1 神经元的结构模型

根据前面对生物神经元的分析,应具有以下特点:
(a) 神经元是一个多输入、单输出的元件。
(b) 神经元是一个具有非线性输入/输出特性的元件。表现在只有当来自各神经突触的活动电位达到一定强度后,该神经才能被激活,释放出神经传递化学物质,发出本身的活动电位脉冲。
(c) 神经元的连接具有可塑性,表现在其活动电位脉冲的传递强度依靠神经传递化学物质的释放量及突触间隙的变化量,可以进行调节。
(d) 神经元的输出响应,是各个输入的综合结果。

2.1.2 网络拓扑结构

网络拓扑结构即神经元的联接形式,从大的方面来看,ANN网络拓扑结构可分为层次结构、模块结构和层次模块结构等几种。
1.层次结构:神经元的联接按层次排列。
2.模块结构:主要特点是将整个网络按功能划分为不同的模块,每个模块内部的神经元紧密互联,并完成各自特定的功能,模块之间再互联以完成整体功能。
3.层次模块结构:将模块结构和层次结构结合起来,使之更接近人脑神经系统的结构,这也是目前为人们广泛注意的一种新型网络互联模式。

根据网络中神经元的层数不同,可将神经网络分为单层网络和多层网络;

根据同层网络神经元之间有无相互联接以及后层神经元与前层神经元有无反馈作用的不同,可将神经网络分为以下多种。
(a)前向网络: 网络中的神经元分层排列,每个神经元只与前一层神经元相连,层间神经元无连接。最上一层为输出层,最下一层为输入层,中间层称为隐层。
(b)从输出到输入有反馈的前向网络: 从输出到输入有反馈环节的前向网络。
(c)层内互连前向网络: 通过层内神经元的相互连接,可以实现同一层神经元间的相互制约,从而可以将层内神经元分为几组,让每组作为一个整体来动作。
(d)互连网络:分为局部互连和全互连两种。全互连网络中每个神经元的输出都与其他神经元相连;而局部互连网络中,有些神经元间没有连接关系。

2.2 学习规则

神经网络要能工作必须首先进行学习,学习规则多种多样,一般可以归结为以下两类:
(1)有指导学习:不但需要学习用的输入事例(训练样本,通常为一矢量),同时还要求与之对应的表示所需期望输出的目标矢量。进行学习时,首先计算一个输入矢量的网络输出,然后同相应的目标输出比较,比较结果的误差用来按规定的算法改变加权。
(2)无指导学习:不要求有目标矢量,网络通过自身的“经历”来学会某种功能,在学习时,关键不在于网络实际输出是否与外部的期望输出相一致,而在于调整权重以反映学习样本的分布,因此整个训练过程实质是抽取训练样本集的统计特性。特别适用于对未知事物的研究。

工程实践中,有指导学习和无指导学习并不是相互冲突的,目前已经出现了一些融合有指导学习和无指导学习的训练算法。如在应用有指导学习训练一个网络后,再利用一些后期的无指导学习来使得网络自适应于环境的变化。

2.3 学习算法

学习算法是人工神经网络研究的主要内容和中心环节,许多性能各异的神经网络的差异也主要体现在学习算法的不同上,同时,对于神经网络学习算法也是至今人们研究得最多的一个方面。

截止目前,人们已先后提出了误差反向传播算法(BP算法)、Hopfield算法、自适应共振理论算法(ART算法)、自组织特征映射算法(Kohonen算法)等。

误差反向传播算法简称BP算法,它是Werbos等人提出的一个有监督训练的多层神经网络算法。在网络学习阶段,其每一个训练范例在网络中经过两个方向的传递计算。一遍向前传播计算,从输入层开始传递至各层,经过处理后产生一个输出,由此可得到一个该实际输出与其理想输出之差的误差矢量;此后,再进行反向传播计算,即从输出层开始至输入层结束,根据误差矢量并以一定的速度对各权值依次进行修正。

BP算法有很强的数学基础,扩展了神经网络的应用范围,已有许多成功的应用实例,对神经网络研究的再次兴起起过很大作用。

3. 人工神经网络特点

优点:
(1)具有自学习功能 。
(2)具有联想存储功能。
(3)具有高速寻找优化解的能力。

缺点:
(1)神经网络需要大量数据,非常消耗资源,开销也非常大的,而且训练时间长,还需要耗费很大的人力物力。
(2)神经网络在概括方面很不好。
(3)神经网络是不透明的。

4. 人工神经网络的Python应用

在 Scikit 中神经网络被称为多层感知器(Multi-layer Perceptron),它可以用于分类或回归的非线性函数。用于分类的模块是 MLPClassifier,而用于回归的模块则是 MLPRegressor。

MLPClassifier 主要用来做分类,下面用 MLPClassifier 在鸢尾花数据上做测试。其函数原型如下:

clf = MLPClassifier(solver=’sgd’,activation=’relu’,alpha=1e-4,hidden_layer_sizes=(50,50),random_state=1,max_iter=10,verbose=10,learning_rate_init=.1)

参数说明:

hidden_layer_sizes:例如hidden_layer_sizes=(50, 50),表示有两层隐藏层,第一层隐藏层有50个神经元,第二层也有50个神经元。

Activation:{‘identity’, ‘logistic’, ‘tanh’, ‘relu’},默认‘relu’。

solver: {‘lbfgs’, ‘sgd’, ‘adam’}, 默认adam,用来优化权重。

alpha:float,可选的,默认0.0001,正则化项参数。

learning_rate:学习率,用于权重更新,只有当solver为’sgd’时使用,{‘constant’,’invscaling’, ‘adaptive’},默认constant。

random_state:int 或RandomState,可选,默认None,随机数生成器的状态或种子。

max_iter:int,可选,默认200,最大迭代次数。

verbose:bool, 可选,默认False,是否将过程打印到stdout。

测试代码如下:

from sklearn.neural_network import MLPClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

iris = load_iris()  # 导入数据集
X = iris['data']  # 获取自变量数据
y = iris['target']  # 获取因变量数据
X_train, X_test, y_train, y_test = \
    train_test_split(X, y, test_size=0.2)  # 分割训练集和测试集
clf = MLPClassifier(solver='adam', alpha=1e-5, \
                    hidden_layer_sizes=(3,3), random_state=1,max_iter=100000,) # 创建神经网络分类器对象
clf.fit(X, y) # 训练模型
clf.score(X_test,y_test) # 模型评分

结果如下:

score= 0.9666666666666667

5. 源码仓库地址

🌼 图像处理、机器学习的常用算法汇总文章来源地址https://www.toymoban.com/news/detail-508973.html

到了这里,关于人工神经网络ANN的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 神经网络ANN(MLP),CNN以及RNN区别和应用

    1. Artificial Neural Network(ANN) 又称为Multilayer Perception Model(MLP) 2. CNN AAA 3. RNN 22 先占坑,后期再整理 References [1] CNN vs.RNN vs.ANN——浅析深度学习中的三种神经网络 - 知乎 [2] https://www.youtube.com/watch?v=u7obuspdQu4 [3] 深度学习——CNN与ANN的区别_51CTO博客_cnn ann

    2024年02月13日
    浏览(31)
  • 乳腺癌CT影像数据的深度学习:R语言与ANN神经网络构建高性能分类诊断模型

    乳腺癌是全球最常见的女性恶性肿瘤之一,也影响着男性的健康。据统计,每年有数百万人被诊断出患有乳腺癌[1]。乳腺癌的早期检测和准确诊断对于治疗和预后至关重要。然而,乳腺癌的早期诊断面临许多挑战,如图像解读的主观性和复杂性,以及差异化的病理特征[2]。因

    2024年02月14日
    浏览(46)
  • 神经网络建模的建模步骤,人工神经网络建模过程

    人工神经网络有很多种,我只会最常用的BP神经网络。不同的网络有不同的结构和不同的学习算法。简单点说,人工神经网络就是一个函数。只是这个函数有别于一般的函数。它比普通的函数多了一个学习的过程。 在学习的过程中,它根据正确结果不停地校正自己的网络结构

    2024年02月06日
    浏览(54)
  • 人工神经网络的三个要素,神经网络三要素是指

    人工神经网络主要架构是由神经元、层和网络三个部分组成。整个人工神经网络包含一系列基本的神经元、通过权重相互连接。神经元是人工神经网络最基本的单元。 单元以层的方式组,每一层的每个神经元和前一层、后-层的神经元连接,共分为输入层、输出层和隐藏层,

    2024年02月10日
    浏览(43)
  • 简述神经网络的优点和缺点,人工神经网络优缺点

    最小二乘法:通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。 其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达

    2024年02月06日
    浏览(64)
  • 人工智能神经网络概念股,神经网络芯片概念股

    人工智能包含硬件智能、软件智能和其他。 硬件智能包括:汉王科技、康力电梯、慈星股份、东方网力、高新兴、紫光股份。 软件智能包括:金自天正、科大讯飞。 其他类包括:中科曙光、京山轻机。 谷歌人工智能写作项目:小发猫 1、苏州科达:苏州科达科技股份有限公

    2024年02月07日
    浏览(49)
  • 人工智能 -- 神经网络

    什么是人工智能?通俗来讲,就是让机器能像人一样思考。这个无需解释太多,因为通过各种科幻电影我们已经对人工智能很熟悉了。大家现在感兴趣的应该是——如何实现人工智能? 从1956年夏季首次提出“人工智能”这一术语开始,科学家们尝试了各种方法来实现它。这

    2024年02月05日
    浏览(53)
  • 人工智能-神经网络

    目录 1 神经元 2 MP模型 3 激活函数       3.1 激活函数       3.2 激活函数作用       3.3 激活函数有多种 4、神经网络模型 5、神经网络应用 6、存在的问题及解决方案 6.1 存在问题 6.2 解决方案-反向传播        神经元是主要由 树突、轴突、突出 组成, 树突 是从上面接收很

    2024年02月16日
    浏览(54)
  • 人工神经网络

    🍑 CV专栏 🍑 神经网络 即 模型 🍤 输入 四个参数 -- 结果 🍑 模型训练(学习) 例子 🍑 模型的 输入x 乘 权值ω 减去 阈值θ -- 激活函数 f 🍑 输出 yi (向下传递 或 直接输出) 🍑 多个神经单元 有机组合 🍤 输入层 -- 隐层 -- 输出层 ⭐ 调整 权值和阈值 使得模型准确 🍑 样本

    2023年04月24日
    浏览(38)
  • 人工智能:CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的知识梳理

    卷积神经网络(CNN),也被称为ConvNets或Convolutional Neural Networks,是一种深度学习神经网络架构,主要用于处理和分析具有网格状结构的数据,特别是图像和视频数据。CNN 在计算机视觉任务中表现出色,因为它们能够有效地捕获和识别图像中的特征,具有平移不变性(transla

    2024年02月05日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包