【机器学习】工程实践问题概述

机器学习实际应用时的工程问题与面临的挑战

276e22c9af185f6564deaf032bd8f012.png

ed9fa6f39bd3b7b9a372999bb823f715.png

一、实现细节问题

1.1 训练样本

训练样本与标注对各类机器学习算法和模型的精度影响

abe4772b85bdfab1ebc07e6c3c4b46e0.png

训练样本的选择对各类机器学习算法和模型的影响

be493d018d621db8b1aeab1fcbf40050.png

训练样本的优化

7241d852107c712ecf1d122cfeecbd86.png

如何进行数据增强?

fd5b4d1544d18827f85aada4c99bf39a.png

如何进行数据清洗?

8f4639d429fac265809054d6af3613a9.png

样本的标注对各类机器学习算法精度的影响

b1d2f26f63c1b06a4af9ba09d414ed1a.png

样本的对齐

b431b58ba4ce2e76e868eb6cb8a3bbd8.png

各个类的训练样本不均衡问题怎么解决

dee6975a273ee88fced520f81da8714e.png

1.2 特征预处理

如果特征向量各分量的取值范围相差很大,会影响算法的精度与训练时的收敛

7c049c8f950b5348a1b31f753ae634f7.png

特征预处理方法

adea00c0896edd3b6daeaccc4f93dd04.png

将特征向量归一化到单位长度

3ecfd21b89bfff55a49c2605348f3dcc.png

归一化可以通过学习实现

3cca0815ac4f21bd2000701f91fc1629.png

ac7ac45da987c92a8e908f5e69b47559.png

1.3  模型选择

没有免费的午餐定理

8550ab14817bb8d86f8e65f4f5c3c9fe.png

如何选择合适的算法和参数?

577822664c2dde1e5277317043a97110.png

剃刀原理

e794c197f61fad65c811846a8c1b7a87.png

剃刀原理在机器学习中的应用

ee81a28ab951a9910bcf624eb3dee334.png

1.4 过拟合问题

7d38df42bb516381a356d74a4d2a0f08.png

二、安全性问题

aada41e1551cbbe38b625631436ee2b9.png

2.1 对抗样本

0d507a0441dadfcedfe18771670e625b.png

神经网络拟合出的目标函数不连续

31916eee3322ccb68005763b4ebdc534.png

eca2ec9aed18fae4487098b8333ca550.png

如何找到扰动图像(如何找到一些能够使得机器学习模型产生错误的输出或行为的扰动图像)

b9004cb493f6992518da9eced6a64c80.png

什么是对抗样本攻击?

对抗样本攻击是一种在机器学习中的一种安全性问题,它是指利用一些经过特殊设计或修改的数据,来使得机器学习模型产生错误的输出或行为,从而达到攻击或干扰的目的。对抗样本攻击的原因是机器学习模型的泛化能力有限,对于一些看似微小的数据变化,可能会导致模型的输出发生巨大的变化。对抗样本攻击的影响是很严重的,它可能会威胁到机器学习模型的安全性和可靠性,甚至危害到人类的利益和社会的稳定。对抗样本攻击的应用领域很广泛,例如图像识别、自然语言处理、语音识别、生物识别、自动驾驶等。

人工生成对抗样本的方法

9b197f57e84c7f8e3f185ec16a98d44e.png

ffc58dcf2cdb7c16f19e1e41a6674bda.png

2.2 形成原因分析

线性模型拟合数据时哪些情况容易出现对抗样本问题

f64e73161251fbac69132fa55c3e3fd7.png

数据维度过高导致线性模型对抗样本问题

6fb1da75fdf566f4b41da117437a839a.png

激活函数与对抗样本问题

激活函数是神经网络中的一个重要的组成部分,它决定了神经元的输出和非线性特性。激活函数的选择会影响神经网络的性能和效果,例如准确性、收敛速度、泛化能力等。一些常用的激活函数有线性函数、Sigmoid函数、双曲正切函数、整流线性单元(ReLU)、Leaky ReLU、参数化整流线性单元(PReLU)、指数线性单元(ELU)、斜坡函数(Ramp)等。其中,一些激活函数是不连续的,例如ReLU、Leaky ReLU、PReLU、Ramp等,它们在某些点上的导数为0或无穷大,导致神经网络的输出也不连续。

