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. 千万不要相信你学得有多快
相关推荐
JY19064106几秒前
以毫米级精度,还原异形楼梯真实空间形态——宇绘电子
人工智能
明志数科1 分钟前
具身智能数据工程全链路解析:从真实产线采集到LeRobot适配
网络·人工智能·算法
涛思数据(TDengine)3 分钟前
从_找根因_到_搭系统_:工业 AI 实战直播(十、十一期)
大数据·数据库·人工智能·时序数据库·tdengine
2601_966650419 分钟前
2026完美收官,2027赛逸展再扩容预售
人工智能
Capricorn198812 分钟前
科研引用无法溯源怎么排查?知芽 Notebook Skill 技术机制拆解
大数据·论文阅读·人工智能·笔记·论文笔记
jay神18 分钟前
一文讲清楚YOLOv26模型
人工智能·深度学习·yolo·机器学习·计算机视觉
2601_9557598827 分钟前
Claude API 容量规划与业务增长评估
大数据·人工智能
Capricorn198832 分钟前
Agent 记忆层接入后引用仍不可信?知芽 Notebook Skill 排障指南
大数据·论文阅读·人工智能·笔记·架构
Zguigo32 分钟前
【DL】RNN|序列数据|Hidden State
人工智能·rnn·深度学习
桃西西呀33 分钟前
「百年一遇」的台风,为什么我这辈子就遇了好几回?概率论把这笔账算给你看
人工智能·python·数据可视化