深度学习--机器学习相关(2)

news2024/11/17 5:36:22
1.适     

        适应性矩估计(Adaptive    Moment    Estimation,Adam)是一种可以代替传统的梯度下降 (SGD  MBGD) 的优化算法。Adam算法结合了适应性梯度算法和均方根传播的优点。

        Momentum  在学习机器学习时是很可能遇到的,是动量的意思。动量不是速度和学习率,应该说是类似于加速度。

AdaGrad(适应性梯度算法)

        适应性梯度算法的特点在于:独立地调整每一个参数的学习率。在SGD 中,所有的参数都是用相同的学习率η,而AdaGrad 的特点就是可以独立地调整每一个参数的学习率。AdaGrad 给每一个参数都设置独立的学习率,让梯度大的参数的学习率较小,梯 度小的学习率较大,来加快模型的收敛速度。

 RMSProp(均方根传播)

        均方根传播的核心是通过指数衰减来丢弃很久以前的信息。这样的话,过去的信息对现在的影响就会不断减弱,保证学习率不会太小。

正则化与范式

        正则化(Regularization)  是防止模型过拟合,增强模型的泛化能力。范式(Paradigm), 主要有3个: L0、L1和 L2。在机器学习领域中,范式是一种正则化的方法,正则化还有很多其他方法,比如:数据增强、Dropout Earlystopping。

1 .   

        在一个神经网络中,可以有成百上千的参数,但是并不是每一个参数都是有用的,不是每一个参数都可以体现数据的本质特征。神经网络学习数据的时候,能学到数据的本质,也能学到一些没什么意义的东西。例如,考试卷子上第3个选择题选B, 模型可以学到真正的知识,从而正确地推导这道题的答案,这个就是模型的泛化能力,也是想要的能力;模型也可能学到考试卷子的第3题就选B。 这个就是过拟合情况,没学到本质。正则化就是帮助模型学习泛化能力,避免过拟合的手段。

2.L0 L1 L2  范 式

(1)L0范式就是限制模型参数中非零参数的个数;

(2)L1 范式表示每一个参数绝对值的和;

(3)L2 范式表示每一个参数的平方和的开方值。

可以把范式看成附加到模型上的一些限制条件,让模型拘束着去学习泛化能力。L0 式就是限制参数的非零个数,也可以说这是实现模型参数的稀疏化; L1  L2 会让模型的参数值较小。为什么较小参数值好呢?因为神经网络参数很多,没有限制的话,模型会尽可能地让所有的训练集都预测正确,这样往往是过拟合了,通过限制,让模型只能实现大多数

2.L0 L1 L2  范 式

(1)LO 范式就是限制模型参数中非零参数的个数;

(2)L1 范式表示每一个参数绝对值的和;

(3)L2 范式表示每一个参数的平方和的开方值。

可以把范式看成附加到模型上的一些限制条件,让模型拘束着去学习泛化能力。LO  式就是限制参数的非零个数,也可以说这是实现模型参数的稀疏化; L1  L2 会让模型的 参数值较小。为什么较小参数值好呢?因为神经网络参数很多,没有限制的话,模型会尽可 能地让所有的训练集都预测正确,这样往往是过拟合了,通过限制,让模型只能实现大多数样本的正确预测,这样就可以自发地避免一些对噪声数据、异常数据的学习,从而学到真实的正确的本质。

其他的正则化手段

        数据增强一般在图像处理中,比如对图像做一些增强处理,常见的有:随机旋转、随机 平移、随机剪裁,让数据集尽可能地丰富多彩一些。Dropout 就是随机让一些神经元失活,不起效果。Earlystopping是让模型提早停止训练。因为实现中不知道模型到底需要训练多少个 epoch才能刚好达到最强泛化能力,而又不过拟合,所以就这是一个Earlystopping,例如让验证集的预测准确率在5个epoch 内都不再提升了,就说明模型训练可以,然后把5个 epoch之前的模型文件作为最终的训练好的模型。

标签平滑正则化

        标签平滑正则化(Label  Smoothing  Regularization,LSR)是通过向标签中添加噪声进行约束的方法。例如, 一个图像分类问题,总共有3个类别,猫狗鸟,假设一个图片是狗,那么类别就是1。把这个标签经过one-hot 编码转换,变成[0,1,0]。LSR 就是平滑了 one-hot 编码,变成 [0.1,1,0.1]。

        受限玻尔兹曼机(Restricted  Boltzman  Machine,RBM)的结构看起来就是两层的全连接层,但略有差别。

        第一层(x 层)称为可见层,也有的称为输入层,第二层称为隐层或者隐藏层。RBM  所以称为受限的,是因为同一层之间神经元没有连接。

