关于大模型学习中遇到的4

来源:网络

相关学习可查看文章:Transformer and Pretrain Language Models3-4​​​​​​​

什么是MLP?

MLP是多层感知器(Multilayer Perceptron)的缩写,

多层感知机(MLP)是一种人工神经网络(ANN)的一种,也称为多层前馈网络(MLFN)、深度前馈神经网络(DFNN)、回归神经网络(RNN),是机器学习中一种有监督学习算法。MLP由输入层、输出层和一个以上的隐藏层构成,每一层由一组神经元组成,隐藏层可有多个,当然也可以没有。

MLP的输入信号从输入层传入第一个隐藏层,神经元从输入层接收输入信号,通过局部激活函数(也称激励函数)来运算,激励函数可以保证每一层输出信号经过变换以后不管输入信号多大,样本空间映射都处于一个可控制的范围内,决定了输出信息的范围并维持其唯一性,从而保证模型的准确性和稳定性以及可学习性。

隐藏层和隐藏层之间采用权重变换,权重对模型的性能至关重要,应尽量使网络能得到良好的收敛效果。MLP模型的权重表征是一个非线性系统,因此利用梯度下降法来训练权重参数,求解一定的损失函数或者误差函数。训练过程中,不断更新权重(更新权重不需要手动设置,而是自动实现),使得网络的误差最小(即损失函数最小),让网络能够按照设定的目标达到预期的性能。

MLP在机器学习任务中有很强的适用性,将其用于分类任务的时候,使用的激励函数一般选择sigmoid函数等单位阶跃函数,sigmoid函数可以将输入信号压缩映射到(0,1),然后输出层使用概率输出,根据概率确定分类结果,也可以使用多个sigmoid函数,以及sigmoid函数组合实现多分类。另一个更简单的方法是单层神经网络(SLFN),可以通过修改激励函数的函数形式以及网络结构来实现不同的训练方法,使MLP能够处理非线性特征数据。

MLP由于其好用性、性能稳定,有几十年的历史,被广泛地应用在分类任务、回归任务、故障诊断任务(发电机状态监控)以及贝叶斯估计等方面。MLP具有计算复杂度高、训练耗时长,训练过程中模型过拟合,解决方案包括Dropout、L1正则化和L2正则化等众多准确性性能优化技术。


什么是有监督学习?

机器学习范式

有监督学习是一种机器学习范式,它涉及使用带标签的数据集来训练模型,以便能够根据输入数据产生正确的输出。具体来说:

  • 监督学习的目标是根据给定的输入数据,学习到一个模型,使得该模型能够在新的输入数据到来时,准确地预测出相应的输出。
  • 这种学习方式依赖于外部提供的“教师”或者已知正确输出结果的资源,通过对这些资源的运用,系统可以学习和调节自己的参数。
  • 监督学习的学习过程包括从标注数据中学习预测模型,这些标注数据代表了输入输出之间的关系。模型本身则是定义在特征空间上的,并且通常用于处理连续或离散的输入输出变量。3
  • 监督学习可以分为不同的类型,如回归问题和分类问题,这取决于输入输出变量的类型。此外,如果输入输出变量是序列,那么还可以考虑标注问题。
  • 在监督学习中,通常会假设输入与输出遵循某种联合概率分布,这是监督学习关于数据的基本假设之一。

综上所述,有监督学习是一种通过使用标记的训练数据来学习模型的方法,目的是实现对新数据的有效预测和分类。

注:通俗来说,有监督学习就是双语教学,一边说英文一边用中文表达这句英文的意思,让你能够一下就理解这句英文在讲什么,这个中文就是给的对应的一个标签,能立即明白。而无监督学习就是全英文教学,需要靠自己去理解,并没有给出对应的标签。


什么是正则化?

正则化是一种用于机器学习的技术,特别是在处理过拟合问题时非常有效。它的主要思想是通过在模型的损失函数中添加额外的正则化项(如L1范数或L2范数)来控制模型的复杂度,从而避免模型过度拟合训练数据。这种方法可以提高模型的泛化能力和稳定性,确保模型能够在未知的数据上进行良好的预测。

正则化可以通过不同的方式实现,例如通过增加模型的权重衰减(L1正则化),或者在训练过程中对输入数据执行标准化操作(L2正则化)。这些正则化方法有助于找到既能较好拟合训练数据又能较少过拟合的模型参数。此外,正则化还可以通过移除冗余特征来实现,即将那些对模型贡献较小的特征从模型中去除,以此来简化模型并提高其预测能力。

