热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

用tensorflow2神经网络拟合二维函数曲面4/(3*x)+1/y

我们采用神经网络拟合43x11x2我们采用神经网络拟合\space\space\frac4{3x_1}\frac1{x_2}我们采用神经网络拟合3x1​4​x2​1​实验记录&#x

我们采用神经网络拟合43x1+1x2我们采用神经网络拟合\space\space\frac4{3x_1}+\frac1{x_2}   3x14+x21
实验记录:
无论改变网络层数,还是改变网络的激活函数,当随机取点的范围由0.1-0.5变为0.001到0.5时,误差总会迅速增大,直到0-0.5时彻底跑飞。
原因很明显,函数在x1,x2趋近0时值会变成无穷大,那么怎么解决这一问题呢?
答案非常简单,替换损失函数——由mse换为msle.
整体的代码可以参考我的github项目。
在进一步的实验又发现了许多有趣的现象,记录如下:
1.使用shuffle之后,训练效果变差,卡在8.多左右;
2.将第二个隐藏层的参数由2xsize变为3xsize之后,效果也变差了,也是误差下不去;
以上两点都是在换成msle后出现的问题。
此外,msle在拟合平面上效果也不错。(val集误差仅10-3量级)
至于优化算法:至少在目前这两个网络结构上,sgd和adam的表现差不多:

(sgd)loss: 0.3602 - mean_squared_logarithmic_error: 0.3602 - val_loss: 0.5258 - val_mean_squared_logarithmic_error: 0.5258

(adam)loss: 0.3477 - mean_squared_logarithmic_error: 0.3477 - val_loss: 0.5307 - val_mean_squared_logarithmic_error: 0.5307

但是,当sgd+将第二个隐藏层的参数由2xsize变为3xsize时(以下简称为“宽”()(9),效果竟然变的相当好,这一下子网络变宽的性能竟然体现出来了(后来重新实验发现这种现象消失了!!!why?):

3125/3125 [==============================] - 1s 466us/step - loss: 0.2471 - mean_squared_logarithmic_error: 0.2471 - val_loss: 0.2247 - val_mean_squared_logarithmic_error: 0.2247

我尝试加深一层网络,使用sgd和adam却都让网络变得很糟糕,几乎没能拟合到什么东西(误差8.多下不去,直接预测成平面)
尝试新的loss函数logcosh:
我尝试了logcosh+sgd或adam在窄网络上,logcosh+sgd在宽网络上,结果都差不多:误差一开始从80左右能降到40但之后就不行了,观察图像,发现他其实也差不多是平的,但是好歹平移了一下:
在这里插入图片描述
总结:下一步工作设计一个多层for循环自动调参,使我看得更清楚。

为了解决当务之急,我缩小了训练区域,企图通过在小区域内密集训练实现更好的拟合效果,但是效果仍不很明显:

在这里插入图片描述
train0-0.3 test0-1 1331.

种群信息导出完毕。
评价次数:25000
时间已过 1.6455268859863281 秒
最优的目标函数值为:8.9836
最优的控制变量值为:
0.10010000000000001
0.4438835845159062

总会有一个差值。。。不知道怎么来的,真实解是0.24-0.24

shuffle=True+1331+adam(sgd根本下不去,这是强行下去了,直接压成两个平面,我服了这个网络的想法):
在这里插入图片描述拟合平面时不使用(或少使用)relu效果更好
;
有时候就是运气不好,优化算法没有奏效,loss下不去,拟合平面时用adam+msle尤为如此;改为sgd+mse似乎更好一些


推荐阅读
  • 资源推荐 | TensorFlow官方中文教程助力英语非母语者学习
    来源:机器之心。本文详细介绍了TensorFlow官方提供的中文版教程和指南,帮助开发者更好地理解和应用这一强大的开源机器学习平台。 ... [详细]
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
  • 本教程详细介绍了如何使用 TensorFlow 2.0 构建和训练多层感知机(MLP)网络,涵盖回归和分类任务。通过具体示例和代码实现,帮助初学者快速掌握 TensorFlow 的核心概念和操作。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 深入浅出TensorFlow数据读写机制
    本文详细介绍TensorFlow中的数据读写操作,包括TFRecord文件的创建与读取,以及数据集(dataset)的相关概念和使用方法。 ... [详细]
  • 基于2-channelnetwork的图片相似度判别一、相关理论本篇博文主要讲解2015年CVPR的一篇关于图像相似度计算的文章:《LearningtoCompar ... [详细]
  • 从零开始构建完整手机站:Vue CLI 3 实战指南(第一部分)
    本系列教程将引导您使用 Vue CLI 3 构建一个功能齐全的移动应用。我们将深入探讨项目中涉及的每一个知识点,并确保这些内容与实际工作中的需求紧密结合。 ... [详细]
  • 信用评分卡的Python实现与评估
    本文介绍如何使用Python构建和评估信用评分卡模型,涵盖数据预处理、模型训练及验证指标选择。附带详细代码示例和视频教程链接。 ... [详细]
  • 探索电路与系统的起源与发展
    本文回顾了电路与系统的发展历程,从电的早期发现到现代电子器件的应用。文章不仅涵盖了基础理论和关键发明,还探讨了这一学科对计算机、人工智能及物联网等领域的深远影响。 ... [详细]
  • 智能车间调度研究进展
    本文综述了基于强化学习的智能车间调度策略,探讨了车间调度问题在资源有限条件下的优化方法。通过数学规划、智能算法和强化学习等手段,解决了作业车间、流水车间和加工车间中的静态与动态调度挑战。重点讨论了不同场景下的求解方法及其应用前景。 ... [详细]
  • TWEN-ASR 语音识别入门:运行首个程序
    本文详细介绍了如何使用TWEN-ASR ONE开发板运行第一个语音识别程序,包括开发环境搭建、代码编写、下载和调试等步骤。 ... [详细]
  • 2017年人工智能领域的十大里程碑事件回顾
    随着2018年的临近,我们一同回顾过去一年中人工智能领域的重要进展。这一年,无论是政策层面的支持,还是技术上的突破,都显示了人工智能发展的迅猛势头。以下是精选的2017年人工智能领域最具影响力的事件。 ... [详细]
  • 本文档旨在帮助开发者回顾游戏开发中的人工智能技术,涵盖移动算法、群聚行为、路径规划、脚本AI、有限状态机、模糊逻辑、规则式AI、概率论与贝叶斯技术、神经网络及遗传算法等内容。 ... [详细]
  • 在上一篇文章中,我们初步探讨了神经网络的基础概念,并通过一个简单的例子——将摄氏度转换为华氏度——介绍了单个神经元的工作原理。本文将继续探索神经网络的应用,特别是如何构建一个基本的分类器。 ... [详细]
author-avatar
哥哥很霸道_277
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有