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

线性模型到神经网络

在这里插入图片描述

🚀 在初始神经网络那一节(链接如下:初始神经网络)的最后,我们通过加大考虑的天数使得我们最后得到的模型Loss最终停留在了0.32k,当我们在想让模型更加准确的时候,是做不到的,因为我们使用的是线性模型(liner model);接下去我们一起探索将如何进一步优化。

1)线性模型也许太过于简单

由于使用的函数都是线性的,所以我们不管怎么调节b和w,最后得到的都仅仅只是不同的线性模型,显然线性模型是不能满足要求的,因为通过2017-2020年数据可知,有些天数的观看人数并不是呈现一个简单的比例关系变化,所以线性模型也许太过于简单了。
在这里插入图片描述

模型过于简单从而导致准确率提不上来,这被称之为model bias ,所以需要一些跟加灵活的函数。就如下图所示的红色线所示,其变化趋势有的天数可能成正比,有的天数可能成反比,那我们该如何得到这种红色的函数呢?
在这里插入图片描述

其实,可以将红色的函数看成是constant + sum of blue curve,该如何理解怎么加的呢,如下图所示

在这里插入图片描述

  • 0号线也就是constant
  • 1号线拟合第一段
  • 2号线拟合第二段
  • 3号线拟合第三段

所以可以通过一系列的蓝色线相加来得到最后结果,即最后的红色curve,那又如何得到这些不同的蓝色线呢?这个问题后面讲到。 所以说按道理来说,对于任何一条线(piecewise liner curve)。我们都可以通过一系列的蓝色线条(blue curve)组合来得到,可是也许有人会说,那对于完全曲线类型的函数我们又该如何拟合呢?

只需要在这些曲线( beyond piecewise liner curve )上取点,通过两点的连线,也可以很好的拟合出来曲线。
在这里插入图片描述

2)如何去得到各种各样的蓝色线条

在这里插入图片描述
对于上图的蓝色函数我们都可以通过下面的函数(sigomid函数)来进行拟合得到,只要改变不同的b和w的只值,我们就可以得到不同的蓝色函数线条。
在这里插入图片描述

具体看下不同的b和w如何影响蓝色线的形状:

  • 不同的w,可以看出来改变的是其线条的坡度
  • 不同的b,是将线进行的平移
  • 不同的c,是改变了线条的范围大小

在这里插入图片描述
所以各种各样的蓝色线可以通过sigmoid函数拟合得到,而只需要将函数写成多个蓝色函数和的形式就可以得到一个比较灵活的函数,而不会像liner model一样看上去那么的不可靠。
在这里插入图片描述
在之前我们是使用前一天的直接预测下一天的线性模型进行预测,由于存在model bias ,所以现在改用跟加灵活的函数;

  • 其中 x 1 x_1 x1是输入的特征,也就是前一天的观看量
  • 其中 b i b_i bi c i c_i ci w i w_i wi都是未知参数,是改变sigmoid函数的参数
  • 其中将isigmoid函数变换后的函数相加,因为我们也具体不知道对于拟合一个函数,需要几个蓝色函数相加合适
  • 其中 b b b也是未知参数,用于调节整体的误差。

在这里插入图片描述

在这里我们再次将考虑前一天的变成考虑前三天的观看量,最开始使用线性模型是: y = b + ∑ j w j x j y=b+\sum\limits_{j}w_jx_j y=b+jwjxj,现在为了让这个线性模型变得更加灵活,将其加到sigmoid函数中去,就可以让最后拟合的结果变得十分灵活。
在这里插入图片描述

也许这样看这这个式子很抽象,我们可以一步一步来看看他是如何进行的,在进行之前我们还是需要重新回忆一下这个式子中的参数都是什么

  • x j x_j xj是输入的特征,表示有j个特征被输入,也就是有前j天的观看数据被输入
  • w i j w_{ij} wij为什是ij呢,其中i表示第i种蓝色曲线,即 w i j w_{ij} wij表示在第i种蓝色曲线下其这j种特征分别对应的权重值。
  • b i b_i bi w i j w_{ij} wij都是未知参数,其真实目的是调节sigmoid函数的形状
  • b b b是整体函数的偏移量

在这里插入图片描述
对于三个特征的输入,首先来计算第一条被拟合的蓝色curve ,因该是先写出其线性表达式,将其放入sigmoid函数中,其就会具有灵活性而拟合出来所需要的蓝色曲线,先来写出其线性函数,即如下: r 1 = b 1 + w 1 1 x 1 + w 1 2 x 2 + w 1 3 x 3 r_1=b_1+w_11x_1+w_12x_2+w_13x_3 r1=b1+w11x1+w12x2+w13x3再将这个这个线性函数放入sigmoid函数得到第一个蓝色curve1,同样依次可以得到蓝色curve2,蓝色curve3
在这里插入图片描述
也就是上图所说的 a 1 a 2 a 3 a_ 1a_2a_3 a1a2a3在分别乘上 c 1 c 2 c 3 c_ 1c_2c_3 c1c2c3在将这三条蓝色curve相加再加上 b b b就得到了最后的 y y y

