当前位置: 首页 > news >正文

AI学习记录 - 激活函数的作用

试验,通过在线性公式加入激活函数,可以拟合复杂的情况(使用react实现,原创)

结论:1、线性函数的叠加,无论叠加多少次,都是线性的

如下图
在这里插入图片描述

示例代码

线性代码,使用y=kx+b的方式,叠加10个函数

 const echartxianLine = useRef(null);useEffect(() => {// 基于准备好的dom,初始化echarts实例echartxianLine.current = echarts.init(document.getElementById('xianlian'));// echartNetwork.current = echarts.init(document.getElementById('network'));})useEffect(() => {const getLineData = (initx) => {// 定义10个函数的k和b值const coefficients = [{ k: 5, b: 0.5 },{ k: 0.8, b: 0.6 },{ k: 0.1, b: 0.4 },{ k: 5, b: 0.8 },{ k: 0.7, b: 0.2 },{ k: 0.9, b: 0.1 },{ k: 0.5, b: 0.2 },{ k: 3, b: 0.1 },{ k: 0.2, b: 0.5 },{ k: 1, b: 0.7 }];let x = initx;// 定义函数数组coefficients.map(coeff => {x = coeff.k * x + coeff.b});return x;}let objlist = []for (let i = 0; i <= 50; i++) {objlist.push({x: i,y: getLineData(i),})}setLine(objlist);const setxianEchartOptions = (objlist) => {// 绘制图表echartxianLine.current.setOption({xAxis: {type: 'category',data: objlist.map((item, index) => item.x),// data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']},yAxis: {type: 'value'},series: [{// data: [820, 932, 901, 934, 1290, 1330, 1320],data: objlist.map((item, index) => item.y),type: 'line',smooth: true}]});}setxianEchartOptions(objlist);}, []);

非线性代码
非线性代码,使用y=kx+b的方式,在函数中间加入非线性函数sin,cos,sigmoid ,tanh,x2 .

  const echartquine = useRef(null);useEffect(() => {// 基于准备好的dom,初始化echarts实例echartquine.current = echarts.init(document.getElementById('quxian'));// echartNetwork.current = echarts.init(document.getElementById('network'));})useEffect(() => {const getLineData = (initx) => {// 计算sin函数function sin(degrees) {return Math.sin(degrees);}function cos(degrees) {return Math.cos(degrees);}const sigmoid = (x) => {return 1 / (1 + Math.exp(-x));}const tanh = (x) => {return Math.tanh(x);}const x2 = (x) => {return x * x + 100}// 定义10个函数的k和b值const coefficients = [{ k: 5, b: 0.5, callbackLoss: sin },{ k: -0.8, b: 0.6, callbackLoss: sigmoid },{ k: 0.1, b: 0.4, callbackLoss: sigmoid },{ k: -5, b: 0.8, callbackLoss: tanh },{ k: 0.7, b: 0.2, callbackLoss: sigmoid },{ k: -0.9, b: 0.1, callbackLoss: x2 },{ k: 0.5, b: 0.2, callbackLoss: sin },{ k: 3, b: 0.1, callbackLoss: sigmoid },{ k: 0.2, b: 0.5, callbackLoss: x2 },{ k: 1, b: 0.7, callbackLoss: x2 }];let x = initx;let xmid = [];// 定义函数数组coefficients.map(coeff => {if (coeff.callbackLoss) {xmid.push(x);x = coeff.callbackLoss(coeff.k * x + coeff.b)} else {x = coeff.k * x + coeff.b}});return {xmid: xmid,x: x};}let objlist = []for (let i = 0; i <= 50; i++) {objlist.push({x: i,y: ((getLineData(i).x * 1000000000) % 1).toFixed(2) * 10,// y: getLineData(i).x,xmid: getLineData(i).xmid})}console.log("objlist", objlist)setLine(objlist);const setxianEchartOptions = (objlist) => {console.log("quixan", objlist)// 绘制图表echartquine.current.setOption({xAxis: {type: 'category',data: objlist.map((item, index) => item.x),// data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']},yAxis: {type: 'value'},series: [{// data: [820, 932, 901, 934, 1290, 1330, 1320],data: objlist.map((item, index) => item.y),type: 'line',smooth: true}]});}setxianEchartOptions(objlist);}, []);

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 用51单片机或者stm32能否开发机器人呢?
  • 探索 ESP32 单片机:开启智能创新之旅
  • poi库简单使用(java如何实现动态替换模板Word内容)
  • 大语言模型-GPT-Generative Pre-Training
  • 通过 EMR Serverless Spark 提交 PySpark 流任务
  • 基于FPGA的以太网设计(3)----详解各类xMII接口
  • vite环境下使用bootstrap
  • 软件测试---测试需求分析
  • 通过libx246 libfaac转换推送RTMP音视频直播流
  • 【BUG】已解决:ValueError: All arrays must be of the same length
  • Flutter - 安卓一次打包不同包名的apk
  • springMVC是如何做url映射到controller的?
  • HTML(六)——HTML表单和框架
  • 数据结构从入门到精通二 ~ 数组和链表
  • 一线大厂java面试题
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • go append函数以及写入
  • HashMap剖析之内部结构
  • JAVA多线程机制解析-volatilesynchronized
  • LeetCode29.两数相除 JavaScript
  • Windows Containers 大冒险: 容器网络
  • 飞驰在Mesos的涡轮引擎上
  • 微信小程序设置上一页数据
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 我与Jetbrains的这些年
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 译有关态射的一切
  • ## 基础知识
  • #vue3 实现前端下载excel文件模板功能
  • (1) caustics\
  • (el-Date-Picker)操作(不使用 ts):Element-plus 中 DatePicker 组件的使用及输出想要日期格式需求的解决过程
  • (八)Spring源码解析:Spring MVC
  • (第61天)多租户架构(CDB/PDB)
  • (四)stm32之通信协议
  • (算法)大数的进制转换
  • (学习日记)2024.01.09
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (一)项目实践-利用Appdesigner制作目标跟踪仿真软件
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • (自用)交互协议设计——protobuf序列化
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .NET 常见的偏门问题
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .NET程序集编辑器/调试器 dnSpy 使用介绍
  • .NET实现之(自动更新)
  • .NET中使用Protobuffer 实现序列化和反序列化
  • /usr/bin/env: node: No such file or directory
  • @EnableAsync和@Async开始异步任务支持
  • @select 怎么写存储过程_你知道select语句和update语句分别是怎么执行的吗?
  • @基于大模型的旅游路线推荐方案
  • [.NET]桃源网络硬盘 v7.4