总结来说,正则化是一种重要的机器学习技巧,它通过对模型施加额外的限制来克服过拟合问题,同时保持或提高模型的预测性能。


什么是ResNet?

ResNet是一种用于​​​​​​​图像识别的深度残差网络,是卷积神经网络的一种重要模型,ResNet开创性地引入了残差连接,解决了深层网络在训练过程中梯度弥散的问题,使深层模型的训练更加简便,同时也验证了随着网络层次的加深模型能够获得更好的性能

模型结构

整体架构

ResNet有许多模型:如ResNet34, ResNet50,不过这些基本上都是根据层数来命名的,ResNet网络模型一般是开始有一层卷积层来提取图像特征,再经过池化,然后进入残差块中(ResNet的主要结构),最后再经过池化层与全连接层被输出出来,下图是一个ResNet34的模型示意图

在这里插入图片描述

在这里插入图片描述

残差块

下面是resnet的关键结构——残差块,它由两个卷积层和一个直连通路组成

在这里插入图片描述

在这里插入图片描述

右侧曲线被称为直连通路,直连通路有助于解决梯度消失的问题,因为此时当神经网络反向传播求权重时,因为这个多项式即使前一部分的梯度消失了,后一部分还能保证梯度的存在

模型特性

  • 直连通路的存在使得模型可以保留原始数据信息,同时可以解决梯度弥散的问题(梯度消失)
  • 可以通过堆叠增加网络层数,不过当模型过于深时,性能可能下降,经原作者试验,在1000层左右的范围内,模型性能随层数增加而增加
  • 直连通路的结果与卷积层结果直接相加,使得模型在训练过程中只需要拟合不同层网络输出值与输入值的残差值,而无需直接拟合网络输出值,大大降低了模型学习的难度,有助于模型的收敛

示例代码

以下是一个简化的 ResNet 模型中,有以下主要组件:

  • 卷积层(Conv2D):模型开始的卷积层,用于提取图像特征。
  • 最大池化层(MaxPool):提取图像中显著的特征
  • 4 个残差块(residual_block):每个残差块包括两个卷积层。
  • 全局平均池化层(GlobalAveragePooling2D):用于将每个通道的特征平均化,产生一个固定大小的输出。
  • 全连接层(Dense):输出层,根据任务的不同可能有不同的神经元数量。
import tensorflow as tf
from tensorflow.keras import layers, Model

def residual_block(x, filters, kernel_size=3, stride=1, conv_shortcut=False):
    shortcut = x

    if conv_shortcut:
        shortcut = layers.Conv2D(filters, kernel_size=1, strides=stride, padding='same')(shortcut)
        shortcut = layers.BatchNormalization()(shortcut)

    x = layers.Conv2D(filters, kernel_size, strides=stride, padding='same')(x)
    x = layers.BatchNormalization()(x)
    x = layers.Activation('relu')(x)

    x = layers.Conv2D(filters, kernel_size, padding='same')(x)
    x = layers.BatchNormalization()(x)

    x = layers.add([x, shortcut])
    x = layers.Activation('relu')(x)

    return x

def resnet(input_shape, num_classes=10):
    inputs = tf.keras.Input(shape=input_shape)

    x = layers.Conv2D(64, 7, strides=2, padding='same')(inputs)
    x = layers.BatchNormalization()(x)
    x = layers.Activation('relu')(x)
    x = layers.MaxPooling2D(3, strides=2, padding='same')(x)

    x = residual_block(x, 64)
    x = residual_block(x, 64)
    x = residual_block(x, 128, stride=2)
    x = residual_block(x, 128)
    x = residual_block(x, 256, stride=2)
    x = residual_block(x, 256)
    x = residual_block(x, 512, stride=2)
    x = residual_block(x, 512)

    x = layers.GlobalAveragePooling2D()(x)
    x = layers.Dense(num_classes, activation='softmax')(x)

    model = Model(inputs, x)

    return model

# 创建ResNet模型
model = resnet(input_shape=(224, 224, 3), num_classes=1000)

# 打印模型概要
model.summary()

什么是残差连接?

残差连接(Residual Connection)是深度神经网络中的一个重要概念,它最初被应用于Deep Residual Learning中,并显著提升了神经网络的性能。这种连接方式也被称为跳跃连接或直连,其核心思想是在神经网络结构中加入一种跨层的连接机制,即将前一层输出作为后续各层的输入的一部分。这样的设计有助于保留信息,避免在信息传递过程中出现梯度消失或梯度爆炸的问题,进而加速模型的收敛。

