Datawhale X 李宏毅苹果书 AI夏令营 - 跟李宏毅学深度学习(入门之线性模型)

本文主要是介绍Datawhale X 李宏毅苹果书 AI夏令营 - 跟李宏毅学深度学习(入门之线性模型),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、线性模型是什么?
  • 二、线性模型的特点
  • 三、简单举例理解
    • 3.1、预测未来某一天点击量
    • 3.2、分段线性曲线
  • 总结


一、线性模型是什么?

在深度学习中,线性模型是一种简单但基础且广泛应用的数学模型。它的基本形式是一个线性方程,如y = wx + b,其中y是预测输出,x是输入特征,w是权重参数,b是偏置项(也称为截距)。
线性模型假设输入与输出之间存在线性关系,即输出是输入的线性组合。

二、线性模型的特点

  • 简单性:线性模型形式简单,易于理解和实现。
  • 可解释性:线性模型的权重w可以解释为特征的重要性,权重越大表示该特征对预测结果的影响越大。
  • 应用广泛:线性模型不仅用于回归分析中预测连续的输出值,还广泛应用于分类问题中,通过设置适当的阈值将预测结果映射为离散的分类标签。

三、简单举例理解

随着网络日益发达,人们的生活越来越惬意。我们很多人现在都喜欢用手机刷,刷小说,刷短视频。。。对于我们普通人来讲,当乐子看,但是对于这些短剧的创作者来讲,更关注自己的作品的流量(展示量、浏览点、点击量、点赞量、分享量等等)。

3.1、预测未来某一天点击量

假设我们目前已经收集了某平台视频点击量2017-2020年每一天所有的数据点击数据
在这里插入图片描述

我们先以一个简单的线性模型来代表这些数据变化的趋势 y = wx + b
在这里插入图片描述根据不通的w得到不同的坐标线。
在研究中我们发现,数据呈现周期性,为每7天一个循环,每隔 7 天,就是一个循环。它只能够看前一天。 每隔 7 天它一个循环,如果一个模型参考前 7 天的数据,把 7 天前的数据,直接复制到拿来当作预测的结果,也许预测的会更准也说不定,所以我们就要修改一下模型。通常一个模型的修改,往往来自于对这个问题的理解,即领域知识。
在这里插入图片描述因前期使用的模型 y = wx + b 导致模型所预算的模型太过于简单,未得到有价值的信息。后续对于模型改造,发现所使用的模型都是把输入的特征 x 乘上一个权重,再加上一个偏置就得到预测的结果,这样的模型我们称之为线性模型(linear model)。

3.2、分段线性曲线

线性模型可能太过于简单,中间可能存在更复杂的关系,如
在这里插入图片描述我们需要把0+1+2+3,来得到红色的折线。
在这里插入图片描述红色的曲线可以看作是一个常数再加上一群 Hard Sigmoid 函数。Hard Sigmoid 函数的特性是当输入的值,当 x 轴的值小于某一个阈值(某个定值)的时候,大于另外一个定值阈值的时候,中间有一个斜坡。所以它是先水平的,再斜坡,再水平的。所以红色的线可以看作是一个常数项加一大堆的蓝色函数(Hard Sigmoid)。常数项设成红色的线跟 x 轴的交点一样大。

大量不同的蓝色函数,加上一个常数以后就可以组出任意的分段线性曲线。
如果分段线性曲线越复杂,转折的点越多,所需的蓝色函数就越多。
反之,越多蓝色函数的话可以组成越复杂的分段线性曲线。

每一段折线都是由大量蓝色的函数组合起来,只要有足够的蓝色函数,就可以形成近似圆滑的曲线。
在这里插入图片描述所以当我们拿到一个命题时,刚开始不用想多模复杂的公式去解析,可以直接先用一条曲线去理解它, 用 Sigmoid 函数来逼近 Hard Sigmoid。
在这里插入图片描述在这里插入图片描述
在调试过程中,调整这里的 b、w 和 c 可以制造各种不同形状的 Sigmoid 函数,用各种不同形状的 Sigmoid函数去逼近 Hard Sigmoid 函数
在这里插入图片描述通过不断衍生,构建出更加灵活的函数。
在这里插入图片描述

