当前位置: 首页 > news >正文

TensorFlow 笔记

------------------------------- 1. 创建模型阶段 -------------------------------

1. Activation 激活函数,

属于模型的一个层,可以用于中间层,输出层。

  1. ReLU (Rectified Linear Unit), 修正线性单元,即 max(0, x), 速度快, 多用于中间层。
  2. sigmoid, 输出 0-1 之间的数,适合二分类。多用于最后输出层。
  3. tanh, 很优秀!
  4. softmax 返回的是一个由多个概率值(和为1)组成的数组,适合多分类,最后输出层。

------------------------------- 2. 训练模型阶段 -------------------------------

2. loss 损失函数

也称为 目标函数, Loss function:𝐿(𝑦^ , 𝑦).
  1. cost = 对𝑚个样本的损失函数求和,然后除以 m
  2. categorical_crossentropy 适合多分类问题
  3. binary_crossentropy 适合二分类问题
  4. mean-squared error, 适合回归问题
  5. CTC,connectionist temporal classification 适合时序分类
  6. 交叉熵(crossentropy),适用于,输出概率值的模型
    交叉熵,属于信息论领域的概念,用于衡量概率分布之间的距离,比如真实分布与预测值之间的距离。
  7. mse, 均方误差(MSE,mean squared error),回归问题常用的损失函数。

3. 优化器, 目的是进行【快速的梯度下降】

  1. Adam (Adaptive Moment Estimation)优化算法
    基本上就是将 Momentum 和 RMSprop 结合在一起
  2. RMSprop, root mean square prop
  3. 动量梯度下降法(Gradient descent with Momentum)
  4. mini-batch
  5. rmsprop 无论你的问题是什么,通常都是很好的优化器。

梯度下降,其实就是更新公式的参数,更新 W 和 b 的值

总共大概有6种
  1. SGD, 小批量随机梯度下降

数据正则化 Regularization 正则化的目的,是为了防止过度拟合。

𝐿2正则化: 很常用,可以防止过度拟合。
dropout 随机失活:
early stopping: 提早停止训练

  1. L1 正则化: 添加的成本与权重系数的绝对值成正比

  2. L2 正则化: 添加的成本与权重系数的平方成正比
    from keras import regularizers
    regularizers.l1_l2(l1=0.001, l2=0.001) # 或
    layers.Dense(16, kernel_regularizer=regularizers.l2(0.001),…

  3. dropout 正则化,对一些输出特征随机舍弃(设置为0).
    model.add(layers.Dropout(0.5)) # 通常在 0.2 – 0.5

模型评估

  1. 查准率(precision),在你的分类器标记为猫的例子中,有多少真的是猫。
  2. 查全率(recall),对于所有真猫的图片,你的分类器正确识别出了多少百分比
  3. F1 大约是 recall 和 precision 的均值。实际是 调和平均数
  4. 实际使用中,还要考虑到时间消耗。 即模型做出判断的时间长短。

网络层, 网络架构

  1. Dense() 是密集连接, 全连接层. 输入一个二维张量,返回一个二维张量。
    Dense(16, activation=‘relu’) 这个16,表示16个隐藏单元
    隐藏单元越多,网络越复杂,计算代价越大。会提高训练集的性能,不会提高测试集的性能。
  2. Conv2D, 卷积层,学习的是局部模式,而 Dense 学到的是全局模式,
    模式的平移不变性,模式的空间层次结构。
  3. MaxPooling2D 把上一层输出的图像尺寸减半,26 x 26 --> 13 x 13
    是对特征图进行采样,有助于学习特征的空间层级结构。

编译网络阶段

  1. loss function 损失函数: 网络如何衡量在训练数据上的性能,如何朝着正确的方向前进
  2. optimizer 基于训练数据和损失函数,来更新网络的机制
  3. metric 指标, 训练和测试过程中需要监控的指标

网络评价

  1. 训练精度和测试精度之间的这种差距, 是过拟合(overfit)造成的

其他:

  1. Numpy(以及大多数其他库)中不存在字符串张量,因为张量存
    储在预先分配的连续内存段中,而字符串的长度是可变的,无法用这种方式存储
  2. 神经网络的引擎: 基于梯度的优化。
  3. 梯度 gradient, 是张量运算的导数。
  4. 神经网络常用的场景,二分类问题、多分类问题和标量回归问题。
  5. Sequential() 是基于层的线性堆叠。

过度拟合

  1. 降低训练的轮数,可以有效降低过度集合
  2. 判断过度拟合一个依据是,验证集的准确度从什么时候开始停止增长
  3. 训练集越小,越容易出现过度拟合,可以减少网络的大小

metric

  1. mae, 平均绝对误差(MAE,mean absolute error),预测值与目标值之差的绝对值。 这个值越小越好。 这个事情, 我曾经闹出笑话!

使用预训练模型

  1. 特征提取

  2. 微调模型

  3. 激活函数
    sigmoid 生成 (0, 1) 之间的数
    ReLU 生成 max(0, x) 之间的数
    SGD 随机梯度下降 适合大量数据
    L2正则化 目的是为了防止过度拟合,增加训练集也可以防止过度拟合

GAN 生成对抗网络,属于是无监督学习。想象一个例子,制作假币。
生成器 输入随机噪点作为样本
判别器 以真实数据作为输入

要点:

  1. 当训练过程变得困难时,别说话,降低学习速率.
  2. 千万不要相信你学得有多快

http://www.mrgr.cn/news/27770.html

相关文章:

  • vscode报错:Connecting with SSH time-out.
  • Go-RPC框架分层设计
  • 开源三代示波器的高速波形刷新方案开源,支持VNC远程桌面,手机,Pad,电脑均可访问(2024-11-11)
  • Photoshop(PS)——人像磨皮
  • 数据库对象映射
  • sqli-labs靶场9-12关(每日4关练习) 持续更新!!!
  • 离线数仓DWD层
  • 【QT】定时器使用
  • 第R3周:LSTM-火灾温度预测:3. nn.LSTM() 函数详解
  • 鸿蒙之Hello Word 遇坑总结 mac系统 不能预览 提示 Only files in a module can be previewed 解决办法
  • 分贝转换 1 mVpp = 9.03dBmV
  • RISCV64应用符号解析的实现机制
  • 响应式CSS 媒体查询——WEB开发系列39
  • 艾里斑(Airy Disk)与瑞利判据(Rayleigh criterion)
  • 2024上半年国产操作系统卖疯了!麒麟4.9亿,统信1.9亿!
  • 41.在 CSS 中使用 clamp() 实现响应式排版
  • 【智路】智路OS Perception Fusion Service
  • 暗界正方形之谜
  • 复杂情感识别系统
  • CAD_Electrical 2022使用记录
  • 【加密算法基础——RSA加密特点分析及解密方式】
  • Java面向对象六大设计原则总结(超级详细,附有代码、图解以及案例)
  • 深入理解Python中的“_,”:一个实用的语法特性
  • 神经网络通俗理解学习笔记(3)注意力神经网络
  • 树莓派5上手
  • Java多线程1