注意相比一般的全连接网络来说没有输出层。

        RBM中权重是双向的,而一般神经网络中权重一般都是单向的、前向传播 的。这是因为RBM 在训练的时候不仅仅包括前向传播和梯度下降,还多了一个反向传播的过程(此处的反向传播不是常说的反向传播梯度下降的反向传播)。RBM  是一种无监督学习的模型,并且发现 RBM  与 AutoEncoder 特别相近。而深度信念网络(Deep Belief Network,DBN)就是多个 RBM  的堆叠。训练过程主要分两步。先训练第一层和第二层,假装第三层不存在。训练好一、二层之后,固定住一、二层的权重值,然后训练二、三层,就这样把所有层训练完。最后整个DBN 一起训练,进行参数的微调。

        RBM现在用的不是很多,RBM  AE 相近, DBN  Stack  AE模型非常相近。

3.图片的RGB和 HSV

        一张黑白图片是由像素点组成的。把每一个像素点上的黑白颜色划分成256个级别,0 是黑色,255是白色。这样, 一张黑白图片就是一个矩阵,这个矩阵上每一个元素都对应一 个像素的黑白强弱值。而在计算机看到的其实不是人眼看到的图片,而是这些表示图片颜 色强度的矩阵。   一张彩色图片同样是由像素点组成的,但是每一个像素点都是彩色的。任意一种颜色可以通过光的三原色(红色、绿色、蓝色,即RedGreenBlue)的某种组合来实现,所以类似黑白强度矩阵,彩色图片可以分布三个大小相同的强度矩阵,分别表示红色强度、绿色强度和蓝色强度。这样组合起来就是一张任意色彩的彩色图片。

        有时还会看到图片的HSV, 这是根据颜色的直观特性创建的,通俗来讲就是H表示色,S 表示饱和度,V   表示明度。色H 取值范围是0°~360°, 0°表示红色,120°是绿色,240°是蓝色,黄色60°,青色180°,品红300°,这个色调就是光谱色。 饱和度S 的取值范围是0%~100%,是光谱色(色调)与白色混合的程度,假如饱和度为  0%,就是白色;如果是100%,就是光谱色。明度V 表示颜色明亮的程度,形容一种反射程度,如果是0,那么没有反射能力,图片是黑色的,如果是1,反射能力非常强,看起来白茫茫 一片。

        用Python 来读取一张图片的RGB矩阵

import cv2
import numpy as np
image_path = 'C:\\Users\\hedong\\Pictures\\Saved Pictures\\9.4.webp'  # 请确保这里有图片文件的完整路径和文件名
img = cv2.imread(image_path)

if img is not None:
    print(img.shape)  # 打印图片的维度
else:
    print("Error: Image not found or the path is incorrect.")

  下面把 RGB转换为HSV

import cv2
import numpy as np
image_path = 'C:\\Users\\hedong\\Pictures\\Saved Pictures\\9.4.webp'  # 请确保这里有图片文件的完整路径和文件名
img = cv2.imread(image_path)
hsv_img=cv2.cvtColor(img,cv2.COLOR_RGB2HSV)#使用 cv2.cvtColor 函数将图片从 RGB 颜色空间转换到 HSV 颜色空间
print('色调最大值:',np.max(hsv_img[:,:,0]))
print('饱和度最大值:',np.max(hsv_img[:,:,1]))
print('明度最大值:',np.max(hsv_img[:,:,2]))
#使用 numpy 的 np.max 函数分别计算 HSV 图像中色调(Hue)、饱和度(Saturation)、明度(Value)通道的最大值。
#在图像处理中,HSV颜色空间的0、1、2分别代表色调(Hue)、饱和度(Saturation)和亮度(Value)。

        如果使用Python  Matplotplot.pyplot.imshow来绘制 RGB 图片,会出现色差,这是因为读取cv2的图片是RGB 的,而plt.imshow  绘制图片是用BGR 图片,所以,可以这样转换:

#进一步转换
img=img[:,:,[2,1,0]]
#或者
img_hsv=cv2.cvtColor(img,cv2.COLOR_RGB2BGR)

在图像处理中,使用 `[:,:,:]` 这种索引方式访问图像数据时,这三个冒号 `:` 表示:

