日萌社
人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新)
tensorflow 2.0 画出model网络模型的拓扑图
tensorflow 2.0 的回调函数callbacks(TensorBoard、ModelCheckpoint)
TensorBoard视觉化网络每层权重分布、视觉化网络层结构
CE(Cross-Entropy)、BCE(Binary Cross-Entropy 即Sigmoid+CE)、CCE(Categorical Cross-Entropy 即Softmax+CE)
对连续值/离散值进行预处理的两种方式(标准化/one-hot化)、反标准化/逆标准化、字符串预处理
激活函数 Sigmoid、Tanh、ReLU、Softmax
反向传播、梯度下降、学习率、优化器optimizers(GD、SGD、Momentum、AdaGrad、Adam)
权重初始化对于激活函数的选择:随机常态分布/随机正态分布初始化(标准差为0.01或1)、Xavier(Glorot)初始化、He初始化
使用预训练网络训练的两种方式:Keras Applications、TensorFlow Hub
MSE(均方误差):
np.mean(np.square(真实值y - 预测值y)) / np.mean(真实值y)
tf.reduce_mean(tf.pow((真实值y - 预测值y), 2))
tf.reduce_mean(tf.square(真实值y - 预测值y)) #square表示平方
tf.reduce_mean(tf.square(tf.sub(真实值y, 预测值y)))
计算百分比:np.mean(np.square(真实值y - 预测值y)) / (np.mean(真实值y) * 100)
MAE(平均绝对误差):
np.mean(np.abs(真实值y - 预测值y)) / np.mean(真实值y)
计算百分比:np.mean(np.abs(真实值y - 预测值y)) / np.mean(真实值y) * 100
1.MSE和MAE都既可作为损失函数loss,也均可作为指标函数。
先导入 from tensorflow import keras
损失函数loss:
keras.losses.MeanSquaredError()
keras.losses.MeanAbsoluteError()
指标函数metrics:
keras.metrics.MeanSquaredError()
keras.metrics.MeanAbsoluteError()
例子1:回归模型中的房屋价格预测示例中,在训练期间,比如可以MSE作为损失函数losses,MAE作为指标函数metrics。
model.compile(keras.optimizers.Adam(0.001),
loss=keras.losses.MeanSquaredError(),
metrics=[keras.metrics.MeanAbsoluteError()])
例子2:回归模型中的房屋价格预测示例中,在使用测试数据的预测阶段,同样可以使用MAE作为评价预测结果好坏的标准。
np.mean(np.abs(真实价格y - 预测价格y)) / np.mean(真实价格y)
对连续值/离散值进行预处理的两种方式(标准化/one-hot化)
1.连续值:比如0到18。
2.离散值:离散就是指不连续,比如计算机的随机出来的几个整数,得到的也是离散值,或者一个范围内的人的身高也是离散值。
像整数集,它的每一元素之间都有一点的距离。离散值就是孤立的点集,像区间,它在每一点上都是连续的。
所谓在某一点上连续,就是对于该点,无论给定一个多么小的正数,总能在定义域内找到一点,它的函数值到该点的函数值距离小于给定的数。
3.对连续值/离散值进行预处理的方式一
标准化的方式:比如除以像素的最大值255,或者除以连续值中的最大值,或者求出mean平均值和std标准差,然后首先减去mean平均值然后再除以std标准差,
均可归一化到比较小的区间范围之内。
标准化的结果:归一化到0到1之间,或者-1到1之间。
反标准化/逆标准化:首先乘以std标准差然后再加上mean平均值。
4.日期字符串预处理:比如把日期字符串切割成年、月、日这三个数值再放回到数据集中,然后把日期字符串从数据集中剔除。