深度学习面试总结(上岸版~)

2024/04/29面试

问题1:支持向量机理解

        支持向量机(Support Vector Machine,SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类的广义线性分类器(generalized linear classifier)。其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane)。SVM使用铰链损失函数(hinge loss)计算经验风险(empirical risk),并在求解系统中加入了正则化项以优化结构风险(structural risk),因此是一个具有稀疏性和稳健性的分类器。

        SVM的一个重要特性是通过核方法(kernel method)进行非线性分类,这使其成为常见的核学习(kernel learning)方法之一。在SVM中,支持向量起决定作用,它们是在训练过程中确定的,并且最终的决策函数只由少数的支持向量所确定。这种特性使得SVM在计算复杂性上有所优化,因为计算的复杂性取决于支持向量的数目,而不是样本空间的维数,这在某种程度上避免了“维数灾难”。

问题2:激活函数

        激活函数(Activation Function)在人工神经网络的神经元上运行,负责将神经元的输入映射到输出端。它在神经网络中起着至关重要的作用,因为它能够给神经网络加入一些非线性因素,使得神经网络能够很好地解决复杂的问题。

        如果不使用激活函数,神经网络中的每一层的输出只是承接了上一层输入函数的线性变换,无论神经网络有多少层,输出都是输入的线性组合,这大大限制了神经网络的表达能力。而激活函数的主要特性之一就是把非线性特性引入网络中,即激活函数有“掰弯”的能力,能够增强网络关注的特征,减弱不关注的特征,从而提高神经网络对模型的表达能力,解决线性模型所不能解决的问题。

常见的激活函数包括:

  1. Sigmoid函数:常用于二分类问题,可以将输入转换为0到1之间的值。
  2. Tanh函数:类似于Sigmoid函数,但可以将输入转换为-1到1之间的值。
  3. ReLU函数:可以将输入值转换为非负值。
  4. Leaky ReLU函数:与ReLU函数类似,但当输入值小于0时,其输出值不为0。
  5. ELU函数:与Leaky ReLU函数类似,但当输入值小于0时,其输出值会更小。
  6. Softmax函数:常用于多分类问题,可以将输入转换为概率值。

激活函数的发展经历了从Sigmoid到Tanh,再到ReLU、Leaky ReLU等的过程,每种激活函数都有其特点和适用场景。在实际应用中,需要根据问题的特性和需求选择合适的激活函数。

问题3:1*1卷积神经网络

1x1卷积神经网络(1x1 Convolutional Neural Network)是卷积神经网络(CNN)中的一种特殊类型的卷积层。尽管其名字可能让人误以为它只能处理1x1的图像或特征图,但实际上,1x1卷积可以在任何大小的输入特征图上进行操作。

1x1卷积的主要作用包括:

  1. 降维/升维:通过调整1x1卷积的输出通道数,可以有效地减少或增加特征图的深度(即通道数)。这在需要减少模型复杂度或增加模型表示能力时非常有用。
  2. 增加非线性:由于1x1卷积后面通常会接激活函数(如ReLU),因此它可以为网络引入更多的非线性,从而增强模型的表达能力。
  3. 跨通道信息交互:1x1卷积允许不同通道的特征图之间进行信息交互,这有助于模型学习到更复杂的特征表示。

在深度学习中,尤其是在处理图像数据时,1x1卷积经常与其他类型的卷积层(如3x3或5x5卷积)结合使用,以构建更强大、更高效的模型。例如,在Google的Inception网络中,1x1卷积被广泛用于减少特征图的维度,从而在不显著增加计算复杂度的情况下提高模型的性能。

问题4:BN层

BN层,即Batch Normalization层,是深度学习中常用的一种方法,用于加速神经网络的收敛速度,并且可以减小模型对初始参数的依赖性,提高模型的鲁棒性。它的主要作用如下:

  1. 加快网络的训练和收敛的速度:在深度神经网络中,如果每层的数据分布都不一样,会导致网络非常难收敛和训练。而如果把每层的数据都转换到均值为零、方差为1的状态下,这样每层数据的分布都是一样的,训练会比较容易收敛。
  2. 控制梯度爆炸并防止梯度消失:BN层通过归一化操作,使得每一层的输入都具备类似的分布,从而有效地减少了梯度消失和梯度爆炸的问题。
  3. 防止过拟合:BN的使用使得一个mini-batch中所有样本都被关联在了一起,因此网络不会从某一个训练样本中生成确定的结果。即同样一个样本的输出不再仅仅取决于样本的本身,也取决于跟这个样本同属一个batch的其他样本。而每次网络都是随机取batch,这样就会使得整个网络不会朝这一个方向使劲学习,一定程度上避免了过拟合。