1. 第一个 `:` 表示图像的所有行。
2. 第二个 `:` 表示图像的所有列。
3. 第三个 `:` 表示图像的所有颜色通道。

4.网中网结构

神经网络中的神经网络(Network  In Network,NIN)

通过增加1×1卷积和激活函数,来提升模型效果。之前的单个3×3卷积层称为Conv 层。而使用了网中网增加了两组1×1卷积层和激活函数的称为多层感知机(Multiple   Layer   Perceptron,MLP)。NIN 架构是一种经典的卷积神经网络设计,它通过在卷积层后面添加 1x1 卷积层来增加网络的非线性能力和表征能力。

  • in_channels:输入特征图的通道数。
  • out_channels:输出特征图的通道数,也就是卷积层的滤波器(卷积核)数量。
  • kernel_size:卷积核的大小,通常是一个整数或一个由两个整数组成的元组(对于正方形卷积核)。
  • stride:卷积操作的步长,它决定了卷积核移动的间隔。
  • padding:边缘填充的大小,用于控制输出特征图的尺寸
    def NIN_block(in_chanels,out_chanels,kernel_sizeStride,padding):
        blk=nn.Sequential(
            nn.Conv2d(in_chanels,out_chanels,kernel_size,Sride,padding),
            nn.ReLU(),
            #模拟全连接层的多成感知机
            nn.Conv2d(out_chanels,out_chanels,kernel_size=1),
            nn.ReLU(),
            nn.Conv2d(out_chanels,out_chanels,kernel_size=1),
            nn.ReLU(),
        )
        return blk
    #之前的卷积层
    nn.Conv2d(in_chanels,out_chanels,kernel_size,Stride,padding),
    #现在改成NIN
    NIN_block(in_chanels,out_chanels,kernel_size,Stride,padding)

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

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

相关文章

智能提醒助理系列-AIGC模型如何对接公众号2-扣子

本系列文章记录“智能提醒助理”wx公众号 建设历程。 一、需求出发点 在公众号中对接上大模型。 二、实现路径分析 上次使用直接调用火山引擎大模型的方案:智能提醒助理系列-AIGC模型如何对接公众号 近期 跟朋友跟朋友交流的过程中发现,通过扣子制作…

一招制胜!掌握 Python 中pip的8个必备命令

在Python编程中,pip 是一个非常重要的工具。它是Python包管理器,帮助你安装、更新、删除和管理Python软件包。如果你想要轻松地使用第三方库(比如requests、numpy、pandas),就离不开pip。 什么是 pip? pip…

Midjourney提示词——黑神话悟空角色生成提示词!

应广大群友和粉丝要求,我们也来盘一盘最近大火的黑神话悟空的提示词。 这里给大家准备了一份关于AI绘画详细的资料包,扫描下方二维码皆可获取! 1号齐天大圣 The full-body portrait of the Monkey King in-game, clad in intricate war rob…

Java运行环境的下载、安装、配置与运行

一、实验目的及要求 目的:掌握如何下载java JDK软件包,如何设置Java程序的运行环境,如何编写与运行Java程序,了解Java概貌。 要求: 1、安装Java JDK软件包; 2、练习编写简单的Java Application程序并掌握…

2.5 SQL注入之文件读写

SQL注入之文件读写 文件读写注入的原理 就是利用文件的读写权限进行注入,它可以写入一句话木马,也可以读取系统文件的敏感信息。 文件读写注入的条件 高版本的MYSQL添加了一个新的特性secure_file_priv,该选项限制了mysql导出文件的权限 …

步进、闭环、交流伺服三类电机驱动方案对比

1、步进、闭环、交流伺服产品对比 2.4步进电机特点 低速力矩大,转矩会随着转速的提高而降低,一般在800rpm以上力矩下降加快,精度是步距角的3%~5%,整圈没有累积误差,两相混合步进电机精度为0.18;步进电机采…

黑神话悟空小黄龙怎么打 妖王小黄龙攻略

​黑神话悟空小黄龙是游戏中难度较高的BOSS之一,击败他可以解锁[龙]变身、解锁橙武[飞龙宝杖],如果想要获得这两个法宝却又不知道如何击败小黄龙的话,一起来看看下面这篇攻略吧。 一、BOSS位置 【盘丝岭】-【盘丝洞】-【堕龙壁】。 二、Boss…

深入探索Springboot2.x依赖注入Bean的CGLIB代理类

