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

搜广推校招面经三十一

vivo策略算法

一、机器学习中 L1 和 L2 正则化的原理

见【搜广推校招面经二十五】
L1 正则化将某些特征权重置0实现模型简化,而 L2 正则化主要通过平滑权重来实现模型简化。

1.1. 正则化的原理

正则化的核心思想是在损失函数中加入一个惩罚项(Regularization Term),通过对模型参数施加约束,避免模型过于复杂,从而减少过拟合的风险。
假设原始损失函数为 L ( θ ) L(\theta) L(θ),其中 θ \theta θ 是模型参数。引入正则化后,损失函数变为:
L regularized ( θ ) = L ( θ ) + λ R ( θ ) L_{\text{regularized}}(\theta) = L(\theta) + \lambda R(\theta) Lregularized(θ)=L(θ)+λR(θ)

  • L ( θ ) L(\theta) L(θ):原始损失函数(如均方误差或交叉熵)。
  • R ( θ ) R(\theta) R(θ):正则化项,用于惩罚模型参数。
  • λ \lambda λ:正则化系数,控制正则化强度。

通过最小化 L regularized ( θ ) L_{\text{regularized}}(\theta) Lregularized(θ),可以找到既拟合数据又满足正则化约束的模型参数。

2.2. L1 和 L2 正则化的定义

(1)L1 正则化

L1 正则化使用参数绝对值之和作为正则化项:
R ( θ ) = ∥ θ ∥ 1 = ∑ i = 1 n ∣ θ i ∣ R(\theta) = \|\theta\|_1 = \sum_{i=1}^{n} |\theta_i| R(θ)=θ1=i=1nθi

(2)L2 正则化

L2 正则化使用参数平方和的平方根作为正则化项:
R ( θ ) = ∥ θ ∥ 2 2 = ∑ i = 1 n θ i 2 R(\theta) = \|\theta\|_2^2 = \sum_{i=1}^{n} \theta_i^2 R(θ)=θ22=i=1nθi2

2.3. L1 和 L2 正则化的几何解释

(1)无正则化的情况

在没有正则化的情况下,优化目标是最小化损失函数 L ( θ ) L(\theta) L(θ)。假设 L ( θ ) L(\theta) L(θ) 的等高线是一个椭圆形状,则最优解位于椭圆的最低点。

(2)加入正则化后的优化目标

加入正则化后,优化目标变为:
min ⁡ θ L ( θ ) + λ R ( θ ) \min_\theta L(\theta) + \lambda R(\theta) θminL(θ)+λR(θ)
此时,正则化项 R ( θ ) R(\theta) R(θ) 对参数空间施加了一个约束。我们可以将优化问题视为在参数空间中寻找满足约束条件的最优解。

  • L1 正则化 R ( θ ) = ∥ θ ∥ 1 R(\theta) = \|\theta\|_1 R(θ)=θ1 定义了一个菱形约束区域(在二维情况下)。
  • L2 正则化 R ( θ ) = ∥ θ ∥ 2 2 R(\theta) = \|\theta\|_2^2 R(θ)=θ22 定义了一个圆形约束区域(在二维情况下)。

当损失函数的等高线与正则化约束区域相交时,得到的解即为最终参数。

2.4. L1 正则化为何能让模型变得稀疏?

L1 正则化倾向于使模型参数中的某些值变为零,从而使模型变得稀疏。其原因可以从以下几个方面解释:

(1)几何解释

  • 在 L1 正则化中,参数空间的约束区域是一个菱形。
  • 损失函数的等高线与菱形的边界相交时,由于菱形的顶点在坐标轴上,交点往往落在坐标轴上(即某些参数为零)。
  • 在顶点处,部分坐标值为零(例如 ( w 1 , 0 ) (w_1, 0) (w1,0) ( ( 0 , w 2 ) ((0, w_2) ((0,w2))。因此,L1 正则化倾向于将部分参数压缩到零,形成稀疏解。

(2)数学解释

  • L1 正则化的目标是最小化 L ( θ ) + λ ∥ θ ∥ 1 L(\theta) + \lambda \|\theta\|_1 L(θ)+λθ1。由于 ∥ θ ∥ 1 \|\theta\|_1 θ1 是绝对值的和,优化过程会优先减少较小的参数值,甚至将其直接压缩为零。

2.5. L2 正则化为何不能让模型变得稀疏?

L2 正则化不会使模型参数变为零,而是通过缩小参数值的绝对值来平滑模型。其原因如下:

(1)几何解释

  • 在 L2 正则化中,参数空间的约束区域是一个圆形。
  • 损失函数的等高线与圆形的边界相交时,交点通常不在坐标轴上(即所有参数都不为零)。
  • 因此,L2 正则化不会导致稀疏解,而是均匀地缩小所有参数。

(2)数学解释

  • L2 正则化的目标是最小化 L ( θ ) + λ ∥ θ ∥ 2 2 L(\theta) + \lambda \|\theta\|_2^2 L(θ)+λθ22。由于 ∥ θ ∥ 2 2 \|\theta\|_2^2 θ22 是参数平方的和,优化过程会均匀地缩小所有参数值,而不是将某些参数压缩为零。

二、Sigmoid函数什么情况下会导致梯度消失,如何处理梯度消失

见【搜广推校招面经十八、搜广推校招面经七】

三、46. 全排列(hot100_回溯_中等)

在这里插入图片描述

class Solution:def permute(self, nums: List[int]) -> List[List[int]]:def dfs(x):if x == len(nums) - 1:res.append(list(nums))               # 添加排列方案returnfor i in range(x, len(nums)):nums[i], nums[x] = nums[x], nums[i]  # 交换,将 nums[i] 固定在第 x 位dfs(x + 1)                           # 开启固定第 x + 1 位元素nums[i], nums[x] = nums[x], nums[i]  # 恢复交换res = []dfs(0)return res

相关文章:

搜广推校招面经三十一

vivo策略算法 一、机器学习中 L1 和 L2 正则化的原理 见【搜广推校招面经二十五】 L1 正则化将某些特征权重置0实现模型简化,而 L2 正则化主要通过平滑权重来实现模型简化。 1.1. 正则化的原理 正则化的核心思想是在损失函数中加入一个惩罚项(Regula…...

【JavaWeb13】了解ES6的核心特性,对于提高JavaScript编程效率有哪些潜在影响?

文章目录 🌍一. ES6 新特性❄️1. ES6 基本介绍❄️2. 基本使用2.1 let 声明变量2.2 const 声明常量/只读变量2.3 解构赋值2.4 模板字符串2.5 对象拓展运算符2.6 箭头函数 🌍二. Promise❄️1. 基本使用❄️2. 如何解决回调地狱问题2.1回调地狱问题2.2 使…...

C++知识整理day9——继承(基类与派生类之间的转换、派生类的默认成员函数、多继承问题)

文章目录 1.继承的概念和定义2.基类与派生类之间的转换3.继承中的作用域4.派生类的默认成员函数5.实现一个不能被继承的类6.继承与友元7.继承与静态成员8.多继承和菱形继承问题8.1 继承分类及菱形继承8.2 虚继承 1.继承的概念和定义 概念: 继承(inheritance)机制是⾯…...

pyautogui库的screenshot()函数

# 方法一 screenshot pyautogui.screenshot() screenshot.save("screenshot.png")# 方法二 # 获取屏幕分辨率 screen_width, screen_height pyautogui.size()# 截取桌面屏幕 screenshot pyautogui.screenshot(region(0, 0, screen_width, screen_height)) screens…...

App测试--逍遥模拟器抓包问题

一、环境 逍遥模拟器、burp、adb、openssl(kali)。 二、配置 1.burp证书转换 下载证书 将burp证书复制进kali,使用kali的openssl(自带),执行以下命令。 openssl x509 -inform der -in cacert.der -out burp.pem openssl x509 -subject_hash_old -in…...

STM32 HAL库0.96寸OLED显示液晶屏

本文介绍了使用STM32 HAL库通过I2C协议驱动0.96寸OLED显示屏的方法。首先概述了OLED的基本特性和应用,然后详细讲解了汉字点阵生成的方法,并提供了完整的代码示例,包括初始化、清屏、字符串显示和自定义汉字显示函数。这些代码实现了在STM32F…...

动态表头导出EasyExcel

在 Spring Boot 中结合 EasyExcel 实现动态表头导出&#xff08;无实体类&#xff0c;表头和字段&#xff08;前端传表名&#xff0c;字段值动态查询&#xff0c;返回List<Map<String,Object>>&#xff09;由前端传递&#xff09;可以通过以下步骤实现。以下是完整…...

【前端】react+ts 轮播图的实现

一、场景描述 在很多网站的页面中都有轮播图&#xff0c;所以我想利用react.js和ts实现一个轮播图。自动轮播图已经在前面实现过了&#xff0c;如&#xff1a;https://blog.csdn.net/weixin_43872912/article/details/145622444?sharetypeblogdetail&sharerId145622444&a…...

清华大学出品DeepSeek 四部教程全收录(附下载包),清华deepseek文档下载地址

文章目录 前言一、清华大学deepseek教程&#xff08;四部&#xff09;二、清华大学deepseek教程全集1.清华大学第一版《DeepSeek&#xff1a;从入门到精通》2.清华大学第二版《DeepSeek赋能职场》3.清华大学第三版《普通人如何抓住DeepSeek红利》4.清华大学第四版&#xff1a;D…...

Android 布局系列(三):RelativeLayout 使用指南

引言 在 Android 开发中&#xff0c;布局管理是构建用户界面的核心。RelativeLayout 曾经是 Android 中非常流行的一种布局方式&#xff0c;广泛应用于各种项目中。它通过相对位置关系组织视图元素&#xff0c;使得我们可以根据父容器或者其他视图的位置来灵活调整子视图的布局…...

ubuntu20.04音频aplay调试

1、使用指定声卡&#xff0c;aplay 播放命令 aplay -D plughw:1,0 test2.wav2、 录音 arecord -Dhw:1,0 -d 10 -f cd -r 44100 -c 2 -t wav test.wav3、各个参数含义 -D 指定声卡编号 plughw:0,0 //0,0代表card0,device0&#xff0c;可以通过arecord -l获取 -f 录音格式 S16_LE…...

前缀和代码解析

前缀和是指数组一定范围的数的总和,常见的有两种,一维和二维,我会用两道题来分别解析 一维 DP34 【模板】前缀和 题目: 题目解析: 暴力解法 直接遍历数组,遍历到下标为 l 时,开始进行相加,直到遍历到下标为 r ,最后返回总和.这样做的时间复杂度为: O(n) public class Main …...

Windows 环境下安装 Anaconda 并配置

安装Anaconda 1. 下载安装包 官网下载&#xff1a;https://www.anaconda.com/download/success 也可以从国内镜像仓库下载&#xff1a; 中国科学技术大学 https://mirrors.ustc.edu.cn/ 清华大学开源软件镜像站 https://mirrors.tuna.tsinghua.edu.cn/ 2. 安装过程 双…...

大模型在尿潴留风险预测及围手术期方案制定中的应用研究

目录 一、引言 1.1 研究背景与意义 1.2 研究目的 1.3 研究方法与数据来源 二、大模型预测尿潴留的原理与方法 2.1 相关大模型介绍 2.2 模型构建与训练 2.3 模型评估指标与验证 三、术前尿潴留风险预测及方案制定 3.1 术前风险因素分析 3.2 大模型预测结果分析 3.3 …...

JavaScript 简单类型与复杂类型

在JavaScript中&#xff0c;根据数据存储的方式不同&#xff0c;变量可以分为两大类&#xff1a;简单类型&#xff08;也称为基本数据类型或原始类型&#xff09;和复杂类型&#xff08;也称为引用数据类型&#xff09;。理解这两者的区别对于编写高效且无误的代码至关重要。本…...

AI绘画软件Stable Diffusion详解教程(1):Windows系统本地化部署操作方法(专业版)

一、事前准备 1、一台配置不错的电脑&#xff0c;英伟达显卡&#xff0c;20系列起步&#xff0c;建议显存6G起步&#xff0c;安装win10或以上版本&#xff0c;我的显卡是40系列&#xff0c;16G显存&#xff0c;所以跑大部分的模型都比较快&#xff1b; 2、科学上网&#xff0…...

大白话Vue 双向数据绑定的实现原理与数据劫持技术

咱们来好好唠唠Vue双向数据绑定的实现原理和数据劫持技术&#xff0c;我会用特别通俗的例子给你讲明白。 啥是双向数据绑定 你可以把双向数据绑定想象成一个神奇的“同步器”。在网页里有两部分&#xff0c;一部分是数据&#xff0c;就像你记在小本本上的信息&#xff1b;另一…...

VUE 获取视频时长,无需修改数据库,前提当前查看视频可以得到时长

第一字段处 <el-table-column label"视频时长" align"center"> <template slot-scope"scope"> <span>{{ formatDuration(scope.row.duration) }}</span> </template> </el-ta…...

antv G6绘制流程图

效果图&#xff08;优点&#xff1a;可以自定义每一条折线的颜色&#xff0c;可以自定义节点的颜色&#xff0c;以及折线的计算样式等&#xff09;&#xff1a; 代码&#xff1a; <!-- 流程图组件 --> <template><div id"container"></div>…...

完美隐藏滚动条方案 (2024 最新验证)

完美隐藏滚动条方案 (2024 最新验证) css /* 全局隐藏竖直滚动条但保留滚动功能 */ html {overflow: -moz-scrollbars-none; /* Firefox 旧版 */scrollbar-width: none; /* Firefox 64 */-ms-overflow-style: none; /* IE/Edge */overflow-y: overlay; …...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

AGain DB和倍数增益的关系

我在设置一款索尼CMOS芯片时&#xff0c;Again增益0db变化为6DB&#xff0c;画面的变化只有2倍DN的增益&#xff0c;比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析&#xff1a; 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能

1. 开发环境准备 ​​安装DevEco Studio 3.1​​&#xff1a; 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK ​​项目配置​​&#xff1a; // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...