其实上面的函数可以通过矩阵的方式如下表示出来 r = b + w x r=b+wx r=b+wx
在这里插入图片描述
再将r放入sigmoid函数,也就得到了使用矩阵表示的函数,如下所示。
在这里插入图片描述

同样的,我们现在仅仅是将函数的表达式给写了写了出来,函数中的未知参数同样需要求解出来。

3)求解参数

求解参数这里依然采用梯度下降的方法,为了求偏导和表示方便,统一将参数写成一个矩阵 θ \theta θ
在这里插入图片描述
其梯度下降求解的过程一样,建立Loss函数,对其分别求偏导,梯度下降,就如下图所示,直到得到最优解。
在这里插入图片描述

4)batch和epoch

我们在计算Loss的时候,我们是尝试将所有已知的训练数据算一个损失,然后根据这个损失函数求偏导计算偏导值,然后根据偏导值,决定未知参数的更新方向;当开始使用batchepoch的时候,不再计算整个训练数据集的损失,接着往下看他是怎么进行的。

对于一个完整的数据集,将其随机分成几个等大小的数据集简称一个batch,再计算Loss的时候,就只将一个batch中的损失求和,求偏导,更新参数;进行第二次参数更新的时候,就选择下一个batch,进行更新参数。每次使用一个batch更新一次参数称为一个updata。当看完所有batch的时候,称之为一个epoch。
在这里插入图片描述

5)神经网络和深度学习

在上面我们学习的过程中,其实我们已经创造了一个神经网络,其实1943年,心理学家Warren McCulloch和数理逻辑学家Walter Pitts在合作的《A logical calculus of the ideas immanent in nervous activity》论文中就给出了人工神经网络的概念及人工神经元的数学模型,从而开创了人工神经网络研究的时代。1949年,心理学家唐纳德·赫布在《The Organization of Behavior》论文中描述了神经元学习法则。所以神经网络并不是什么新鲜的事情,在1969年,人工智能之父 Minsky(和Seymour Papert)在《感知器》(Perceptrons)一书里给感知器判了“死刑”,这是一本非常严谨的专著,影响力很大。都得到一个简单的结论:神经网络都是骗人的。

在这里插入图片描述

神经网络网络这个名词在那个年代就好像一个臭明昭著的名词,谁也不感冒,所以为了发展它,取了另外一个名字,叫做深度学习(deep learing),即如下图所示,在结果输出的时候,在放一层神经元,使其深度变大。
在这里插入图片描述
在之后,我们的网络深度越来越深,其效果也是越来越好,如下图所示
在这里插入图片描述
所以我们也将我们的网络叠的深一点来看其表现,显然在网络在叠到三层的时候,表现非常好了,但是当网络叠到第四层的时候,其在训练集上的损失是0.1k,而在没有看过的数据上确表现的很差,这是由于层数太多导致了overfitting

在这里插入图片描述

随着网络深度的增加,会使得最后得到的结果更加准确,结果更加准确是函数拟合的更加贴切,深度增肌无非就是sigmoid的增加,那为什么非得在深度上拓展使之变得更深,而不是在宽度上拓展使其变的更宽呢?

相关文章:

线性模型到神经网络

🚀 在初始神经网络那一节(链接如下:初始神经网络)的最后,我们通过加大考虑的天数使得我们最后得到的模型Loss最终停留在了0.32k,当我们在想让模型更加准确的时候,是做不到的,因为我们…...

【架构】前台、中台、后台

文章目录 前台、中台、后台1. 前台(Frontend)特点:技术栈: 2. 中台(Middleware)特点:技术栈: 3. 后台(Backend)特点:技术栈: 示例场景…...

Stable Diffusion 蒙版:填充、原图、潜空间噪声(潜变量噪声)、潜空间数值零(潜变量数值零)

在Stable Diffusion中,蒙版是一个重要工具,它允许用户对图像的特定部分进行编辑或重绘。关于蒙版蒙住的内容处理选项,包括填充、原图、潜空间噪声(潜变量噪声)、浅空间数值零(潜变量数值零)&…...

ffmpeg录制视频功能

本文目录 1.环境配置2.ffmpeg编解码的主要逻辑:3. 捕获屏幕帧与写入输出文件4. 释放资源 在录制结束时,释放所有分配的资源。5.自定义I/O上下文6.对于ACC编码器注意事项 1.环境配置 下载并安装FFmpeg库 在Windows上 从FFmpeg官方网站下载预编译的FFmpeg…...

【LeetCode】每日一题 2024_10_1 最低票价(记忆化搜索/DP)

前言 每天和你一起刷 LeetCode 每日一题~ 大家国庆节快乐呀~ LeetCode 启动! 题目:最低票价 代码与解题思路 今天这道题是经典动态规划,我们定义 dfs(i) 表示从第 1 天到 第 i 天的最小花费,然后使用祖传的:从记忆…...

[C++] 小游戏 征伐 SLG DNF 0.0.1 版本 zty出品

目录 先赞后看 养成习惯 War and Expedition SLG DNF 0.0.1 version 讲人话就是 图标解释: 绿色代表空地,可通过,对应数值 0 蓝色“~ ”为水,不可通过,对应数值 1 棕色“”为桥梁,可通过&#xff0…...