Q: 优化是找一个可以让损失最小的参数,是否可以穷举所有可能的未知参数的值?A:只有 w 跟 b 两个参数的前提之下,可以穷举所有可能的 w
跟 b
的值,所以在参数很少的情况下。甚至可能不用梯度下降,不需要优化的技巧。但是参数非常多的时候,就不能使用穷举的方法,需要梯度下降来找出可以让损失最低的参数。

Q:刚才的例子里面有 3 个 Sigmoid,为什么是 3 个,能不能 4 个或更多?A:Sigmoid 的数量是由自己决定的,而且
Sigmoid 的数量越多,可以产生出来的分段线性函数就越复杂。Sigmoid
越多可以产生有越多段线的分段线性函数,可以逼近越复杂的函数。Sigmoid 的数量也是一个超参数。

接下来要定义损失。之前是 L(w, b),因为 w 跟 b 是未知的。现在未知的参数很多了,再把它一个一个列出来太累了,所以直接用 θ 来统设所有的参数,所以损失函数就变成 L(θ)。损失函数能够判断 θ 的好坏,其计算方法跟刚才只有两个参数的时候是一样的。先给定 θ 的值,即某一组 W, b, cT, b 的值,再把一种特征 x 代进去,得到估测出来的 y,再计算一下跟真实的标签之间的误差 e。把所有的误差通通加起来,就得到损失。
要找到 θ 让损失越小越好,可以让损失最小的一组 θ 称为 θ∗,或选择更深的梯度,或者计算出梯度为 0 向量,导致无法再更新参数为止,不过在实现上几乎不太可能梯度为 0,通常会停下来。
在这里插入图片描述## 3.3、待续

补充学习地址:
李宏毅《机器学习/深度学习》2021课程

总结

线性模型是深度学习中一种基础且重要的模型,它通过简单的线性组合来预测输出。然而,由于其只能学习线性关系,因此在实际应用中通常需要与其他技术(如激活函数、隐藏层等)结合使用,以构建出具有更强非线性能力的神经网络模型。

这篇关于Datawhale X 李宏毅苹果书 AI夏令营 - 跟李宏毅学深度学习(入门之线性模型)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1137206

相关文章

深度解析Python中递归下降解析器的原理与实现

《深度解析Python中递归下降解析器的原理与实现》在编译器设计、配置文件处理和数据转换领域,递归下降解析器是最常用且最直观的解析技术,本文将详细介绍递归下降解析器的原理与实现,感兴趣的小伙伴可以跟随... 目录引言:解析器的核心价值一、递归下降解析器基础1.1 核心概念解析1.2 基本架构二、简单算术表达

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Java MCP 的鉴权深度解析

《JavaMCP的鉴权深度解析》文章介绍JavaMCP鉴权的实现方式,指出客户端可通过queryString、header或env传递鉴权信息,服务器端支持工具单独鉴权、过滤器集中鉴权及启动时鉴权... 目录一、MCP Client 侧(负责传递,比较简单)(1)常见的 mcpServers json 配置

Maven中生命周期深度解析与实战指南

《Maven中生命周期深度解析与实战指南》这篇文章主要为大家详细介绍了Maven生命周期实战指南,包含核心概念、阶段详解、SpringBoot特化场景及企业级实践建议,希望对大家有一定的帮助... 目录一、Maven 生命周期哲学二、default生命周期核心阶段详解(高频使用)三、clean生命周期核心阶

Java+AI驱动实现PDF文件数据提取与解析

《Java+AI驱动实现PDF文件数据提取与解析》本文将和大家分享一套基于AI的体检报告智能评估方案,详细介绍从PDF上传、内容提取到AI分析、数据存储的全流程自动化实现方法,感兴趣的可以了解下... 目录一、核心流程:从上传到评估的完整链路二、第一步:解析 PDF,提取体检报告内容1. 引入依赖2. 封装

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

深度解析Python yfinance的核心功能和高级用法

《深度解析Pythonyfinance的核心功能和高级用法》yfinance是一个功能强大且易于使用的Python库,用于从YahooFinance获取金融数据,本教程将深入探讨yfinance的核... 目录yfinance 深度解析教程 (python)1. 简介与安装1.1 什么是 yfinance?

Java List 使用举例(从入门到精通)

《JavaList使用举例(从入门到精通)》本文系统讲解JavaList,涵盖基础概念、核心特性、常用实现(如ArrayList、LinkedList)及性能对比,介绍创建、操作、遍历方法,结合实... 目录一、List 基础概念1.1 什么是 List?1.2 List 的核心特性1.3 List 家族成