BN层的原理是将每个mini-batch数据进行归一化处理,即将每个特征的均值和方差分别减去和除以当前mini-batch数据的均值和方差,以使得每个特征的数值分布在一个相对稳定的范围内。此外,为了保证模型的表达能力,BN层还引入了两个可学习参数gamma和beta,用于调整归一化后的特征值的范围和偏移量。

总的来说,BN层通过其归一化和调整机制,显著提高了神经网络的训练效率和模型性能,是深度学习模型构建中不可或缺的一部分。

问题5:pytorch的dataloder和dataset有什么区别

PyTorch中的DataLoaderDataset是两个不同的概念,它们在数据处理和模型训练过程中各自扮演着不同的角色。

Dataset

  • Dataset是一个抽象类,用于表示数据集。任何自定义的数据集都需要继承这个类,并实现其中的__len____getitem__这两个方法。
  • __len__方法用于返回数据集的大小,即样本的数量。
  • __getitem__方法用于根据索引返回单个样本及其对应的标签(如果有的话)。这样,你可以通过索引来访问数据集中的任何一个样本。
  • Dataset的主要作用是提供一个统一的数据访问接口,使得数据的获取和预处理变得更加方便和灵活。

DataLoader

  • DataLoader是一个用于数据加载的工具类,它组合了Dataset和采样器(sampler),并在数据集上提供单线程或多线程的可迭代对象。
  • DataLoader的主要作用是将数据集转化为一个可迭代对象,使得在模型训练过程中可以方便地按批次(batch)获取数据。
  • 通过设置batch_size参数,DataLoader可以自动将数据划分为指定大小的批次。
  • shuffle参数用于控制是否在每个训练周期开始时打乱数据的顺序。
  • num_workers参数用于指定用于数据加载的子进程数,可以提高数据加载的速度。
  • DataLoader还提供了其他一些有用的功能,如多线程加载、数据预取等,以进一步优化数据加载的性能。

区别与联系

  • Dataset定义了数据的结构以及如何从索引访问单个样本,而DataLoader则负责从Dataset中批量地、高效地加载数据。
  • 在模型训练过程中,你通常会先定义一个Dataset类来表示你的数据集,然后将其传递给DataLoader来创建一个可迭代对象,用于在训练循环中按批次获取数据。

总之,DatasetDataLoader在PyTorch中协同工作,使得数据的处理和加载变得更加高效和灵活。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

机器学习:深入解析SVM的核心概念(问题与解答篇)【三、核函数】

核函数 **问题一:为什么说是有限维就一定存在高维空间可分呢?**原始空间与特征空间为什么映射到高维空间可以实现可分核函数的作用 **问题二:最终怎么得到函数**从对偶问题到决策函数的步骤:结论 **问题三:为什么说特征…

c#数据库: 6.查询成绩合格的学生/7.输出全部学生信息

SQL Server Management Studio Management Studio 中的学生信息表: 查询上图成绩合格的学生信息,并将信息从控制台输出 using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Text…

【弱监督语义分割】AllSpark:从transformer中的未标记特征重生标记特征,用于半监督语义分割

AllSpark: Reborn Labeled Features from Unlabeled in Transformer for Semi-Supervised Semantic Segmentation 摘要: 目前最先进的方法是用真实标签训练标注数据,用伪标签训练未标注数据。然而,这两个训练流程是分开的,这就使…

《Fundamentals of Power Electronics》——正激变换器

正激变换器电路如图6.24所示: 该变压器隔离型转换器基于Buck电路,需要一个晶体管,因此常被使用在比全桥和半桥功率等级低的应用中。其非脉动输出电流与其他降压衍生变换器相同,使正激变换器非常适合涉及高输出电流的应用。晶体管最…

Slave SQL线程与PXB FTWRL死锁问题分析

1. 问题背景 2.27号凌晨生产环境MySQL备库在执行备份期间出现因FLUSH TABLES WITH READ LOCK未释放导致备库复制延时拉大,慢日志内看持锁接近25分钟未释放。 版本: MySQL 5.7.21PXB 2.4.18 慢查询日志: 备份脚本中的备份命令:…

QT 开发COM(ActiveX)组件基础介绍和方案验证

一、COM简介 1.1 COM是什么? COM,Component Object Model,即组件对象模型,是一种以组件为发布单元的对象模型,这种模型使各软件组件可以用一种统一的方式进行交互。COM 既提供了组件之间进行交互的规范,也…

LSTM-KDE的长短期记忆神经网络结合核密度估计多变量回归区间预测(Matlab)

LSTM-KDE的长短期记忆神经网络结合核密度估计多变量回归区间预测(Matlab) 目录 LSTM-KDE的长短期记忆神经网络结合核密度估计多变量回归区间预测(Matlab)效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.LSTM-KDE的长短期…

微服务入门学习笔记(黑马商城)

