算法常见八股问题整理

news/2025/2/25 2:54:25/

1.极大似然估计和交叉熵有什么关系

在分类问题中,当我们使用softmax函数作为输出层时,最大化对数似然函数实际上等价于最小化交叉熵损失函数。具体来说,在多分类情况下,最大化该样本的对数似然等价于最小化该样本的交叉熵损失。

交叉熵损失本质上就是对数似然的负数形式,使用交叉熵损失来进行优化时,我们可以简化很多数学表达和推导步骤。

2.正则化

正则化(Regularization)是机器学习和深度学习中的一种技术,用于防止模型过拟合(overfitting)。在训练模型时,如果模型太复杂,它可能会过度拟合训练数据中的噪声,而不仅仅是学习到数据的潜在规律。正则化通过在模型的损失函数中增加一个惩罚项,限制模型的复杂度,从而提高模型的泛化能力,使其在新的、未见过的数据上表现更好。

原理:在损失函数上加上某些规则(限制),缩小解空间,从而减少求出过拟合解的可能性

因此,其实在机器学习中,正则化往往是在损失函数上增加参数绝对值和(L1正则化)或增加参数平方和(L2正则化)。

将Loss拆分成两部分,一部分是正常计算的损失值,我们要寻找它的最小值,是个凹函数。另一部分是个正则化项,我们也要寻找它的最小值,它也是个凹函数。

假设待优化的模型参数w只有两个维度,可以看出来正则化项 z=|w1|+|w2| 或z=w1²+w2²等如下所示:

因为我们要寻找最终的最小值,两个凹函数的相加的最小值往往是二者相切的点。

总结

  • L1 正则化(Lasso)适用于特征选择和当你认为数据中有冗余或不重要的特征时,可以去除这些特征(即产生稀疏模型)。
  • L2 正则化(Ridge)适用于当你希望模型平滑、避免过拟合并且不需要对特征进行选择时。它更适合特征之间有相关性的情况,能够平衡每个特征的影响。

3.位置编码

3.1绝对位置编码

3.2旋转位置编码

4.LayerNorm和BatchNorm区别

RMSNorm(LLama)


http://www.ppmy.cn/news/1574749.html

相关文章

一周学会Flask3 Python Web开发-客户端状态信息Cookie以及加密

锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili HTTP是无状态(stateless)协议。也就是说,在一次请求响应结束后,服务器不会留下任何关于对…

设计模式-observer模式(观察者模式)

解释 观察者模式用于建立对象间的一对多依赖,当主题(Subject)状态变化时,所有观察者(Observers)自动收到通知。 Observer 模式应该可以说是应用最多、影响最广的模式之一,因为 Observer 的一个…

PHP集成软件用哪个比较好?

在Windows环境下,使用PHP时,通常需要一个集成开发环境(IDE)或者集成软件来简化开发和调试过程。以下是几款常用且推荐的PHP集成软件,每款都有其特点,可以根据需求进行选择: 1. XAMPP 特点&…

【DeepSeek 行业赋能】从金融到医疗:探索 DeepSeek 在垂直领域的无限潜力

网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…

蓝桥杯 Java B 组 之堆的基础(优先队列实现 Top K 问题)

Day 6:堆的基础(优先队列实现 Top K 问题) 📖 一、什么是堆(Heap)? 堆(Heap) 是一种特殊的二叉树结构,满足: 最大堆(Max Heap&#…

智联招聘爬虫

使用Python和Selenium进行招聘信息爬取 在当今数字化时代,数据已成为企业决策的重要依据。对于人力资源部门或求职者而言,获取最新的招聘信息至关重要。然而,手动浏览和收集招聘信息不仅耗时费力,而且效率低下。为了解决这个问题&…

Keeppalived 实现Nginx 的高可用集群

一、实验介绍 1、 本实验将通过 Keepalived 来实现 Nginx 的 HA 集群,当集群中的主服务器发生故障后,业务自动切换到备用主机上。 2、实验组网介绍:本实验由三台虚拟机(这里131.19为MASTER 131.20为BACKUP)组成&…

C#中级教程(2)——走进 C# 面向对象编程:从基础到进阶的深度探索

一、为什么选择面向对象编程 在软件开发的演进过程中,随着程序规模和复杂度的不断增加,传统的编程方式逐渐暴露出局限性。面向对象编程应运而生,它就像是一位智慧的组织者,将程序中的功能进行模块化划分。每个模块各司其职&#x…