织梦网站下载地址一手房发帖网站怎样做
news/
2025/9/23 4:50:21/
文章来源:
织梦网站下载地址,一手房发帖网站怎样做,做网站找客户,网站空间面板文章目录 拓展知识基础名词解释#xff08;语义库更新#xff09;机器学习任务流程模型训练基本流程模型训练详细流程正向传播与反向传播正向传播-求误差值反向传播-求参数值 学习率激活函数激活函数-为什么希望激活函数输出均值为0#xff1f;激活函数 — softmax ta… 文章目录 拓展知识基础名词解释语义库更新机器学习任务流程模型训练基本流程模型训练详细流程正向传播与反向传播正向传播-求误差值反向传播-求参数值 学习率激活函数激活函数-为什么希望激活函数输出均值为0激活函数 — softmax tanh激活函数 — ReLUMVP简单粗暴激活函数 — SwishReLU进阶版用的最多 损失函数损失函数 — MSE MAE损失函数 — 交叉熵损失 输出函数优化器 初步总结 拓展知识
理想情况下我们希望模型能够学习到数据的内在规律和结构以便在未见过的数据上进行准确的预测或分类。
模型训练最终获得的产出就是模型结构一批权重参数和阈值集合。模型训练和应用都需要计算-算力。模型最终训练效果无法被解释推理过程和推理依据。
实际上大多数情况是黑盒训练配置好激活函数损失函数等参数扔进去数据模型自动根据配置调权重参数和阈值等。 通俗理解 自监督学习-暴力出奇迹自监督硬找文本规律基于庞大的数据量实现的”过拟合“行为互联网全部数据都是训练集那么拟合训练集就变成正确的事情了。 硬找文本规律训练语言理解能力文本挖坑硬填训练语言生成能力。 相当于背过全网知识基于存量知识再拼接总结生成 AIGC技术的核心思想是利用人工智能算法生成具有一定创意和质量的内容。通过训练模型和大量数据的学习AIGC可以根据输入的条件或指导生成与之相关的内容。例如通过输入关键词、描述或样本AIGC可以生成与之相匹配的文章、图像、音频等。 发展障碍 硬件和能源决定大模型发展上限。 实际上核心问题显卡-算力 理论上最终上限是能源上限目前是算力限制伪垄断导致沙子有的是显卡随便造算力应该是没有上限的。 硬件架构能源电能内存大模型架构显卡算力 通用模型的局限性 ChatGPT数据来源都是公网因此只能解决通用公众问题要想建立解决业务问题模型需要用公司内部数据训练专用模型。 因此若公司想建立专用模型需要各自搭建训练专属模型。
基础名词解释语义库更新 样本一条数据例子 特征被观测对象的可测量特性例如西瓜的颜色、瓜蒂、纹路、敲击声等 特征向量用一个 d 维向量表征一个样本的所有或部分特征ax,by,cz,…,zn 1、 一个维度就是一个特征维度越多变量越多未知参数越多事物特征被分析的越彻底。 2、将具体的事物拆分为d维特征向量就是数据标注。 标签(label)/真实值样本特征对应的真实类型或者真实取值即正确答案 数据集(dataset)多条样本组成的集合 训练集(train)用于训练模型的数据集合 评估集(eval)用于在训练过程中周期性评估模型效果的数据集合 测试集(test)用于在训练完成后评估最终模型效果的数据集合 训练集和评估集是训练模型时用的数据集分别起学习和验证的作用。 模型可以从数据中学习到的可以实现特定功能/映射的函数 误差/损失样本真实值与预测值之间的误差. 预测值样本输入模型后输出的结果 模型训练使用训练数据集对模型参数进行迭代更新的过程 模型收敛任意输入样本对应的预测结果与真实标签之间的误差稳定 模型评估使用测试数据和评估指标对训练完成的模型的效果进行评估的过程 模型推理/预测使用训练好的模型对数据进行预测的过程 模型部署使用服务加载训练好的模型对外提供推理服务
机器学习任务流程
注意事项
数据集分类是随机分配ChatGPT的出现极大的释放了数据标注的人工量。 模型训练基本流程
1、数据标注 简单来说数据标注就是将具体事物拆分为多维度变量值瓜茎卷曲程度0.8瓜皮颜色0.6瓜尺寸0.9代入模型axbycz甜|酸中能够求解出参数值各个维度的权重值对于正确答案的影响。 特征被观测对象的可测量特性例如西瓜的颜色、瓜蒂、纹路、敲击声等 特征向量用一个 d 维向量表征一个样本的所有或部分特征ax,by,cz,…,zn 总结 1、一个维度就是一个特征维度越多未知参数越多事物特征被分析的越彻底。 2、将具体的事物拆分为d维特征向量就是数据标注。 2、总训练集分为多个Batch size。 3、求和权重参数*特征变量值预测值。 4、训练完之后根据真实值和预测值的Loss函数评估不断调试不断更新参数。 模型参数一开始是随机生成的或者用已有可参考参数值。
Loss函数衡量真实值和预测值误差到底是多少损失值量化
模型训练详细流程
batch_size:一次性输入到模型的样本条数上图是batch_size1的情况。 batch_size大小决定GPU的消耗情况。 Batch size 是一次向模型输入的数据数量Batch size 越大模型一次处理的数据量越大能够更快的运行完一个Epoch反之运行完一个Epoch更慢。 由于模型一次是根据一个 Batch size 的数据计算 Loss然后更新模型参数如果Batch size 过小单个 Batch 可能与整个数据的分布有较大差异会带来较大的噪声导致模型难以收敛特例的影响。 与此同时Batch size 越大模型单个 Step 加载的数据量越大对于 GPU 显存的占用也越大当 GPU 显存不够充足的情况下较大的 Batch size 会导致 OOM内存溢出因此需要针对实际的硬件情况设置合理的 Batch size 取值。 总结Batch size越大越好 在合理范围内更大的 Batch size 能够
提高内存利用率提高并行化效率一个 Epoch 所需的迭代次数变少减少训练时间梯度计算更加稳定训练曲线更平滑下降方向更准能够取得更好的效果
对于传统模型在较多场景中较小的 Batch size 能够取得更好的模型性能 对于大模型往往更大的 Batch size 能够取得更好的性能。 Batch size中样本类型比例应该尽量切合Epoch的分布比例。 每一层layer其实是相同结构的模型上一层分析样本后下一层更加递进分析上一层的分析结果特征向量。 1、模型结构设置
#设置神经网络结构各层顺序相连
model tf.keras.models.Sequential([
#下面把每个输入的图片数据展平从28*28变为784*1的形式tf.keras.layers.Flatten(input_shape(28, 28)),
#下面是一个全连接层128个节点激活函数采用Relu tf.keras.layers.Dense(128, activationtf.nn.relu),
# 下面让20%的节点无效不与下一层连接tf.keras.layers.Dropout(0.2),
# 下面是一个全连接层10个节点激活函数采用softmax tf.keras.layers.Dense(10, activationtf.nn.softmax)
])2、主要训练参数
#编译模型为模型选择优化器、目标函数和性能评价指标
model.compile(optimizeradam,losssparse_categorical_crossentropy,metrics[accuracy])
#训练模型-训练集
model model.fit(x_train, y_train, epochs1)
#评估模型正确率-评估集
model.evaluate(x_test, y_test)
Keras中的常用层举例
Flatten层 用来将输入“压平”即把多维的输入一维化常用在数据输入或从卷积层到全连接层的过渡。Dense层(全连接层 对上一层的神经元进行全部连接实现特征的非线性组合。跟下一层的神经元也是全连接的。Activation层 激活层对一个层的输出施加激活函数。 在Keras中使⽤激活对象有两种方法 ⼀是单独定义⼀个激活层二是在前置层里面通过激活选项来定义所需的激活函数。Dropout层 为输入数据施加Dropout。Dropout在训练过程中每次更新参数时随机断开一定百分比rate的输入神经元用于防止过拟合
Compile参数
loss损失函数或称目标函数是神经网络中的性能函数优化的目标是使损失函数最小化。具体取值在tf.keras.losses中optimizer优化器主要是各种梯度下降算法优化的目标是使loss最小具体取值在tf.keras.optimizers中metrics评价指标确定使用哪些指标展现模型的性能具体取值在tf.keras.metrics中
正向传播与反向传播
正向传播-求误差值
Loss函数衡量真实值和预测值误差到底是多少损失值量化 求和权重参数*特征变量值预测值。 Loss函数计算得出真实值和预测值的正数误差后平方绝对值接下来要做的就是将误差L降低为最小有请梯度函数。 反向传播-求参数值
梯度梯度是一个向量矢量函数在一点处沿着该点的梯度方向变化最快变化率最大。 换而言之自变量沿着梯度方向变化能够使因变量函数值变化最大。 实际就是求导找到本次Batch size所形成的损失函数的最小值对应的Wn参数值。 偏导数单独求解每个参数w的变化。 阿尔法是学习率决定参数w更新幅度。 更新参数w的目的是使L值获得最大程度降低。
学习率
学习率Learning RateLR决定了模型参数的更新幅度学习率越高模型参数更新越激进即相同 Loss 对模型参数产生的调整幅度越大反之越小。 注意 如果学习率太小会导致网络 loss 下降非常慢 如果学习率太大那么参数更新的幅度就非常大产生振荡导致网络收敛到局部最优点或者 loss 不降反增。
激活函数
线性函数是一次函数的别称则非线性函数即函数图像不是一条直线的函数。非线性函数包括指数函数、幂函数、对数函数、多项式函数等等基本初等函数以及他们组成的复合函数。 激活函数是多层神经网络的基础保证多层网络不退化成线性网络。 下图为激活起点函数为简单变量和常数的情况 最终y表达式还是一个线性函数。 线性模型的表达能力不够激活函数使得神经网络可以逼近其他的任何非线性函数 这样可以使得神经网络应用到更多非线性模型中。 激活函数 — sigmoid
sigmoid函数具有软饱和特性在正负饱和区的梯度 都接近于0只在0附近有比较好的激活特性sigmoid导数值最大0.25也就是反向传播过程中 每层至少有75%的损失这使得当sigmoid被用在隐藏层的时候会导致梯度消失一般5层之内就会产生 函数输出不以0为中心也就是输出均值不为0会导致参数更新效率降低sigmoid函数涉及指数运算导致计算速度较慢。 激活函数-为什么希望激活函数输出均值为0 均值为零说明每个激活函数节点输出值有正有负更具备多样性调优更加灵活有效。 在上面的参数 wi 更新公式中 对于所有 wi 都是一样的xi 是 i - 1 层的激活函数的输出如果像 sigmoid 一样输出值只有正值那么对于第 i 层的所有 wi 其更新方向完全一致模型为了收敛会走 Z 字形来逼近最优解一会全变大一会全变小。
激活函数 — softmax tanh
softmax tanh 激活函数 — ReLUMVP简单粗暴 ReLU 是一个分段线性函数因此是非线性函数ReLU 的发明是深度学习领域最重要的突破之一ReLU 不存在梯度消失问题ReLU计算成本低收敛速度比 sigmoid 快6倍函数输出不以0为中心也就是输出均值不为0会导致参数更新效率降低
最大问题存在 dead ReLU 问题输入 ReLU 有负值时ReLU 输出为0梯度在反向传播期间无法流动导致权重不会更新
激活函数 — SwishReLU进阶版用的最多 损失函数
损失函数loss function就是用来度量模型的预测值f(x)与真实值Y的差异程度损失值 的运算函数它是一个非负实值函数。 损失函数仅用于模型训练阶段得到损失值后通过反向传播来更新参数从而降低预 测值与真实值之间的损失值从而提升模型性能。 整个模型训练的过程就是在通过不断更新参数使得损失函数不断逼近全局最优点全局最小值。 不同类型的任务会定义不同的损失函数例如回归任务重的MAE、MSE分类任务中的 交叉熵损失等。
损失函数 — MSE MAE 均方误差mean squared errorMSE也叫平方损失或 L2 损失常用在最小二乘法中它的思想是使得各个训练点到最优拟合线的距离最小平方和最小。
平均绝对误差Mean Absolute ErrorMAE是所有单个观测值与算术平均值的绝对值的平均也被称为 L1 loss常用于回归问题中。
损失函数 — 交叉熵损失
log 函数是很多损失函数中的重要组成部分对于 log 函数默认的底数 a 是 e也就是损失函数中使用的 log 函数默认a1。 【二分类】 N为batch_size的样本数求本批batch_size的误差平均值。 其中yi 为样本 i 的真实标签正类为 1负类为 0pi 表示样本 i 预测为正类的概率。 【多分类】 N为batch_size的样本数求本批batch_size的误差平均值。 其中M 为类别数量yic 符号函数样本 i 真实类别等于 c 则为 1否则为 0预测样本 i 属于类别的预测概率.。
实例解释 二分类 假设有一个二分类任务正类为1负类为0存在一个正样本A当模型输出其为正类 的概率为0.8时交叉熵损失为 − (1 ∗ (0.8) 0 ∗ (0.2)) − (0.8) 0.0969 当模型输出其为正类的概率为0.5时交叉熵损失为 − (1 ∗ (0.5) 0 ∗ (0.5)) − (0.5) 0.3010 由此可见当模型预测的误差越大时交叉熵损失函数计算得到的损失越大。 因为0x1时log求导值大于1放大原本误差。 0.8-0.6|log(0.8)-log(0.6)| 多分类 有如下的交叉熵损失计算 对所有样本loss求平均
输出函数
对于不同的分类任务交叉熵损失函数使用不同的激活函数sigmoid/softmax获得概率输出 【二分类】 使用sigmoid和softmax均可注意在二分类中Sigmoid函数我们可以当作成它是对 一个类别的“建模.”另一个相对的类别就直接通过1减去得到。而softmax函数是对两个类别建模同样的得到两个类别的概率之和是1。 【单标签多分类】 交叉熵损失函数使用softmax获取概率输出互斥输出。 【多标签多分类】 交叉熵损失函数使用sigmoid获取概率输出。
优化器
优化器就是在深度学习反向传播过程中指引损失函数目标函数的各个参数往正确 的方向更新合适的大小使得更新后的各个参数让损失函数目标函数值不断逼近全局最小。
初步总结
正反向传播整体流程
1、模型结构设置
#设置神经网络结构各层顺序相连
model tf.keras.models.Sequential([
#下面把每个输入的图片数据展平从28*28变为784*1的形式tf.keras.layers.Flatten(input_shape(28, 28)),
#下面是一个全连接层128个节点激活函数采用Relu tf.keras.layers.Dense(128, activationtf.nn.relu),
# 下面让20%的节点无效不与下一层连接tf.keras.layers.Dropout(0.2),
# 下面是一个全连接层10个节点激活函数采用softmax tf.keras.layers.Dense(10, activationtf.nn.softmax)
])2、主要训练参数
#编译模型为模型选择优化器、目标函数和性能评价指标
model.compile(optimizeradam,losssparse_categorical_crossentropy,metrics[accuracy])
#训练模型-训练集
model model.fit(x_train, y_train, epochs1)
#评估模型正确率-评估集
model.evaluate(x_test, y_test)
Keras中的常用层举例
Flatten层 用来将输入“压平”即把多维的输入一维化常用在数据输入或从卷积层到全连接层的过渡。Dense层(全连接层 对上一层的神经元进行全部连接实现特征的非线性组合。跟下一层的神经元也是全连接的。Activation层 激活层对一个层的输出施加激活函数。 在Keras中使⽤激活对象有两种方法 ⼀是单独定义⼀个激活层二是在前置层里面通过激活选项来定义所需的激活函数。Dropout层 为输入数据施加Dropout。Dropout在训练过程中每次更新参数时随机断开一定百分比rate的输入神经元用于防止过拟合
Compile参数
loss损失函数或称目标函数是神经网络中的性能函数优化的目标是使损失函数最小化。具体取值在tf.keras.losses中optimizer优化器主要是各种梯度下降算法优化的目标是使loss最小具体取值在tf.keras.optimizers中metrics评价指标确定使用哪些指标展现模型的性能具体取值在tf.keras.metrics中
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/911398.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!