课程转跳:SpringCloud微服务Day1-01.微服务课程介绍_哔哩哔哩_bilibili 一、服务拆分 新建一个maven项目将商品服务拆分出去 更改包扫描 新建一个数据库用于商品服务,同样将表拆分出去 更改配置文件的服务名和数据库名 启动多个实例: 复制配…

解决Pycharm全局搜索与输入法简繁切换快捷键冲突问题

Pycharm中全局搜索快捷键Ctrl Shift F 如图所示: 微软输入法简繁切换快捷键设置: 解决办法: 关掉输入法的切换功能即可,或者更改简繁切换快捷键,毕竟简繁切换使用频率极低。

特别的时钟:上次那个时钟布局和计算有问题,重新修改一下,用JS创建180多个li标签,自动生成数字

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>特别的时钟</title> </head> <st…

Github Action Bot 开发教程

Github Action Bot 开发教程 在使用 Github 时&#xff0c;你可能在一些著名的开源项目&#xff0c;例如 Kubernetes&#xff0c;Istio 中看到如下的一些评论&#xff1a; /lgtm /retest /area bug /assign xxxx ...等等&#xff0c;诸如此类的一些功能性评论。在这些评论出现…

合泰杯(HT32F52352)RTC的应用(计时)--->掉电不丢失VBAT(代码已经实现附带源码)

摘要 在HT32F52352合泰单片机开发中&#xff0c;rtc在网上还是挺少人应用的&#xff0c;找了很久没什么资料&#xff0c;现在我根据手册和官方的代码进行配置理解。 RTC在嵌入式单片机中是一个很重要的应用资源。 记录事件时间戳&#xff1a;RTC可以记录事件发生的精确时间&…

踏上R语言之旅:解锁数据世界的神秘密码(四)

文章目录 前言一、多元线性回归1.多元线性回归模型的建立2.多元线性回归模型的检验 二、多元线性相关分析1.矩阵相关分析2.复相关分析 三、回归变量的选择方法1.变量选择准则2.变量选择的常用准则3.逐步回归分析 总结 前言 回归分析研究的主要对象是客观事物变量间的统计关系。…

Macs Fan Control Pro for mac激活版:macOS 平台的风扇控制软件

Macs Fan Control Pro是一款用于 macOS 平台的风扇控制软件&#xff0c;它允许用户监控和调整 Mac 电脑的风扇转速。以下是该软件的一些特点和功能&#xff1a; Macs Fan Control Pro for mac激活版下载 风扇监控&#xff1a;Macs Fan Control Pro 提供实时的风扇转速监控&…

vue+elementui(笔记)

vueelementui 表格 <div class"tableStyle"><el-table :data"pointsSettingsTableData" style"width: 70%" :stripe"true" size"mini"header-cell-class-name"headerClassName" :cell-style"{ tex…

Llama3 在线试用与本地部署

美国当地时间4月18日&#xff0c;Meta 开源了 Llama3 大模型&#xff0c;目前开源版本为 8B 和 70B 。Llama 3 模型相比 Llama 2 具有重大飞跃&#xff0c;并在 8B 和 70B 参数尺度上建立了 LLM 模型的新技术。由于预训练和后训练的改进&#xff0c;Llama3 模型是目前在 8B 和 …

应急响应-webserver

一.环境准备 1.镜像文件 2.任务说明 3.用户密码 二.应急响应 环境启动 1.导入镜像文件并修改网络 2.远程连接 ss -ntl #列出系统中运行的所有进程 用远程连接工具连接 任务一 Linux 服务日志默认存储在/var/log目录下 默认网站根目录&#xff1a;/var/www/html/ 1.查看…

【Doris系列】 SQL 多方言兼容

目前 Doris 引擎提供了两种方式实现对 sql 多方言的支持。即&#xff0c;提交指定方言的 sql&#xff0c;Doris 可以成功解析&#xff0c;并返回正确的计算结果。本文就简单来测试验证下这两种方式的效果。 一、Doris Sql Convertor Doris 官方提供了一个 sql convertor 工具…

ES全文检索支持拼音和繁简检索

ES全文检索支持拼音和繁简检索 1. 实现目标2. 引入pinyin插件2.1 编译 elasticsearch-analysis-pinyin 插件2.2 安装拼音插件 3. 引入ik分词器插件3.1 已有作者编译后的包文件3.2 只有源代码的版本3.3 安装ik分词插件 4. 建立es索引5.测试检索6. 繁简转换 1. 实现目标 ES检索时…

力扣33. 搜索旋转排序数组

Problem: 33. 搜索旋转排序数组 文章目录 题目描述思路复杂度Code 题目描述 思路 1.初始化左右指针&#xff1a;首先&#xff0c;定义两个指针left和right&#xff0c;分别指向数组的开始和结束位置。 2.计算中间值&#xff1a;在left和right之间找到中间位置mid。 3.比较中间值…