激活函数与对抗样本问题的关系有以下几个方面:

  • 激活函数的非线性程度:激活函数的非线性程度是指激活函数的输出与输入的非线性关系的强度,它可以用激活函数的导数的变化率来衡量。激活函数的非线性程度会影响神经网络的对抗样本的抵抗能力,一般来说,激活函数的非线性程度越高,神经网络的对抗样本的抵抗能力越强,反之亦然。这是因为,激活函数的非线性程度越高,意味着神经网络的输出对输入的微小变化越不敏感,从而使得对抗样本的生成更困难。例如,Sigmoid函数的非线性程度较高,它的导数在中间区域变化较快,在两端区域变化较慢,这使得Sigmoid函数对输入的微小变化不太敏感,从而使得神经网络的对抗样本的抵抗能力较强。相反,线性函数的非线性程度较低,它的导数在任何区域都是恒定的,这使得线性函数对输入的微小变化非常敏感,从而使得神经网络的对抗样本的抵抗能力较弱。

  • 激活函数的连续性:激活函数的连续性是指激活函数的输出是否在整个输入域内都是连续的,即是否存在任何断点或跳跃。激活函数的连续性会影响神经网络的对抗样本的抵抗能力,一般来说,激活函数的连续性越高,神经网络的对抗样本的抵抗能力越强,反之亦然。这是因为,激活函数的连续性越高,意味着神经网络的输出对输入的微小变化越平滑,从而使得对抗样本的生成更困难。例如,Sigmoid函数和双曲正切函数的连续性较高,它们的输出在整个输入域内都是连续的,没有任何断点或跳跃,这使得Sigmoid函数和双曲正切函数对输入的微小变化比较平滑,从而使得神经网络的对抗样本的抵抗能力较强。相反,ReLU函数和Ramp函数的连续性较低,它们的输出在某些点上存在断点或跳跃,这使得ReLU函数和Ramp函数对输入的微小变化比较突变,从而使得神经网络的对抗样本的抵抗能力较弱。

  • 激活函数的饱和性:激活函数的饱和性是指激活函数的输出是否在某些区域内趋于恒定,即是否存在任何饱和区域。激活函数的饱和性会影响神经网络的对抗样本的抵抗能力,一般来说,激活函数的饱和性越低,神经网络的对抗样本的抵抗能力越强,反之亦然。这是因为,激活函数的饱和性越低,意味着神经网络的输出对输入的变化越敏感,从而使得对抗样本的生成更困难。例如,ReLU函数和Ramp函数的饱和性较低,它们的输出在任何区域都是线性增长的,没有任何饱和区域,这使得ReLU函数和Ramp函数对输入的变化比较敏感,从而使得神经网络的对抗样本的抵抗能力较强。相反,Sigmoid函数和双曲正切函数的饱和性较高,它们的输出在两端区域都趋于恒定,存在饱和区域,这使得Sigmoid函数和双曲正切函数对输入的变化比较不敏感,从而使得神经网络的对抗样本的抵抗能力较弱。

28faeb333d2fd4074d5da80e078aa045.png

通过哪种方式生成的样本导致大量的神经网络模型出现错分类

01cd91d7b63fa5b15583a0211099ec65.png

b98724656b3c1ca38efbab6e578f763d.png

三、实现成本问题

165cef5526399060224de4ddd541ced2.png

3.1 训练样本量

样本的收集和标注问题

e6bbe871e8674ccfcd71657443b95b74.png

小样本深度学习技术

c4b3901e576e9b1dca31aafc7909c107.png

4e025837738e75e8e5f8f5f48e7402fa.png

哪些情况适用于半监督学习

c36e66a5ec3b3419d0d849cbe4b52d00.png

3.2 计算与存储成本

16fd18363d7e5d9707f5c984176ac699.png

四、深度模型优化

深度模型优化的方法

1ccde0e02030b1a277154dbb4d81584c.png

减少存储空间和计算量的方法是对神经网络的模型进行压缩。有哪些实现手段?

4dd4c0ab77deec09ed26d6cb01be3d06.png

剪枝与编码 二值化网络  卷积核分离简述:

86a35e6c79310e497c916b3361e2a6e3.png

4.1 剪枝与编码

剪枝与编码是一种对神经网络模型进行压缩的方法,它包括以下两个步骤:

  • 剪枝:剪枝是指通过删除一些不重要或冗余的模型参数,例如权重、偏置、节点、层等,以减少模型的结构和规模。剪枝的目的是去除模型中的无用或有害的信息,提高模型的性能和精度。剪枝的方法有很多,例如最小化损失函数、最大化信息量、最小化梯度等。剪枝的结果是一个稀疏的模型,即模型中有很多的零值或接近零的值。

  • 编码:编码是指对剪枝后的模型参数进行编码,以减少模型的存储空间和计算量。编码的目的是利用模型的稀疏性,压缩模型的大小和复杂度。编码的方法有很多,例如哈夫曼编码、熵编码、矩阵分解、张量分解等。编码的结果是一个紧凑的模型,即模型中的参数用更少的位数或更简单的形式来表示。

