曲线长度预测神经网络设计与实现

在本文中,我们使用深度神经网络 (DNN) 解决几何中的一个基本问题:曲线长度的计算。

我们从监督学习方法的示例中学习了几何属性。 由于最简单的几何对象是曲线,因此我们重点学习平面曲线的长度。 为此,重建了基本长度公理并建立了ArcLengthNet。论文点击这里。

在这里插入图片描述

推荐:用 NSDT设计器 快速搭建可编程3D场景。

曲线长度的计算是许多现代和经典问题中最重要的组成部分之一。 例如,手写签名涉及沿曲线的长度的计算(Ooi 等人)。 当一个人处理现实生活中长度计算的挑战时,他面临着多种约束,例如加性噪声、离散化误差和部分信息。

在当前的工作中,我们解决了几何领域的一个基本问题,旨在使用 DNN 重建基本属性。 最简单的几何对象是曲线,评估曲线的简单度量是长度。 经典文献中有许多用于计算长度和其他几何性质的近似形式表达式(Kimmel,2003)。 然而,由于我们知道 DNN 的强大功能,因此我们非常有动力通过设计 DNN 来重建曲线的长度(弧长)属性。 为简单起见,我们关注二维欧几里得域。
在这里插入图片描述

1、一点几何知识

在我们深入研究机器学习公式之前,让我们简要回顾一下长度属性。 二维曲线 C 的欧几里得长度的一般方程由下式给出
在这里插入图片描述

长度的公理是可加性、不变性、单调性和非负性。 相对于串联的长度加法,相对于旋转和平移不变,它是单调的,并且根据定义,任何曲线的长度都是非负的。

为了找到连续曲线的长度,应该将其离散化。 离散化过程存在误差。 例如,让我们看一下蓝色曲线。 对该曲线进行粗略离散可以得到橙色离散曲线。 显然,将曲线分成许多无穷小的线可以最小化离散化误差。
在这里插入图片描述

在离散化误差中,我们可以发现加性噪声、部分信息以及由于长度方程中涉及的非线性和导数而出现的许多其他误差。

那么,我们如何将其制定为一项学习任务呢?

2、学习方法

我们通过监督学习方法解决了这个问题,该方法具有满足长度公理的独特损失函数。 训练后的模型称为 ArcLengthNet。 它使用 2D 向量作为输入,表示平面欧氏采样曲线,并输出它们各自的长度。 我们创建了一个包含 20,000 个采样的数据集,以完全支持 DNN 训练。 如此大量的示例旨在涵盖曲线变换并满足不同的模式。 我们数据中的一般曲线由下式给出
在这里插入图片描述

其中 R 是旋转矩阵,T 是平移向量,a 是幅度,phi 是相位。
在这里插入图片描述

我们设计了独特的损失函数:

在这里插入图片描述

其中 s1、s2 和 s3 是保持等式 L(s1) = L(s2) + L(s3) 的输入曲线,O 是 DNN 输出,k 是示例索引,lambda 是正则化参数,ij 是各种 DNN 权重。 通过模型传递示例来调整权重:

在这里插入图片描述

我们设计了一个简化的基于CNN的架构。 它包括一个卷积层和两个仅具有一个激活函数的全连接层。 每条曲线由 N = 200 个点表示。 该表示被插入到一个大小为 3 的小内核的卷积层中。它被处理成一个全连接层,通过修正线性单元 (ReLU) 激活函数仅输出 10 个权重到另一个全连接层,最后输出长度。

DNN 是通过使用反向传播方法小批量传递许多示例来进行训练的。 训练过程分批进行,每批 200 个样本,共 100 个 epoch。 我们使用的优化器是具有动量和权重衰减的随机梯度下降(SGD)。

在这里插入图片描述

在这里插入图片描述

该模型在 100 个 epoch 后就得到了良好的训练。 定义了一个保留集来测试架构在未见过的数据上的性能。 该集合包含 5,000 个尚未在训练集或测试集中使用的示例。 ArcLengthNet 获得的最小 MSE 为 0.17。 在此保留集上测试了 ArcLengthNet 的单调属性,其中在真实长度和 ArcLengthNet 之间建立了线性关系:
在这里插入图片描述

3、结束语

本文提出了一种基于学习的重建曲线长度的方法。 深度神经网络重建基本公理的能力得到了证明。 结果可以进一步用于改进手写签名并重建一些更多的微分几何性质和定理。


原文链接:基于CNN的曲线长度预测 — BimAnt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/6686.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Microsoft发布用于 AutoML 算法和训练的 NNI v1.3

将传统的机器学习方法应用于现实世界的问题可能非常耗时。自动化机器学习 (AutoML) 旨在改变这种状况——通过对原始数据运行系统流程并选择从数据中提取最相关信息的模型,使构建和使用 ML 模型变得更加容易。 为了帮助用户以高效和自动的方…

【雕爷学编程】Arduino动手做(170)---LGT8F328P 开发板

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&#x…

【C++ 程序设计】第 1~9 章:常见知识点汇总

目录 一、C 语言简介 二、面向对象的基本概念 三、类和对象进阶 四、运算符重载 五、类的继承与派生 六、多态与虚函数 七、输入/输出流 八、文件操作 九、函数模板与类模板 一、C 语言简介 知识点名称内容C语言的发展简史★★1. C 语言是 C 语言的前身 &…

PyTorch深度学习实战(6)——神经网络性能优化技术

PyTorch深度学习实战(6)——神经网络性能优化技术 0. 前言1. 数据准备1.1 数据集分析1.2 数据集加载 2. 使用 PyTorch 训练神经网络2.1 神经网络训练流程2.2 PyTorch 神经网络训练 3. 缩放数据集4. 修改优化器5. 构建深层神经网络小结系列链接 0. 前言 …