黑马头条day7-app端文章搜索

今天的内容也只是跑了一下 对于具体的实现掌握的很差 仔细看 es 在微服务学的es使用基本忘光了 这里用起来一点都熟悉 重学!!! kafka异步 文章自动构建索引的时候用到了‘’ mongoDB 用来存储用户的搜索记录 遗忘(拦截器 j…...

嵌入式必懂微控制器选型:STM32、ESP32、AVR与PIC的比较分析

目录 1 微控制器基础概述 1.1 微控制器基本概念 1.2 工作原理及架构 1.3 STM32、ESP32、AVR和PIC简介 2 微控制器性能比较分析 2.1 性能比较 2.2 功耗比较 2.3 功耗分析 2.4 外设接口对比 3 应用场景与选择策略 3.1 物联网应用场景 3.2 工业控制场景 3.3 智能家居场…...

Python selenium库学习使用实操二

系列文章目录 Python selenium库学习使用实操 文章目录 系列文章目录前言一、模拟登录二、表单录入 前言 在上一篇文章中,我们完成Selenium环境的搭建,和简单的自动化。今天继续深入学习。今天的目标是完成模拟登录,和表单录入。 一、模拟登…...

基于Hive和Hadoop的电信流量分析系统

本项目是一个基于大数据技术的电信流量分析系统,旨在为用户提供全面的通信数据和深入的流量使用分析。系统采用 Hadoop 平台进行大规模数据存储和处理,利用 MapReduce 进行数据分析和处理,通过 Sqoop 实现数据的导入导出,以 Spark…...

访问docker容器中服务的接口,报错提示net::ERR_CONNECTION_REFUSED

背景 使用httpclient和前端调用docker容器中部署的springboot服务接口,一直连接不上。 报错信息 AxiosError {message: Network Error, name: AxiosError, code: ERR_NETWORK, config: {…}, request: XMLHttpRequest, …} sys.ts:28 POST http://172.33.28.179:8181/sy…...

【mysql相关总结】

mysql相关总结 数据库小的表,全表扫描效率更高,不用建索引。 索引的类型 1.普通索引:基本的索引,没有任何约束限制 2.唯一索引:类似普通索引,有唯一约束性 3.主键索引:特殊的唯一索引,不允许有空值 4.组合索引&#xf…...

uniapp 微信小程序 微信支付

本章的内容我尽量描述的细致一些,哪里看不懂给我评论就可以,我看到进行回复 微信支付大致分为4步,具体看后端设计 1. 获取code 2. 根据code获取openid 3. 根据openid,以及部分订单相关数据,生成prepayId (预支付交易会…...

CSS 效果:实现动态展示双箭头

最近写了一段 CSS 样式,虽然不难,但实现过程比较繁琐。这个效果结合了两个箭头,一个突出,一个内缩,非常适合用于步骤导航或选项卡切换等场景。样式不仅仅是静态的,还可以通过点击 click 或者 hover 事件&am…...

Linux 创建开发用的账户

在Linux系统中,创建一个用于开发的用户账户通常涉及到添加用户、设置密码以及配置适当的权限和环境。这里将详细介绍如何在Linux系统中创建一个新的开发用户账户,包括为其配置sudo权限,使其能够执行需要管理员权限的命令。 步骤 1: 创建用户…...

检查一个CentOS服务器的配置的常用命令

在CentOS系统中,查看服务器配置的常用命令非常丰富,这些命令可以帮助用户快速了解服务器的硬件信息、系统状态以及网络配置等。以下是一些常用的命令及其简要说明: 1. 查看CPU信息 (1) cat /proc/cpuinfo:显示CPU的详细信息&…...

Redis 简单的消息队列

使用redis 进行简单的队列很容易,不需要使用较为复杂的MQ队列,直接使用redis 进行,不过唯一不足的需要自己构造生产者消费者,这里使用while True的方法进行消费者操作 目录 介绍数据类型StringHash 重要命令消息队列 介绍 key-v…...

C++:继承和多态,自定义封装栈,队列

1.栈: stack.cpp #include "stack.h"Stack::Stack():top(nullptr),len(0){} //析构函数 Stack::~Stack() {while(!empty()){pop();} }bool Stack::empty() //判断栈是否为空 {return topnullptr; }int Stack::size()//获取栈的大小 {return len; } //压…...

Python多个set中的交集

Python多个set中的交集 在 Python 中,集合(set)是一种非常有用的数据结构,它可以存储唯一的元素,并提供了高效的数学集合操作,包括求交集、并集和差集等。本文将重点介绍如何通过多重集合求交集&#xff0…...

百度百科 X-Bk-Token 算法还原

声明 本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请私信我立即删除! 文章目录 声明案例地址参数分析X-Bk-Token算法追踪X-Bk-Token后缀算法还原c 值跟踪与算法还原往期逆向文章推荐最近太忙了,博客摆烂了好…...

idea大量爆红问题解决

问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层&#xf…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...

Python如何给视频添加音频和字幕

在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...

ios苹果系统,js 滑动屏幕、锚定无效

现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率&#xff0c…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...