具体的实现方式是将当前层的输出与前一层输出的叠加相加,形成新的输出,然后将其传入下一层进行计算。数学上,残差连接可以表示为:$y = f(x) + x$,其中$x$代表当前层的输入,$f(x)$代表当前层的输出,而$y$则是包含残差的输出。在向前传播时,整个结构的输出会被直接送入下一层;在反向传播时,由于包含了残差项,梯度的回传能够更有效地更新各个层,进一步优化网络的参数。

残差连接的应用非常广泛,它在许多现代深度神经网络架构中都有所体现,如ResNet和DenseNet等,这些架构都在图像分类和目标检测等领域展现了出色的性能。

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

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

相关文章

Tensorflow2.0笔记 - tensor的合并和分割

主要记录concat,stack,unstack和split相关操作的作用 import tensorflow as tf import numpy as nptf.__version__#concat对某个维度进行连接 #假设下面的tensor0和tensor1分别表示4个班级35名同学的8门成绩和两个班级35个同学8门成绩 tensor0 tf.ones([4,35,8]) tensor1 tf…

基于SpringBoot Vue医院门诊管理系统

大家好✌!我是Dwzun。很高兴你能来阅读我,我会陆续更新Java后端、前端、数据库、项目案例等相关知识点总结,还为大家分享优质的实战项目,本人在Java项目开发领域有多年的经验,陆续会更新更多优质的Java实战项目&#x…

[zookeeper] SASL(Simple Authentication and Security Layer) 用户名密码认证配置

使用zookeeper zkCli.sh 连接 zookeeper服务时,默认裸连,晓得ip与端口之后即可连接zookeeper服务,本文使用SASL 用户名密码配置服务端与客户端,在zkCli连接前,服务端配置xxxjaas.conf保存用户名密码,客户端…

【无标题】vue自定义表单验证的时候报错TypeError: callback is not a function

今天遇到一个奇怪的bug 我在使用ant-design-vue组件库自定义表单验证的时候出现的 在ant-design-vue组件库里面定义的自定义校验规则是这样的validator 在网上找了很多资料里面不是说 1.检查自定义函数是否有问题 2.检查校检字段信息 可是我两个都看了并没有问题 但是还是一直…

C# 控制台进度条

最简单 namespace ProcessStu01 {internal class Program{static void Main(string[] args){for (int i 1; i < 100; i){Console.Write("\r{0,3}%",i);Thread.Sleep(50);}}} }第三方库 https://github.com/Mpdreamz/shellprogressbar using ShellProgressBar…

突发!边缘云领域或迎新玩家:ST同洲拟收购靠谱云,行业格局或将重塑

免责声明&#xff1a;本文所提供的信息及观点仅供边缘计算资讯讨论之用&#xff0c;不构成对任何人的投资建议。投资行为涉及风险&#xff0c;投资者应自行进行充分的市场调研和风险评估。入市投资需谨慎&#xff0c;切勿依赖本文内容作出任何投资决策。 边缘计算社区注意到上市…

【进口控制器替代】Intel Atom + Kintex-7 70T FPGA,4槽CompactRIO控制器

1.30 GHz双核CPU&#xff0c;2 GB DRAM&#xff0c;4 GB存储容量&#xff0c;-20 C - 55 C&#xff0c;Kintex-7 70T FPGA&#xff0c;4槽CompactRIO控制器 cRIO-9040是一款坚固耐用且可定制的高性能嵌入式控制器&#xff0c;搭载了Intel Atom双核处理&#xff0c;提供NI-DAQmx…

【LeetCode力扣】面试题 17.14. 最小K个数(top-k问题)

目录 1、题目介绍 2、解题思路 2.1、优先队列解法 2.2、top-k问题解法 1、题目介绍 原题链接&#xff1a;面试题 17.14. 最小K个数 - 力扣&#xff08;LeetCode&#xff09; 题目要求非常简短&#xff0c;也非常简单&#xff0c;就是求一组数中的k个最小数。 2、解题思路 …

Apache Zeppelin结合Apache Airflow使用1

Apache Zeppelin结合Apache Airflow使用1 文章目录 Apache Zeppelin结合Apache Airflow使用1前言一、安装Airflow二、使用步骤1.目标2.编写DAG2.加载、执行DAG 总结 前言 之前学了Zeppelin的使用&#xff0c;今天开始结合Airflow串任务。 Apache Airflow和Apache Zeppelin是两…

如何使用固定公网地址访问多个本地Nginx服务搭建的网站