问题起源 笔者最近在做一个功能,使用了工厂模式/策略模式设计的,定义了一个接口,下面有多种实现并通过Component注解定义为Bean,在运行时根据不同的业务调用不同实现的Bean,所以需要在运行时动态获取Bean。因此&#…

Keil5如何生成静态库.lib文件

一、这是一个Keil5工程 二、我想把这个文件输出成一个.lib文件,里面有一个加法函数,其它工程想实现加法只需调用这个函数即可 三、因为我只需要输出这一个文件成.lib,所以我需要屏蔽其它文件 1、右键其它文件,点击这个 2、把这个…

欧元承压续跌,黄金市场波动待指引

欧元兑美元延续跌势,季节性因素加剧市场担忧 ,欧元/美元汇率继续徘徊在两周低点附近,美元的强势表现以及即将公布的关键经济数据共同施压欧元。市场分析指出,欧元在9月的历史表现普遍不佳,尤其是过去五年连续下跌的记录…

深入理解神经网络:从基础到深度学习

深入理解神经网络:从基础到深度学习 前言1. 神经元模型的构建代码示例:M-P神经元模型 2. 感知机与多层网络的实现代码示例:简单感知机模型 3. 误差逆传播算法(BP)的实践代码示例:BP算法的简化实现 4. 探索全…

Altium Designer爬虫工具/网页信息获取工具

使用Altium Designer脚本系统的爬虫功能,可以有效的提高数据处理能力,作为新质生产力工具,可以在很多方面使用到爬虫功能或者网页信息读取功能,如一份原理图文档有很多的物料,需要整理这些物料的价格、是否有现货和数据…

HiGPT:异构图语言模型的突破

人工智能咨询培训老师叶梓 转载标明出处 人工智能领域的一大挑战是如何从海量复杂的数据中提取有价值的信息,特别是在处理异构图数据时。异构图由多种类型的节点和边组成,它们之间的相互关系丰富而复杂。传统的图神经网络(GNNs)在…

2024最新PyCharm下载安装激活汉化教程!(附激活码)

激活码(文末附带精品籽料): K384HW36OB-eyJsaWNlbnNlSWQiOiJLMzg0SFczNk9CIiwibGljZW5zZWVOYW1lIjoibWFvIHplZG9uZyIsImxpY2Vuc2VlVHlwZSI6IlBFUlNPTkFMIiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6I…

【NAT】NAT:实现网络地址转换

目录 什么是NAT?NAT的功能NAT的弊端NAT的工作原理NAT分类SNAT(源NAT)DNAT(目的NAT)双向NAT 什么是NAT? NAT是一种在IP数据包传输过程中,将源IP地址或目标IP地址在私有网络和公有网络之间进行转…

芯片设计五部曲之四 | 电磁玄学宗师——射频芯片

去年我们发布的《芯片设计五部曲》,还挺受欢迎的: 芯片设计五部曲之一 | 声光魔法师——模拟IC 芯片设计五部曲之二 |‍ 图灵艺术家——数字IC 芯片设计五部曲之三 | 战略规划家——算法仿真 不少人辗转问过我们下一集什么时候出。 放心,…

U盘不小心格式化了怎么恢复?别慌!教你快速恢复

在日常工作和生活中,U盘已成为我们存储和传输数据的重要工具。然而,有时由于误操作或其他原因,我们可能会不小心格式化U盘,导致重要数据的丢失。这时,如何恢复这些数据就显得尤为重要。下面,我们将介绍几种…

JS笔记

9.3 1.数据类型 1.1.Object 对象 对象:一切皆对象 面向过程:按照时间的发生顺序,从上往下依次执行 对象对象:指挥对象做某件事 1.2.数据类型的检测 1.3.数据类型转换 1.自动转换:js会通过关系运算符&#xff0c…

基于asp.net的简单的留言板管理系统附源码

今天给大家分享一个基于asp.net的留言板管理系统源码,SQLserver数据库,VS开发,具体的模块如下: 需要的盆友可以自己下载哈,链接放在下面了 链接:https://pan.quark.cn/s/12021e583fd7

使用豆包 MarsCode 编程助手,兑换 4090 显卡!

关于豆包 MarsCode 编程助手 豆包 MarsCode 编程助手是一个智能化的编程工具,通过与 AI 的对话,用户可以轻松获取编程建议、解决问题并提高编程效率。无论您是编程新手还是经验丰富的开发者,MarsCode 都能为您提供极具价值的帮助。 点击直达…