剪枝与编码的优点是可以显著地减少模型的存储空间和计算量,而不影响模型的性能和精度。剪枝与编码的缺点是可能导致模型的不稳定和不可逆。

1b0d87d231f23f185348e0adde8b9f4d.png

Deep Compression深度模型压缩技术

8709ed8e40ef05683601ccb945786b2c.png

7dfe86bbd1972940a625171ddf4b42e0.png

稀疏矩阵存储方式 CSR  CSC

ff94e2cb23ab28d5b0ba26282d13f40c.png

k 均值算法类中心的初始化三种策略

3c1a327a86e2445451fd3f2c01cd688a.png

4.2 二值化网络

9c8a553408297538cf84dfd010b85b28.png

1e6d91af99af155368e73e82daab161f.png

72095ee3880602cd9de238ffaef7c599.png

二值神经网络的训练算法

0828cba7af27db84afe87bd28318117d.png

二值权重网络

99fe956667e9aef73b7f3f19f5483dbb.png

6bfe05d01debea1ab929a599b5a7383b.png

XNOR网络

fd701003ff3292afd529aff50f5163f5.png

b8b52f480d348da53d4865b66f72bc11.png

012c1dd260b3f8d9f9613535375035a0.png

4.3 卷积核分离

ae623814298a29c567c3d191d634e8b1.png

3b72f321da3d98d4d6238b9b74a037f1.png

919868187df8080cba6c816291b71a62.png

5660c531eaffe27fa77619e1f323e423.png

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

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

相关文章

数据结构(二)------单链表

制作不易,三连支持一下呗!!! 文章目录 前言一.什么是链表二.链表的分类三.单链表的实现总结 前言 上一节,我们介绍了顺序表的实现与一些经典算法。 但是顺序表这个数据结构依然有不少缺陷: 1.顺序表指定…

导航页配置服务Dashy本地部署并实现公网远程访问

文章目录 简介1. 安装Dashy2. 安装cpolar3.配置公网访问地址4. 固定域名访问 简介 Dashy 是一个开源的自托管的导航页配置服务,具有易于使用的可视化编辑器、状态检查、小工具和主题等功能。你可以将自己常用的一些网站聚合起来放在一起,形成自己的导航…

基于springboot宠物领养系统

摘要 随着社会的不断发展和人们生活水平的提高,宠物在家庭中的地位逐渐上升,宠物领养成为一种流行的社会现象。为了更好地管理和促进宠物领养的过程,本文基于Spring Boot框架设计和实现了一套宠物领养系统。该系统以用户友好的界面为特点&…

时序分析中的去趋势化方法

时序分析中的去趋势化方法 时序分析是研究随时间变化的数据模式的一门学科。在时序数据中,趋势是一种随着时间推移而呈现的长期变化趋势,去趋势化是为了消除或减弱这种趋势,使数据更具平稳性。本文将简单介绍时序分析中常用的去趋势化方法&a…

跟着cherno手搓游戏引擎【13】着色器(shader)

创建着色器类&#xff1a; shader.h:初始化、绑定和解绑方法&#xff1a; #pragma once #include <string> namespace YOTO {class Shader {public:Shader(const std::string& vertexSrc, const std::string& fragmentSrc);~Shader();void Bind()const;void Un…

怎样自行搭建幻兽帕鲁游戏联机服务器?

幻兽帕鲁是一款深受玩家喜爱的多人在线游戏&#xff0c;为了获取更好的游戏体验&#xff0c;许多玩家希望能够自行搭建幻兽帕鲁游戏联机服务器&#xff0c;本文将指导大家如何自行搭建幻兽帕鲁游戏联机服务器。 自行搭建幻兽帕鲁游戏联机服务器&#xff0c;阿里云是一个不错的选…

结构体的增删查改

结构体&#xff0c;是为了解决生活中的一些不方便利用c语言自带数据类型来表示的问题。例如表示一个学生&#xff0c;那么学生这个个体假如用c语言自带数据类型怎么表示呢。可以使用名字&#xff0c;也就是字符数组&#xff1b;也可以使用学号&#xff0c;也就是int类型。但是这…

iOS 面试 Swift基础题

一、Swift 存储属性和计算属性比较&#xff1a; 存储型属性:用于存储一个常量或者变量 计算型属性: 计算性属性不直接存储值,而是用 get / set 来取值 和 赋值,可以操作其他属性的变化. 计算属性可以用于类、结构体和枚举&#xff0c;存储属性只能用于类和结构体。存储属性可…

检测头篇 | 原创自研 | YOLOv8 更换 SEResNeXtBottleneck 头 | 附详细结构图