文章目录 1. 下载windows版Nginx2. 配置Nginx3. 测试局域网访问4. cpolar内网穿透5. 测试公网访问6. 配置固定二级子域名7. 测试访问公网固定二级子域名 本文主要介绍如何在Windows系统对Nginx进行配置&#xff0c;并结合cpolar内网穿透工具实现固定公网地址远程访问多个本地站…

学习笔记-李沐动手学深度学习(一)(01-07,概述、数据操作、tensor操作、数学基础、自动求导)

个人随笔 第三列是 jupyter记事本 官方github上啥都有&#xff08;代码、jupyter记事本、胶片&#xff09; https://github.com/d2l-ai 多体会 【梯度指向的是值变化最大的方向】 符号 维度 &#xff08;弹幕说&#xff09;2&#xff0c;3&#xff0c;4越后面维度越低 4…

dubbo:深入理解Apache Dubbo与实战

dubbo核心组件 层次名 作 用 Service 业务层。包括业务代码的接口与实现&#xff0c;即开发者实现的业务代码 config 配置层。主要围绕ServiceConfig &#xff08;暴露的服务配置&#xff09;和ReferenceConfig &#xff08;引用的服务配置&#xff09;两个实现类展开&#xf…

canvas绘制旋转的椭圆花

查看专栏目录 canvas实例应用100专栏&#xff0c;提供canvas的基础知识&#xff0c;高级动画&#xff0c;相关应用扩展等信息。canvas作为html的一部分&#xff0c;是图像图标地图可视化的一个重要的基础&#xff0c;学好了canvas&#xff0c;在其他的一些应用上将会起到非常重…

网络安全全栈培训笔记(57-服务攻防-应用协议RsyncSSHRDPFTP漏洞批量扫描口令拆解)

第57天 服务攻防-应用协议&Rsync&SSH&RDP&FTP&漏洞批量扫描&口令拆解 知识点&#xff1a; 1、服务攻防-远程控制&文件传输等 2、远程控制-RDP&RDP&弱口令&漏洞 3、文件传输-FTP&Rsyc&弱口令&漏洞 章节内容&#xff1a; …

【Java】--网络编程:基于TCP协议的网络通信

【Java】–网络编程&#xff1a;基于TCP协议的网络通信 文章目录 【Java】--网络编程&#xff1a;基于TCP协议的网络通信一、TCP协议1.1 概念1.2 三次握手1.2.1 文字描述1.2.2 画图演示 1.3 四次挥手1.3.1 文字描述1.3.2 画图演示 二、基于TCP的Socket网络编程2.1 概念2.2 服务…

c#中使用UTF-8编码处理多语言文本的有效策略

使用UTF-8编码处理多语言文本的有效策略 在当今的全球化时代&#xff0c;软件开发者常常需要处理包含多种语言的文本。这不仅涉及英文和其他西方语言&#xff0c;还包括中文、日文、韩文等多字节字符系统。在这篇博客中&#xff0c;我将探讨如何有效地使用UTF-8编码来处理混合语…

大模型实战营Day5笔记

大模型部署背景 大模型部署是指将训练好的模型在特定的软硬件环境中启动的过程&#xff0c;使模型能够接收输入并返回预测结果。大模型的内存开销巨大&#xff0c;7B模型仅权重需要14G内存。另外大模型是自回归生成&#xff0c;需要缓存Attention的 k/v。 LMDeploy 简…

学生宿舍人走断电管理系统的意义和功能

学生宿舍人走断电管理系统是石家庄光大远通电气公司一款智能化的电力管理设备&#xff0c;旨在解决学生宿舍安全用电问题。以下是一些该系统的功能特点: 1.智能控制:系统能够自动识别宿舍内是否有人&#xff0c;当无人时自动断电&#xff0c;避免能源浪费和安全事故的发生。 2.…

Prometheus插件安装kafka_exporter

下载地址 https://github.com/danielqsj/kafka_exporter/releases 解压 tar -zxvf kafka_exporter-1.7.0.linux-amd64.tar.gzmv kafka_exporter-1.7.0.linux-amd64 kafka_exporter服务配置 cd /usr/lib/systemd/systemvi kafka_exporter.service内容如下 [Unit] Descript…

容器技术2-镜像与容器储存

目录 一、镜像制作 1、ddocker build 2、docker commit 二、镜像存储 1、公共仓库 2、私有仓库 三、镜像使用 四、容器存储 1、镜像元数据 2、存储驱动 3、数据卷 一、镜像制作 1、ddocker build 基于 Dockerfile 自动构建镜像 其机制为&#xff1a;每一行都会基于…
最新文章