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. 千万不要相信你学得有多快
相关推荐
齐 飞22 分钟前
MongoDB笔记01-概念与安装
前端·数据库·笔记·后端·mongodb
神仙别闹39 分钟前
基于tensorflow和flask的本地图片库web图片搜索引擎
前端·flask·tensorflow
成富1 小时前
文本转SQL(Text-to-SQL),场景介绍与 Spring AI 实现
数据库·人工智能·sql·spring·oracle
丫头,冲鸭!!!1 小时前
B树(B-Tree)和B+树(B+ Tree)
笔记·算法
CSDN云计算1 小时前
如何以开源加速AI企业落地,红帽带来新解法
人工智能·开源·openshift·红帽·instructlab
听忆.1 小时前
手机屏幕上进行OCR识别方案
笔记
艾派森1 小时前
大数据分析案例-基于随机森林算法的智能手机价格预测模型
人工智能·python·随机森林·机器学习·数据挖掘
hairenjing11231 小时前
在 Android 手机上从SD 卡恢复数据的 6 个有效应用程序
android·人工智能·windows·macos·智能手机
小蜗子1 小时前
Multi‐modal knowledge graph inference via media convergenceand logic rule
人工智能·知识图谱
SpikeKing2 小时前
LLM - 使用 LLaMA-Factory 微调大模型 环境配置与训练推理 教程 (1)
人工智能·llm·大语言模型·llama·环境配置·llamafactory·训练框架