1-机器学习的基本概念

文章目录

  • 一、机器学习的步骤
    • Step1 - Function with unknown
    • Step2 - Define Loss from Training Data
    • Step3 - Optimization
  • 二、机器学习的改进
    • Q1 - 线性模型有一些缺点
    • Q2 - 重新诠释机器学习的三步
    • Q3 - 机器学习的扩展
    • Q4 - 过拟合问题(Overfitting)

一、机器学习的步骤


如图所示,机器学习分为以下三步:
在这里插入图片描述
下文按照这个步骤来进行整理


Step1 - Function with unknown

  1. 机器学习就是 “自动找到一个非常复杂的函数" ,其输入是原始的数据(声音信号、图片、棋盘状态等),通过这个函数,得到一个较好的答案(语音对应的文字、图片展示的对象、棋子下一步走法等),如图:
    在这里插入图片描述

  1. 为了实现不同的目标,我们可以用机器学习去找不同的函数,这些任务有如下的分类:
    (1)Regression:the function output a scalar;找一个数,如预测明天的气温、PM2.5浓度;
    (2)Classification: Given options(classes),the function output the correct one;给出一个正确的选项;
    (3)Structured Learning:让机器产生有结构性的信息(文章、图片等);

  1. x`Model:带有未知参数的函数,也就是我们机器学习的目标——建立一个model解决问题。在Model中我们有一些概念:
    (1)feature:来源于数据,是已知的参数。
    (2)weight:与feature相乘,代表feature的重要程度。
    (3)bias:预测值和真实值的偏差。

在这里插入图片描述
我们用以上式子来解释:将浏览信息输入,预测未来浏览量。
其中 y 就是我们预测的浏览量, x 1 x_1 x1是我们之前的浏览量,w是weight,b是bias。


Step2 - Define Loss from Training Data

  1. Loss也是一个函数,其输入是之前提到的weigth和bias,它的输出用来衡量这两个数值设置的好不好。
  2. 可以通过比对估测的值和真实的值之间的差距,使用 e = ∣ y − y ^ ∣ e = |y - \hat{y}| e=yy^ (MAE) 或 e = y − y ^ ) 2 e = y - \hat{y})^2 e=yy^)2 (MSE) 来衡量,其中真实的值叫做Label
  3. 可以用如下的图表衡量Loss与bias和weight的关系: 在这里插入图片描述

Step3 - Optimization

  1. 优化的目标就是找到一个让Loss - e e e 更小的函数,我们将优化方法——梯度下降(Gradient Descent)也分为如下三步:
    (1)(Randomly)Pick an initial value w 0 w^0 w0
    (2) 取微分(bias同理):
    ∂ L ∂ W ∣ w = w 0 \frac{\partial L} {\partial W} \Bigg|_{w = w^0} WL w=w0
    (3) update w w w iteratively:通过刚刚的微分,乘上学习率 η \eta η 来更新 w w w 的值,如下:
    w 1 = w 0 − η ∂ L ∂ W ∣ w = w 0 w^1 = w^0 - \eta \frac{\partial L} {\partial W} \Bigg|_{w = w^0} w1=w0ηWL w=w0
    注:机器学习中需要自己设置的参数(如学习率 η \eta η),叫做hyperparameters。

  1. 我们在 w w w 到达满意的值或者失去耐心(到达设置的移动次数)后,取定最终的值。其中我们发现,如果学习率 η \eta η 设置的较小,我们可能陷入 Local Minima 中,而找不到最优的 Global Minima。 在这里插入图片描述
    其实它不是机器学习中的难题,后续继续进行介绍。

二、机器学习的改进

Q1 - 线性模型有一些缺点

  1. 线性模型(Linear model)太过于简单,对真实情况可能做不到很好的预测:
    在这里插入图片描述

  1. 我们可以使用常数 + 多个函数来构建最终的模型:
    在这里插入图片描述
    转折点越多,需要的蓝色function越多。如果有足够多的function组合在一起,也许我们就能得到足够好的模拟效果。

  1. 引入一个新的概念:激活函数(sigmoid function),其定义如下:
    y = c 1 1 + e − ( b + w x 1 ) = c s i g m o i d ( b + w x 1 ) y = c \ \frac{1}{1 + e^{-(b + wx_1)}} = c \ sigmoid(b+wx_1) y=c 1+e(b+wx1)1=c sigmoid(b+wx1)
    改变不同的参数有如下效果:
    在这里插入图片描述
    新的Model——拥有更多Feature:
    y = b + ∑ i c i s i g m o i d ( b i + w i x 1 ) y = b + \sum_i{c_i}\ sigmoid(b_i + w_ix_1) y=b+ici sigmoid(bi+wix1)

  1. 更加复杂的model:

在这里插入图片描述
以上是三个sigmoid函数中的元素,我们还可以用线代知识对式子进行简化:
在这里插入图片描述
我们构建Model的流程就如下图所示:
在这里插入图片描述


Q2 - 重新诠释机器学习的三步

  1. function with unknown:
    现在我们定义的含有未知数的函数就变成了上图中的函数: y = b + c T σ ( b + W x ) y = b + c^T \sigma(b + Wx) y=b+cTσ(b+Wx)
    其中 σ \sigma σ 是激活函数 s i g m o i d sigmoid sigmoid,注意其中的两个常数 b b b 是不同的值。

  2. Define Loss from Training Data
    Loss的定义没有不同,依旧是 L = 1 N ∑ e n L = \frac{1}{N} \sum{e_n} L=N1en

  3. Optimization of New Model
    在新模型中,feature包含 W 、 b 、 C T W 、b、 C^T WbCT 等,我们将其全部放入一个新的矩阵 θ \theta θ 中, θ = [ θ 1 θ 2 θ 3 ] \theta = \begin{bmatrix} \theta1 \\ \theta2 \\ \theta3 \\ \end{bmatrix} θ= θ1θ2θ3
    即将feature的元素依次放入 θ \theta θ
    现在我们引入一个新的向量 gradient(梯度)来表示优化效果:
    g = [ ∂ L ∂ θ 1 ∣ θ = θ 0 ∂ L ∂ θ 2 ∣ θ = θ 0 . . . ] g = ∇ L ( θ 0 ) g = \begin{bmatrix} \frac{\partial L}{\partial \theta_1} |_{\theta = \theta_0} \\ \\ \frac{\partial L}{\partial \theta_2} |_{\theta = \theta_0} \\ ... \end{bmatrix} \; g = \nabla L(\boldsymbol{\theta}^0) g= θ1Lθ=θ0θ2Lθ=θ0... g=L(θ0)
    逐步更新参数,取得更好的结果 θ ∗ = a r g m i n L \theta^* = arg\ min_{}L θ=arg minL


Q3 - 机器学习的扩展

在实际的机器学习中,我们会将完整的数据集分为不同的batch分别进行训练,每训练完一个batch,就更新一次模型参数(即进行一次梯度下降)。

优点:
(1) 节省内存:如果你一次用整个数据集训练(叫做 full-batch),对大数据来说会爆内存。
(2) 更快训练:batch 可以并行计算,训练过程更高效。
(3) 提高泛化性:每次用不同的 batch 做梯度估计,有“抖动”,反而能避免陷入局部最优。
在这里插入图片描述


此外,激活函数还不仅仅局限于sigmoid,还有ReLU:
在这里插入图片描述
定义:
在这里插入图片描述


Q4 - 过拟合问题(Overfitting)

再训练资料上模型表现的较好,但是在新资料上表现差的问题,我们称之为过拟合(Overfitting)
在这里插入图片描述
我们应该选择在未训练数据上表现更好的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/906114.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL里where条件的顺序影响索引使用吗?

大家好,我是锋哥。今天分享关于【SQL里where条件的顺序影响索引使用吗?】面试题。希望对大家有帮助; SQL里where条件的顺序影响索引使用吗? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 SQL 查询中,W…

计算机科技笔记: 容错计算机设计05 n模冗余系统 TMR 三模冗余系统

NMR(N-Modular Redundancy,N 模冗余)是一种通用的容错设计架构,通过引入 N 个冗余模块(N ≥ 3 且为奇数),并采用多数投票机制,来提升系统的容错能力与可靠性。单个模块如果可靠性小于…

中级网络工程师知识点7

1.存储区城网络SAN可分为IP-SAN,FC-SAN两种,从部署成本和传输效率两个方面比较两种SAN,比较结果为FCSAN部署成本更高 2.RAID2.0技术的优势: (1)自动负载均衡,降低了存储系统故障率 (2&#x…

在Ubuntu24.04中配置开源直线特征提取软件DeepLSD

在Ubuntu24.04中配置开源直线特征提取软件DeepLSD 本文提供在Ubuntu24.04中配置开源直线特征提取软件DeepLSD的基础环境配置、列出需要修改的文件内容,以及报错解决方案集锦。 基础的编译安装环境 python3.8.12CUDA12gcc/g 9.5(系统自带的g-13版本太新…

Nginx+Lua 实战避坑:从模块加载失败到版本冲突的深度剖析

Nginx 集成 Lua (通常通过 ngx_http_lua_module 或 OpenResty) 为我们提供了在 Web 服务器层面实现动态逻辑的强大能力。然而,在享受其高性能和灵活性的同时,配置和使用过程中也常常会遇到各种令人头疼的问题。本文将结合实际案例,深入分析在 Nginx+Lua 环境中常见的技术问题…

Vue.js组件开发进阶

Vue.js 是一个渐进式 JavaScript 框架,广泛用于构建用户界面。组件是 Vue.js 的核心概念之一,允许开发者将 UI 拆分为独立、可复用的模块。本文将深入探讨 Vue.js 组件的开发,涵盖从基础到高级的各个方面。 组件的基本概念 在 Vue.js 中&am…

蓝桥杯19682 完全背包

问题描述 有 N 件物品和一个体积为 M 的背包。第 i 个物品的体积为 vi​,价值为 wi​。每件物品可以使用无限次。 请问可以通过什么样的方式选择物品,使得物品总体积不超过 M 的情况下总价值最大,输出这个最大价值即可。 输入格式 第一行…

深度学习之用CelebA_Spoof数据集搭建一个活体检测-一些模型训练中的改动带来的改善

实验背景 在前面的深度学习之用CelebA_Spoof数据集搭建一个活体检测-模型搭建和训练,我们基于CelebA_Spoof数据集构建了一个用SqueezeNe框架进行训练的活体2D模型,采用了蒸馏法进行了一些简单的工作。在前面提供的训练参数中,主要用了以下几…

2025年PMP 学习二十 第13章 项目相关方管理

第13章 项目相关方管理 序号过程过程组过程组1识别相关方启动2规划相关方管理规划3管理相关方参与与执行4监控相关方参与与监控 相关方管理,针对于团队之外的相关方的,核心目标是让对方为了支持项目,以达到项目目标。 文章目录 第13章 项目相…

GO语言语法---For循环、break、continue

文章目录 1. 基本for循环(类似其他语言的while)2. 经典for循环(初始化;条件;后续操作)3. 无限循环4. 使用break和continue5 . 带标签的循环(可用于break/continue指定循环)1、break带标签2、continue带标签…

CSS- 4.4 固定定位(fixed) 咖啡售卖官网实例

本系列可作为前端学习系列的笔记,代码的运行环境是在HBuilder中,小编会将代码复制下来,大家复制下来就可以练习了,方便大家学习。 HTML系列文章 已经收录在前端专栏,有需要的宝宝们可以点击前端专栏查看! 点…

分布式微服务系统架构第132集:Python大模型,fastapi项目-Jeskson文档-微服务分布式系统架构

加群联系作者vx:xiaoda0423 仓库地址:https://webvueblog.github.io/JavaPlusDoc/ https://1024bat.cn/ https://github.com/webVueBlog/fastapi_plus 这个错误是由于 Python 3 中已经将线程的 isAlive() 方法更名为 is_alive(),但你的调试工…

react路由中Suspense的介绍

好的,我们来详细解释一下这个 AppRouter 组件的代码。 这个组件是一个在现代 React 应用中非常常见的模式,特别是在使用 React Router v6 进行路由管理和结合代码分割(Code Splitting)来优化性能时。 JavaScript const AppRout…

C语言内存函数与数据在内存中的存储

一、c语言内存函数 1、memcpy函数是一个标准库函数,用于内存复制。功能上是用来将一块内存中的内容复制到另一块内存中。用户需要提供目标地址、源地址以及要复制的字节数。例如结构体之间的复制。 memcpy函数的原型是:void* memcpy(void* …

层次原理图

层次原理图简介 层次原理图(Hierarchical Schematic)是一种常用于电子工程与系统设计的可视化工具,通过分层结构将复杂系统分解为多个可管理的子模块。它如同“设计蓝图”,以树状结构呈现整体与局部的关系:顶层展现系…

流程编辑器Bpmn与LogicFlow学习

工作流技术如何与用户交互结合(如动态表单、任务分配)处理过 XML 与 JSON 的转换自定义过 bpmn.js 的样式(如修改节点颜色、形状、图标)扩展过上下文菜单(Palette)或属性面板(Properties Panel&…

LWIP的NETCONN接口

NETCONN接口简介 NETCONN API 使用了操作系统的 IPC 机制, 对网络连接进行了抽象,使用同一的接口完成UDP和TCP连接 NETCONN API接口是在RAW接口基础上延申出来的一套API接口 NETCONN实现原理 2.1,NETCONN控制块 2.2,NETCONN收…

Linux搜索

假如我们要搜索 struct sockaddr_in 我们在命令终端输入 cd/usr/include/ //进入头文件目录地址 /usr/include/ grep " struct sockaddr_in { " *-nir (*是在当前目录,n 是找出来显示行数…

2025长三角杯数学建模B题思路模型代码:空气源热泵供暖的温度预测,赛题分析与思路

2025长三角杯数学建模B题思路模型代码,详细内容见文末名片 空气源热泵是一种与中央空调类似的设备,其结构主要由压缩主机、热交换 器以及末端构成,依靠水泵对末端房屋提供热量来实现制热。空气源热泵作为热 惯性负载,调节潜力巨…

ssh免密码登录

创建秘钥和公钥 ssh-keygen -t rsa 输入上述命令后,直接按回车即可,完成后会在上面信息显示,生成的文件路径信息 id_rsa:秘钥 id_rsa.pub: 公钥 将公钥的内容copy到远端 将id_rsa.pub的内容拷贝到~/.ssh下的authori…