左图:ResNet 的一个模块。右图:复杂度大致相同的 ResNeXt 模块,基数(cardinality)为32。图中的一层表示为(输入通道数,滤波器大小,输出通道数)。 1. 思路 ResNeXt是微软研究院在2017年发表的成果。它的设计灵感来自于经典的ResNet模型,但ResNeXt有个特别之处:它采用…

MySQL-窗口函数 简单易懂

窗口函数 考查知识点&#xff1a; • 如何用窗口函数解决排名问题、Top N问题、前百分之N问题、累计问题、每组内比较问题、连续问题。 什么是窗口函数 窗口函数也叫作OLAP&#xff08;Online Analytical Processing&#xff0c;联机分析处理&#xff09;函数&#xff0c;可…

Android 基础技术——列表卡顿问题如何分析解决

笔者希望做一个系列&#xff0c;整理 Android 基础技术&#xff0c;本章是关于列表卡顿问题如何分析解决 onBindViewHolder 优化 是否有耗时操作、重复创建对象、设置监听器、findViewByID、局部的动画对象等操作 是否存在内存泄漏 发生内存泄露&#xff0c;会导致一些不再使用…

游戏开发丨基于Tkinter的扫雷小游戏

文章目录 写在前面扫雷小游戏需求分析程序设计程序分析运行结果系列文章写在后面 写在前面 本期内容 基于tkinter的扫雷小游戏 所需环境 pythonpycharm或anaconda 下载地址 https://download.csdn.net/download/m0_68111267/88790713 扫雷小游戏 扫雷是一款广为人知的单…

RabbitMQ“延时队列“

1.RabbitMQ"延时队列" 延迟队列存储的对象是对应的延迟消息&#xff0c;所谓“延迟消息”是指当消息被发送以后&#xff0c;并不想让消费者立刻拿到消息&#xff0c;而是等待特定时间后&#xff0c;消费者才能拿到这个消息进行消费 注意RabbitMQ并没有延时队列慨念,…

OpenCV-29 自适应阈值二值化

一、引入 在前面的部分我们使用的是全局阈值&#xff0c;整幅图像采用同一个数作为阈值。当时这种方法并不适应于所有情况。尤其是当同一幅图像上的不同部分具有不同的亮度时。这种情况下我们需要采用自适应阈值。此时的阈值时根据图像上的每一个小区域计算与其对应的阈值。因此…

【幻兽帕鲁】开服务器,高性能高带宽(100mbps),免费!!!【学生党强推】

【幻兽帕鲁】开服务器&#xff0c;高性能高带宽&#xff08;100mbps&#xff09;&#xff0c;免费&#xff01;&#xff01;&#xff01;【学生党强推】 教程相关视频地址&#xff1a;https://www.bilibili.com/video/BV16e411Y7Fd/ 目前幻兽帕鲁开服务器有以下几套比较性价比的…

研发日记,Matlab/Simulink避坑指南(九)——可变数组应用Bug

文章目录 前言 背景介绍 问题描述 分析排查 解决方案 总结归纳 前言 见《研发日记&#xff0c;Matlab/Simulink避坑指南(四)——transpose()转置函数Bug》 见《研发日记&#xff0c;Matlab/Simulink避坑指南(五)——CAN解包 DLC Bug》 见《研发日记&#xff0c;Matlab/Si…

qemu + vscode图形化调试linux kernel

一、背景 使用命令行连接gdb 在调试时&#xff0c;虽然可以通过tui enable 显示源码&#xff0c;但还是存在设置断点麻烦&#xff08;需要对着源码设置&#xff09;&#xff0c;terminal显示代码不方便&#xff0c;不利于我们学习&#xff1b;另外在gdb 下p命令显示结构体内容…

重构改善既有代码的设计-学习(六):处理继承关系

1、函数上移&#xff08;Pull Up Method&#xff09; 无论何时&#xff0c;只要系统内出现重复&#xff0c;你就会面临“修改其中一个却未能修改另一个”的风险。通常&#xff0c;找出重复也有一定的难度。 所以&#xff0c;某个函数在各个子类中的函数体都相同&#xff08;它们…

Pandas--数据结构 - Series(3)

Pandas Series 类似表格中的一个列&#xff08;column&#xff09;&#xff0c;类似于一维数组&#xff0c;可以保存任何数据类型。 Series 特点&#xff1a; 索引&#xff1a; 每个 Series 都有一个索引&#xff0c;它可以是整数、字符串、日期等类型。如果没有显式指定索引&…

Android Automotive:在路上释放 Android 操作系统的力量

Android Automotive&#xff1a;在路上释放 Android 操作系统的力量 Android 在汽车行业的历程车载信息娱乐系统 (IVI) 的演变汽车中的 Android&#xff1a;演变和进步Android 汽车操作系统的崛起Polestar 2&#xff1a;开创 Android 汽车体验Android 开源项目 (AOSP) 及其他项…