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

【神经网络】从逻辑回归到神经网络

  • 对逻辑回归进行组合:顾客选购苹果预测
  • 神经网络在层层转换过程中,究竟在试图实现什么?

对逻辑回归进行组合:顾客选购苹果预测

RethinkFun 深度学习

针对一个苹果,收集了以下特征,利用这些特征,希望预测用户购买并品尝这个苹果后是否满意。

在这里插入图片描述
另外,通过对大量顾客的跟踪访问,得到了测试样本的标签数据。

在这里插入图片描述
可以直接利用特征,通过逻辑回归模型来建模预测用户是否对一个苹果满意。但是有经验的销售人员告诉我们,顾客对苹果的满意是取决于以下三个因素:外观、口感、实惠。

于是,又额外再采集受访用户对一个苹果在上边三个因素上的评价。并 构造三个逻辑回归模型 来判断一个苹果在这三个因素上是否优秀。

外观 决定外观的因素有:果径,果高,果斑,包装。利用这四个特征训练一个逻辑回归模型,输出为 Sigmoid 的输出,取值范围为 0-1,代表外观是否美观。

口感 决定口感的因素有:甜度,酸度,水分,产地。利用这四个特征训练一个逻辑回归模型。

实惠 决定是否实惠的因素有:产地,重量,包装,售价。利用这四个特征训练一个逻辑回归模型。

最终,根据外观,口感,实惠的三个逻辑回归的输出值,再构建一个逻辑回归模型,判断用户是否对这个苹果满意。最终的系统由以下 4 个逻辑回归模型构成。

在这里插入图片描述

上边的顾客是否满意一个苹果的模型里,通过先验知识,抽象出来 3 个更高级的特征,那就是外观,口感和实惠。

对于这 3 个高级特征,

  • 首先把它们作为要预测的目标,收集用户对这三个特性的评价 label
  • 然后 选择原始 feature,对这三个高级特征进行建模预测
  • 最后 利用这三个高级特征来预测最终目标,是否满意。

这样做有三个问题:

  1. 需要先验知识来构造高级特征,并且对于高级特征需要 人工筛选原始特征,这严重依赖于个人经验。
  2. 需要 额外采集高级特征的 Label 进行训练,增加了数据采集的工作量。
  3. 必须 先训练前三个抽象高级特征的模型,然后才能训练最后一个判断用户是否满意的模型

对于上边的问题,可以做出如下的改进:

  1. 不人为抽象高级特征,让模型在训练过程中自己抽象高级特征
  2. 将所有的原始特征接入到每个提取高级特征的逻辑回归模型,让模型学习使用哪些特征,模型可以通过训练将不重要的特征权重调整为0。
  3. 训练时,给模型只提供原始的特征,和最终顾客是否满意的 label。虽然整个系统由多个逻辑回归构成,但 训练时当做一个完整的模型

在这里插入图片描述

经过上边的改进,就构造出了一个 神经网络,它可以看做是由 多个逻辑回归模型 经过 组合 构成的

像上图中,只是设计了模型的架构,让模型在学习过程中,抽象出 3 个高级特征,具体这 3 个高级特征是什么?根据什么原始特征抽象?都是 让模型自己去学习

然后根据抽象出的 3 个高级特征最后预测出顾客是否满意。提供的只有原始特征和最终顾客是否满意的 label 值,中间模型如何抽取高级特征对我们来说是黑盒。

神经网络在层层转换过程中,究竟在试图实现什么?

A Unique Perspective on What Hidden Layers and Activation Functions Do

在这里插入图片描述
在神经网络中,数据在每个隐藏层都会经历一系列转换。更具体地说,这涉及到每一层的以下操作:

在这里插入图片描述

  • 对来自前一层的数据进行 线性变换
  • 随后使用 激活函数(如 ReLU、Sigmoid、Tanh 等)引入非线性

上述变换在神经网络的每个隐藏层中都会执行。

假设刚刚在神经网络的 最末隐藏层 上应用了上述数据变换,那么激活值会向网络的输出层推进,进行 最后一次变换,而这完全是线性的

在这里插入图片描述

上述变换完全是线性的,因为所有非线性来源(激活函数)都存在于最末隐藏层及其之前

而在前向传播过程中,一旦数据离开最末隐藏层,就不再有进一步的非线性空间。

在这里插入图片描述

因此,为了做出准确的预测,输出层从最后一个隐藏层接收到的数据必须是线性可分的

总结一下,在将数据通过所有隐藏层进行转换,并且在即将到达输出层之前,神经网络不断努力将数据投影到一个使其某种程度上线性可分的空间

如果实现了这一点,输出层就相当于一个逻辑回归模型,能够 轻松处理这些线性可分的数据

事实上,也可以通过实验验证这一点。

为了可视化输入的变换,可以在输出层之前添加一个仅有两个神经元的虚拟隐藏层,然后再次训练神经网络。

在这里插入图片描述

这样,可以轻松地可视化变换。

我们预期,如果绘制这个二维虚拟隐藏层的激活,它们必须是线性可分的。下图准确地描绘了这一点。

在这里插入图片描述

正如上面注意到的,虽然 输入数据是线性不可分的,但 输出层接收到的输入确实是线性可分的。这些转换后的数据可以被输出分类层轻松处理。

这表明 神经网络所要做的全部就是 在到达输出层之前,将数据转换为线性可分的形式

http://www.dtcms.com/a/461189.html

相关文章:

  • 工厂抽烟检测系统 智能化安全管控新方案 加油站吸烟检测技术 吸烟行为智能监测
  • 做外贸怎么看外国网站wordpress配置邮件发送
  • 使用Python对PDF进行拆分与合并
  • 嵌入式软件/硬件工程师面试答案
  • 6.DSP学习记录之定时器
  • 阳春新农村建设网站中铁建设集团有限公司西北分公司
  • 简化OffSec考试报告编写:OSCP-Exam-Report-Template-Markdown项目详解
  • 北京网站设计制作过程数据服务网站开发
  • Go基础:一文掌握Go语言网络编程
  • TENGJUN-3.5MM耳机插座(JA06-BPF032-A):反向沉板结构下的4极音频连接解决方案
  • 使用IOT-Tree接入各种设备转OPC UA Server输出
  • 【大模型实战篇】从Python函数到MCP服务器:完整转换示例
  • 怎样增加网站的权重小企业做网站有用吗
  • 【ArkTS-通用事件】
  • 为什么要放弃用Docker?
  • 东方仙盟修仙(五)赛博科技修仙养老是一种爱好
  • 大模型训练过程中主动学习和课程学习的全面对比
  • Redis数据库隔离业务缓存对查询性能的影响分析
  • Mapper接口的解析
  • 网站中链接怎么做的广东网站建设案例
  • 网站开发部门结构公司做网站的费用属于什么费用
  • 做电影方面的网站怎么做外贸免费平台
  • transformers音频实战02-基于 Speech Commands 数据集的语音识别实战项目全流程
  • 天津做网站美工锦州网站建设信息
  • Terraform + RustFS 实战:10分钟实现对象存储 IaC 化,运维效率提升300%
  • 遇到RabbitMQ 的 `channel_max` 限制报错
  • 机器学习实战项目:Python+Flask 汽车销量分析可视化系统(requests爬车主之家+可视化 源码+文档)✅
  • 惠州城乡建设部网站印刷包装公司网站模板
  • WEB前端 JavaScript 学习笔记
  • 如何使用Python实现LRU缓存