ChatGPT在智能监控和安防系统中的应用如何?

ChatGPT在智能监控和安防系统中有着广泛的应用潜力。智能监控和安防系统是利用人工智能和计算机视觉技术来实现对环境的实时监控和安全保障的系统。ChatGPT作为一种通用的预训练语言模型,可以在智能监控和安防系统中发挥以下作用: 1. **智能视频监控**&…

MYSQL数据库各种备份策略

数据库备份,数据库为school,素材如下 1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHA…

C#之事件

目录 一、发布者和订阅者 (一)概述 (二)有关事件的重要事项 (三)有关事件的私有委托需要了解的重要事项 二、源代码组件概览 三、声明事件 事件是成员 四、订阅事件 五、触发事件 六、标准事件的…

关于彩色相机的成像过程

关于彩色相机的成像过程 1、彩色相机程序流程2、Bayer滤镜阵列3、相关视频教程 1、彩色相机程序流程 彩色相机成像的原理基于人眼对色彩的感知以及光的三原色理论。下面是一般彩色相机实现彩色成像的主要原理: 感光元件:彩色相机通常使用像素化的感光元…

无涯教程-jQuery - empty( )方法函数

empty()方法删除所有匹配的子节点。 empty( ) - 语法 selector.empty( ) empty( ) - 示例 以下是一个简单的示例&#xff0c;简单说明了此方法的用法- <html><head><title>The jQuery Example</title><script type"text/javascript"…

【Zerotier】通过docker自建PLANET服务器

在如今全球互联的时代&#xff0c;我们对于互联网的依赖程度越来越高。然而&#xff0c;传统的网络连接方式在某些情况下可能会受到一些限制&#xff0c;例如局域网的范围限制、防火墙的阻断或者设备所处的多层NAT等。但是&#xff0c;现在有一个名为ZeroTier的工具出现了&…

【C语言进阶】文件操作

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;C语言 &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、什么是文件 1.1程序文件 1.2数据文件 1.3文件名 二、文件的打开和关闭 2…

银河麒麟服务器v10 sp1 nginx 部署项目

上一篇&#xff1a;银河麒麟服务器v10 sp1 nginx开机自动启动_csdn_aspnet的博客-CSDN博客 由于项目为前后端分离&#xff0c;前端项目使用nginx部署&#xff0c;VUE项目打包后上传至银河麒麟服务器&#xff1a; 8063 为前端项目文件目录&#xff0c;修改配置 &#xff0c;默认…

脑电信号处理与特征提取——三. 脑电实验设计的原理与实例(古若雷)

三、脑电实验设计的原理与实例 被试间设计的实验结果也有可能是人员不同造成的&#xff0c;所以建议被试内设计。

双端队列(deque)与优先队列(priority_queue)

文章目录 一.双端队列——deque1.deque的优点与缺点2.deque的原理 二.优先队列——priority_queue1.什么是优先队列&#xff1f;2.优先队列的基本使用3.什么是仿函数&#xff1f;4.优先队列的模拟实现 一.双端队列——deque 在上一章stack、queue的模拟实现中&#xff0c;我们…

C# LINQ和Lambda表达式对照

C# LINQ和Lambda表达式对照 1. 基本查询语句 Linq语法&#xff1a; var datafrom a in db.Areas select a ; Lamda语法&#xff1a; var datadb.Areas; sql语法&#xff1a; SELECT * FROM Areas2. 简单的WHERE语句 Linq语法&#xff1a; var datafrom a in db.orderI…

【Spring Boot Admin】客户端服务无法注册到监控平台的相关问题及解决方案

1、客户端服务整合了Spring Security 通过URL注册&#xff0c;需在客户端服务中添加如下配置 spring:# spring boot adminboot:admin:client:instance:metadata:user.name: ${spring.security.user.name}user.password: ${spring.security.user.password}通过注册中心注册&am…

Mysql 数据库开发及企业级应用

文章目录 1、Mysql 数据库开发及企业级应用1.1、为什么要使用数据库1.1.1、数据库概念&#xff08;Database&#xff09;1.1.2、为什么需要数据库 1.2、程序员为什么要学习数据库1.3、数据库的选择1.3.1、主流数据库简介1.3.2、使用 MySQL 的优势1.3.3、版本选择 1.4、Windows …

Redis 执行Lua脚本

Redis 执行lua 脚本 redis incr 命令当Key不存在时会默认设置key 并自增为1,如果需要在key不存在时重新初始化key 可以在应用程序中判断&#xff0c;也可以直接使用lua脚本 Redis 执行lua脚本命令 Script load 将脚本 script 添加到Redis服务器的脚本缓存中&#xff0c;并不…

介绍Tensorflow的基本概念和场景

TensorFlow是一种开源的机器学习框架&#xff0c;由Google开发&#xff0c;用于构建和训练人工神经网络。它使用图形表示来表示数学计算&#xff0c;其中节点表示操作&#xff0c;边表示数据流。以下是TensorFlow的基本概念&#xff1a; Tensor&#xff1a;TensorFlow的计算单位…

神经网络随记-参数矩阵、剪枝、模型压缩、大小匹配、、

神经网络的参数矩阵 在神经网络中&#xff0c;参数矩阵是模型学习的关键部分&#xff0c;它包含了神经网络的权重和偏置项。下面是神经网络中常见的参数矩阵&#xff1a; 权重矩阵&#xff08;Weight Matrix&#xff09;&#xff1a;权重矩阵用于线性变换操作&#xff0c;将输…