人工神经网络ANN中的前向传播和R语言分析学生成绩数据案例

简介: 人工神经网络ANN中的前向传播和R语言分析学生成绩数据案例

全文链接:http://tecdat.cn/?p=19936


在本教程中,您将学习如何在R中创建神经网络模型点击文末“阅读原文”获取完整代码数据

 

输入为 x1 和 x2。

 

两个权重乘以各自的权重 w1 和 w2。

然后将偏差添加到总和中,并将其称为 z1。

z1 = x1 * w1 + x2 * w2 +b1

 

然后应用sigmoid的公式。

隐藏层的输出将成为其右侧下一层的输入。这等于

sigmoid激活函数的公式和图形

隐藏层的第二个节点也以这种方式运行。

 

x1 和 x2 输入对于 H1 和 H2 将具有相同的值。但是,H1和H2的权重可能不同,也可能相同。而且,偏差也可以不同,即b1和b2可以不同。

乘以各自的权重w3 和w4。然后将偏差添加到总和中,并将其称为z2。

然后应用sigmoid的公式。此层的输出将是

 

然后,我们转到下一层。

(输出来自 H1。我们称之为 z1。输出来自 H2,我们称之为 z2。它们进入O1。权重像以前一样乘以相应的输入。

 

并且,我们选择sigmoid激活函数。因此,O1 的输出为

 

 

 

这里,y1 = z1 * W5 + z2 * W6 + B1

同样,对于O2 的输出,我们再次考虑sigmoid激活函数。

我们将此过程称为前向传播,因为我们总是从左到右。我们从不倒退。

R语言分析学生成绩数据案例

神经网络(或人工神经网络)具有通过样本进行学习的能力。人工神经网络是一种受生物神经元系统启发的信息处理模型。它由大量高度互连的处理元件(称为神经元)组成,以解决问题。它遵循非线性路径,并在整个节点中并行处理信息。神经网络是一个复杂的自适应系统。自适应意味着它可以通过调整输入权重来更改其内部结构。


该神经网络旨在解决人类容易遇到的问题和机器难以解决的问题,例如识别猫和狗的图片,识别编号的图片。这些问题通常称为模式识别。它的应用范围从光学字符识别到目标检测。

本教程将涵盖以下主题:

  • 神经网络概论
  • 正向传播和反向传播
  • 激活函数
  • R中神经网络的实现
  • 案例
  • 利弊
  • 结论


神经网络概论

神经网络是受人脑启发执行特定任务的算法。是一组连接的输入/输出单元,其中每个连接都具有与之关联的权重。在学习阶段,网络通过调整权重进行学习,来预测给定输入的正确类别标签。

人脑由数十亿个处理信息的神经细胞组成。每个神经细胞都认为是一个简单的处理系统。被称为生物神经网络的神经元通过电信号传输信息。这种并行的交互系统使大脑能够思考和处理信息。一个神经元的树突接收来自另一个神经元的输入信号,并根据这些输入将输出响应到某个其他神经元的轴突。

树突接收来自其他神经元的信号。单元体将所有输入信号求和以生成输出。当总和达到阈值时通过轴突输出。突触是神经元相互作用的一个点。它将电化学信号传输到另一个神经元。

x1,x2 .... xn是输入变量。w1,w2 .... wn是各个输入的权重。b是偏差,将其与加权输入相加即可形成输入。偏差和权重都是神经元的可调整参数。使用一些学习规则来调整参数。神经元的输出范围可以从-inf到+ inf。神经元不知道边界。因此,我们需要神经元的输入和输出之间的映射机制。将输入映射到输出的这种机制称为激活函数。


前馈和反馈人工神经网络

人工神经网络主要有两种类型:前馈和反馈人工神经网络。前馈神经网络是非递归网络。该层中的神经元仅与下一层中的神经元相连,并且它们不形成循环。在前馈中,信号仅在一个方向上流向输出层。

反馈神经网络包含循环。通过在网络中引入环路,信号可以双向传播。反馈周期会导致网络行为根据其输入随时间变化。反馈神经网络也称为递归神经网络。

激活函数

激活函数定义神经元的输出。激活函数使神经网络具有非线性和可表达性。有许多激活函数:

  • 识别函数 通过激活函数 Identity,节点的输入等于输出。它完美拟合于潜在行为是线性(与线性回归相似)的任务。当存在非线性,单独使用该激活函数是不够的,但它依然可以在最终输出节点上作为激活函数用于回归任务。。
  • 在 二元阶梯函数(Binary Step Function)中,如果Y的值高于某个特定值(称为阈值),则输出为True(或已激活),如果小于阈值,则输出为false(或未激活)。这在分类器中非常有用。
  • S形函数 称为S形函数。逻辑和双曲正切函数是常用的S型函数。有两种:
  • Sigmoid函数 是一种逻辑函数,其中输出值为二进制或从0到1变化。
  • tanh函数 是一种逻辑函数,其输出值在-1到1之间变化。也称为双曲正切函数或tanh。
  • ReLU函数又称为修正线性单元(Rectified Linear Unit),是一种分段线性函数,其弥补了sigmoid函数以及tanh函数的梯度消失问题。它是最常用的激活函数。对于x的负值,它输出0。

在R中实现神经网络

创建训练数据集

我们创建数据集。在这里,您需要数据中的两种属性或列:特征和标签。在上面显示的表格中,您可以查看学生的专业知识,沟通技能得分和学生成绩。因此,前两列(专业知识得分和沟通技能得分)是特征,第三列(学生成绩)是二进制标签。

#创建训练数据集
# 在这里,把多个列或特征组合成一组数据

test=data.frame(专业知识,沟通技能得分)让我们构建神经网络分类器模型。

首先,导入神经网络库,并通过传递标签和特征的参数集,数据集,隐藏层中神经元的数量以及误差计算来创建神经网络分类器模型。

``````
# 拟合神经网络
nn(成绩~专业知识+沟通技能得分, hidden=3,act.fct = "logistic",
                linear.output = FALSE)

这里得到模型的因变量、自变量、损失_函数、_激活函数、权重、结果矩阵(包含达到的阈值,误差,AIC和BIC以及每次重复的权重的矩阵)等信息:

$model.list
$model.list$response
\[1\] "成绩"
$model.list$variables
\[1\] "专业知识"     "沟通技能得分"
$err.fct
function (x, y) 
{
    1/2 * (y - x)^2
}
$act.fct
function (x) 
{
    1/(1 + exp(-x))
}
$net.result
$net.result\[\[1\]\]
            \[,1\]
\[1,\] 0.980052980
\[2,\] 0.001292503
\[3,\] 0.032268860
\[4,\] 0.032437961
\[5,\] 0.963346989
\[6,\] 0.977629865
$weights
$weights\[\[1\]\]
$weights\[\[1\]\]\[\[1\]\]
           \[,1\]        \[,2\]       \[,3\]
\[1,\]  3.0583343  3.80801996 -0.9962571
\[2,\]  1.2436662 -0.05886708  1.7870905
\[3,\] -0.5240347 -0.03676600  1.8098647
$weights\[\[1\]\]\[\[2\]\]
           \[,1\]
\[1,\]   4.084756
\[2,\]  -3.807969
\[3,\] -11.531322
\[4,\]   3.691784
$generalized.weights
$generalized.weights\[\[1\]\]
            \[,1\]       \[,2\]
\[1,\]  0.15159066 0.09467744
\[2,\]  0.01719274 0.04320642
\[3,\]  0.15657354 0.09778953
\[4,\] -0.46017408 0.34621212
\[5,\]  0.03868753 0.02416267
\[6,\] -0.54248384 0.37453006
$startweights
$startweights\[\[1\]\]
$startweights\[\[1\]\]\[\[1\]\]
           \[,1\]        \[,2\]       \[,3\]
\[1,\]  0.1013318 -1.11757311 -0.9962571
\[2,\]  0.8583704 -0.15529112  1.7870905
\[3,\] -0.8789741  0.05536849  1.8098647
$startweights\[\[1\]\]\[\[2\]\]
           \[,1\]
\[1,\] -0.1283200
\[2,\] -1.0932526
\[3,\] -1.0077311
\[4,\] -0.5212917
$result.matrix
                                  \[,1\]
error                      0.002168460
reached.threshold          0.007872764
steps                    145.000000000
Intercept.to.1layhid1      3.058334288
专业知识.to.1layhid1       1.243666180
沟通技能得分.to.1layhid1  -0.524034687
Intercept.to.1layhid2      3.808019964
专业知识.to.1layhid2      -0.058867076
沟通技能得分.to.1layhid2  -0.036766001
Intercept.to.1layhid3     -0.996257068
专业知识.to.1layhid3       1.787090472
沟通技能得分.to.1layhid3   1.809864672
Intercept.to.成绩          4.084755522
1layhid1.to.成绩          -3.807969087
1layhid2.to.成绩         -11.531321534
1layhid3.to.成绩           3.691783805

绘制神经网络

让我们绘制您的神经网络模型。

# 绘图神经网络

plot(nn)

相关文章
|
1月前
|
机器学习/深度学习 数据采集 存储
时间序列预测新突破:深入解析循环神经网络(RNN)在金融数据分析中的应用
【10月更文挑战第7天】时间序列预测是数据科学领域的一个重要课题,特别是在金融行业中。准确的时间序列预测能够帮助投资者做出更明智的决策,比如股票价格预测、汇率变动预测等。近年来,随着深度学习技术的发展,尤其是循环神经网络(Recurrent Neural Networks, RNNs)及其变体如长短期记忆网络(LSTM)和门控循环单元(GRU),在处理时间序列数据方面展现出了巨大的潜力。本文将探讨RNN的基本概念,并通过具体的代码示例展示如何使用这些模型来进行金融数据分析。
216 2
|
2月前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
21天前
|
数据挖掘 C语言 C++
R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。
【10月更文挑战第21天】时间序列分析是一种重要的数据分析方法,广泛应用于经济学、金融学、气象学、生态学等领域。R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。本文将介绍使用R语言进行时间序列分析的基本概念、方法和实例,帮助读者掌握R语言在时间序列分析中的应用。
40 3
|
2月前
R语言基于表格文件的数据绘制具有多个系列的柱状图与直方图
【9月更文挑战第9天】在R语言中,利用`ggplot2`包可绘制多系列柱状图与直方图。首先读取数据文件`data.csv`,加载`ggplot2`包后,使用`ggplot`函数指定轴与填充颜色,并通过`geom_bar`或`geom_histogram`绘图。参数如`stat`, `position`, `alpha`等可根据需要调整,实现不同系列的图表展示。
|
2月前
|
数据采集 数据可视化 数据挖掘
R语言在金融数据分析中的深度应用:探索数据背后的市场智慧
【9月更文挑战第1天】R语言在金融数据分析中展现出了强大的功能和广泛的应用前景。通过丰富的数据处理函数、强大的统计分析功能和优秀的可视化效果,R语言能够帮助金融机构深入挖掘数据价值,洞察市场动态。未来,随着金融数据的不断积累和技术的不断进步,R语言在金融数据分析中的应用将更加广泛和深入。
WK
|
2月前
|
机器学习/深度学习 自然语言处理 算法
PSO算法和人工神经网络有什么不同
PSO算法(粒子群优化)与人工神经网络(ANN)在原理、应用及优化方式上差异显著。PSO模拟鸟群行为,通过粒子协作在解空间中搜索最优解;而ANN模仿大脑神经元结构,通过训练学习输入输出映射,适用于模式识别、图像处理等领域。PSO主要用于优化问题,实时性高,结果直观;ANN则在处理复杂非线性关系方面更强大,但结构复杂,训练耗时长,结果解释性较差。实际应用中需根据需求选择合适技术。
WK
24 0
|
3天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第39天】在数字化时代,网络安全和信息安全成为了我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,帮助读者更好地了解网络安全的重要性,并提供一些实用的技巧和方法来保护自己的信息安全。
14 2
|
4天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第38天】本文将探讨网络安全与信息安全的重要性,包括网络安全漏洞、加密技术和安全意识等方面。我们将通过代码示例和实际操作来展示如何保护网络和信息安全。无论你是个人用户还是企业,都需要了解这些知识以保护自己的网络安全和信息安全。
|
3天前
|
存储 安全 网络安全
云计算与网络安全:探索云服务中的信息安全策略
【10月更文挑战第39天】随着云计算的飞速发展,越来越多的企业和个人将数据和服务迁移到云端。然而,随之而来的网络安全问题也日益突出。本文将从云计算的基本概念出发,深入探讨在云服务中如何实施有效的网络安全和信息安全措施。我们将分析云服务模型(IaaS, PaaS, SaaS)的安全特性,并讨论如何在这些平台上部署安全策略。文章还将涉及最新的网络安全技术和实践,旨在为读者提供一套全面的云计算安全解决方案。
|
3天前
|
存储 安全 网络安全
网络安全与信息安全:漏洞、加密技术与安全意识的交织
【10月更文挑战第39天】在数字化时代,网络安全与信息安全成为保护个人隐私和组织资产的重要屏障。本文将探讨网络安全中的常见漏洞、加密技术的应用以及提升安全意识的重要性。通过具体案例分析,我们将深入了解网络攻击的手段和防御策略,同时提供实用建议,以增强读者对网络安全的认识和防护能力。