机器学习作业 3-layer Forward Neural Networks(BP算法)在ex4Data数据集

ML课堂作业,第五个是三层前向网络,老数据集ex4Data,首先把作业要求贴上来,一共可以分为两个部分,分别是手写版和tensorflow版,因为三层前向网络已经不是线性模型,所以也无法绘制出分类线,通过计算准确性来评估模型。

数据集是老数据集了,需要下载的可以在图中或前面的文章找到链接。三层前向网络是一个非常基础的神经网络,可以看成是若干个感知机的复合,可以选择任意激活函数,这里为了求导方便选择sigmoid,激活函数的作用是引入非线性变化,使得网络可以拟合非线性函数,下面给出网络结构

输入层的xi表示样本的每一个特征,输出层的yi表示样本属于第i类的概率,因为三层前向网络已经不是线性模型,所以我们无法向前面的模型一样在样本图上画出分类线,所以我们用正确率来评估模型的性能,为了避免过拟合以及能够准确评估模型,我们使用五重交叉检验,并取测试集上正确率的平均值作为模型最后的正确率。

训练过程的几个关键如上图,数据集以矩阵对的形式,其中样本x共有d个特征,可分为L个类别,我们还可以看出这种全连接的网络参数数量非常之大,在深度学习中这种全连接层一般放在最后或者干脆不用,最优化方法采用梯度下降,则对每个参数都要求对应的梯度,由于前向网络事实上是一个线性函数和激活函数的多重复合,所以梯度求导将运用链式法测,对链式法则不熟悉的同学可以回顾一下高数课本。

简单介绍一下交叉验证,我们学习模型的最终目的是在未知的样本上获得更好的预测性能,而不是追求在训练集上的最好性能,虽然训练集能一定程度的反应未知样本的特性,但可能存在无法反映的或者只有训练集中才有的特性,被我们的学习模型学得,这样会降低模型的泛化能力,所以我们并不使用整个数据集都来训练,我们选取一部分数据来训练一部分不参加训练用作测试。

k折交叉验证法就是将整个数据集分为不相交的k个部分,然后选取其中的一个部分为测试集,其他部分为训练集,获得测试准确率,然后重复上述步骤,直到每个部分都充当过一次

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
"Track-Before-Detect with Neural Networks"是一种利用神经网络进行目标跟踪前检测的方法。在传统的跟踪算法中,通常先进行目标检测,然后再进行跟踪。然而,在某些场景下,目标可能非常小、模糊或者被部分遮挡,传统的目标检测方法往往无法准确地检测到目标,从而导致跟踪失败。 "Track-Before-Detect with Neural Networks"的核心思想是在跟踪之前先对目标进行检测。而与传统的目标检测方法不同的是,它使用神经网络来实现目标检测,而不是基于传统的图像处理技术。神经网络通常可以更好地处理图像的特征提取和模式识别任务。 这种方法首先使用神经网络对图像进行处理,提取其中的特征。然后,基于提取的特征,在图像中进行目标检测。如果检测到了目标,就可以在该帧中进行跟踪,随着目标在不同帧之间的位置变化,通过更新模型来实现目标的连续跟踪。 相对于传统方法,"Track-Before-Detect with Neural Networks"有以下优势:首先,神经网络可以自动学习图像中的特征,无需手动设计特征提取算法。其次,神经网络具有较强的泛化能力,可以适应不同目标的形状、尺寸和外观变化。此外,神经网络还可以通过训练进行优化,提高准确性和鲁棒性。因此,这种方法可以在复杂的环境中更准确地检测和跟踪目标。 总之,"Track-Before-Detect with Neural Networks"是一种利用神经网络实现目标跟踪和检测的方法,具有较好的准确性和鲁棒性,在实际应用中具有广泛的应用前景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值