#Datawhale X 李宏毅苹果书 AI夏令营#1.2了解线性模型

2024-08-30 01:12

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

1.2线性模型

什么是线性模型?

初始模型y=100+0.97x_{1},

其中y表示观看人数,x1表示前一天的观看人数,这个模型就是在用前一天的观看人数来预测当前的观看人数。

模型改进:

然而真实的数据是有周期性的,每隔7天,一个循环。这样只使用前一天的数据来预测就显得不准确,我们应该考虑7天的数据。

这样我们便有了第二个模型:

 这个模型考虑了前七天的数据,做了一个参数的加权求和,再加上偏置项。

如果我们使用28天的数据来预测呢?

这就有了第3个模型:

 如果我们使用更多的数据,56天的数据呢?这就有了第4个模型:

总结:以上4个模型都是线性模型,且随着我们使用的数据越多,模型预测的越准确,

损失比较:

模型训练损失未见过数据上的损失
初始模型1480580
模型2(7天)380490
模型3(28天)330460
模型4(56天)320460

随着我们使用数据的增加,训练损失和验证损失都在减少,到一定程度后,验证损失不在减小,表明仅靠增加数据,模型已达到上限。

这4个模型都是线性模型,我们就此给出线性模型的定义:

“这些模型都是把输入的特征x乘上一个权重,再加上一个偏置就得到预测的结果,这样的模型称为线性模型(linear model)。”

分段线性曲线

线性模型是最简单的模型之一。这种模型存在局限性。线性模型只能模拟简单的线性关系,无法模拟复杂的非线性关系,然后现实中的问题通常是复杂的。是非线性的,这就需要一个更复杂、更有灵活性的模型。

所以我们需要对线性模型进行改进。一个非线性函数可以用多段线性曲线来逼近。

我们先举一个割圆术的例子,使用正切多边形逼近圆形是一个非常好的类比,可以帮助我们理解如何使用分段线性曲线来逼近非线性关系。理论上来说,只有多边形取得足够多,那么就可以无限接近圆,我们需要建立这种思想。

 回到我们非线性曲线。下面两张图是书本中的原图。

 图1的这条红色曲线,我们可以把它看作是由下面几段蓝色曲线叠加得到的,如果不理解的话,那么换个说法,这们可以把红色曲线看到是由自身的三段折线叠加组合而成。推广开来,对于右图中的黑色曲线,我们同样可以把他看作是由无数多的折线叠加而成的。这个思想可以参考割圆术。

那么使用分段曲线,理论上我们可以叠加得到任何形式的曲线,只要我们每一段折线取得够短。

这样我们就可以使用分段线性曲线叠加来表示一个非线性曲线了。随着线性段数量的增加,分段线性曲线能够更好地逼近非线性关系。类似于多边形逼近圆形的过程,分段线性曲线最终可以逼近任意连续曲线。

这里进一步,我们可以用Sigmoid函数来代替Hard Sigmoid(也就是图中的蓝色折线段),那么我们连续曲线可以是有多段Sigmoid函数叠加得到的。

模型变形

这里我们还可以进一步对模型进行变形,前面我们已经尝试了Hard Sigmoid和Sigmoid函数,我们可以替换成ReLU函数。

ReLU函数:

ReLU(x)=max⁡(0,x),如果 x<0,输出为 0;否则输出为 x。

同样一段非线性曲线可以是由多个ReLU函数叠加得到。

接下来是书中提到的一些概念。

激活函数:在机器学习里面,Sigmoid 或 ReLU 称为激活函数(activation function)。

神经网络:Sigmoid 或 ReLU 称为神经元(neuron),很多的神经元称为神经网络 (neural network)。

隐藏层:每一排称为一层,称为隐藏层(hidden layer),很多的隐藏层就“深”,这套技术称为深度学习。

过拟合:在训练数据和测试数据上的结果是不一致的,训练数据上效果很好,在测试数据(没看过的数据)上,效果变差,这种情况称为过拟合(overfitting)。

机器学习框架

首先划分训练集和测试集。

训练步骤如下:

  • 定义一个含未知数的函数
  • 定义损失函数
  • 解优化问题,得到使损失函数最小的参数

喜欢的小伙伴收藏点赞关注吧。

这篇关于#Datawhale X 李宏毅苹果书 AI夏令营#1.2了解线性模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

SpringBoot整合DeepSeek实现AI对话功能

《SpringBoot整合DeepSeek实现AI对话功能》本文介绍了如何在SpringBoot项目中整合DeepSeekAPI和本地私有化部署DeepSeekR1模型,通过SpringAI框架简化了... 目录Spring AI版本依赖整合DeepSeek API key整合本地化部署的DeepSeek

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus

本地私有化部署DeepSeek模型的详细教程

《本地私有化部署DeepSeek模型的详细教程》DeepSeek模型是一种强大的语言模型,本地私有化部署可以让用户在自己的环境中安全、高效地使用该模型,避免数据传输到外部带来的安全风险,同时也能根据自... 目录一、引言二、环境准备(一)硬件要求(二)软件要求(三)创建虚拟环境三、安装依赖库四、获取 Dee

DeepSeek模型本地部署的详细教程

《DeepSeek模型本地部署的详细教程》DeepSeek作为一款开源且性能强大的大语言模型,提供了灵活的本地部署方案,让用户能够在本地环境中高效运行模型,同时保护数据隐私,在本地成功部署DeepSe... 目录一、环境准备(一)硬件需求(二)软件依赖二、安装Ollama三、下载并部署DeepSeek模型选

PyCharm接入DeepSeek实现AI编程的操作流程

《PyCharm接入DeepSeek实现AI编程的操作流程》DeepSeek是一家专注于人工智能技术研发的公司,致力于开发高性能、低成本的AI模型,接下来,我们把DeepSeek接入到PyCharm中... 目录引言效果演示创建API key在PyCharm中下载Continue插件配置Continue引言

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe