一、优化算法
1)Adam算法: 基于一阶或二阶动量(Moments)的随机梯度下降算法,动量是非负超参数,主要作用是调整方向梯度下降并抑制波动。此算法适用于数据量和参数规模较大的场合。
(2)SGD算法: 动量梯度下降算法。
(3)Adagrad算法: 学习率与参数更新频率相关。
(4)Adamax算法:Adam算法的扩展型,词嵌入运算有时优于Adam算法。
(5)Ftrl算法:谷歌发明的算法,适用于大稀疏特征空间的场合。
(6)Nadam算法: 基于Adam算法,使用Nesterov动量。
(7)RMSprop算法:基于梯度平方均值。
(8)Adadelta算法:使用随机梯度下降算法和自适应学习率,避免训练过程中学习率持续劣化以及手动设定问题。
二、损失计算
Tensorflow的keras.losses库中定义了各种损失值得运算类,下面重点介绍常用的几种
(1)CategoricalCrossentropy类: 计算标签和预测值之间的交叉熵损失(Crossentropy Loss)。
(2)SparseCategoricalCrossentropy类: 原理与CategoricalCrossentropy类似。比较适用于有两个及以上标签类别的场景,如果运算基于独热表示标签,更适合使用CategoricalCrossentropy损失。
(3) BinaryCrossentropy类: 类似CategoricalCrossentropy,适用于0或者1二分类的场合。
(4)MeanSquaredError类:计算标签和预测值之间的误差平方均值。
(5)MeanAbsoluteError类:计算标签和预测值之间的绝对误差均值。
(6)Hinge类:计算真实值和预测值之间的铰链损失。
三、模型评估
Tensorflow的keras.metrics库中定义了模型评估指标 下面介绍几种代表性指标
(1)AUC类:代表Area Under The Curve,计算ROC 的曲线下面积。
(2)MeanSquaredError类:计算预测值和真实值的误差平方均值。
(3)MeanAbsoluteError类:计算标签值和预测值的误差绝对均值。
(4)Accuracy类:计算标签值和预测值相同的频率。
(5)CategoricalCrossentropy类: 计算标签和预测值之间的交叉熵。
(6)SparseCategoricalCrossentropy类: 原理与CategoricalCrossentropy类似,比较适用于有两个及以上标签类别的场景
四、向量嵌入
机器学习模型将向量作为输入,因此在将字符串输入模型之前需要将字符串转换为数值向量,也称为词嵌入。词嵌入提供了一种高效表示的方法,其中相似的词具有相似的编码,在处理大型数据集时,通常会看到多维的词嵌入处理,高纬度嵌入可以体现词间的细粒度关系,但需要更多的数据来学习
Embedding( input_dim, output_dim, embeddings_initializer, embeddings_regularizer, activity_regularizer, embeddings_constraint, mask_zero, input_length, **kwargs )
主要参数说明:
input_dim:词语大小;
output_dim:嵌入维度;
embeddings_initializer:嵌入矩阵初始值;
embeddings_regularizer:嵌入矩阵调整函数;
embeddings_constraint:嵌入矩阵限定函数;
mask_zero:布尔值,判断是否零作为填充;
input_length:输入序列长度。
五、神经网络
门控机制基于循环神经网络,门控循环单元网络(GRU)类似于附带遗忘门的长短期记忆网络,但参数比后者少,门控循环单元网络在自然语言处理的部分性能能与长短期记忆网络相似,在较小数据集上的分析效果比较突出 语法定义如下
GRU(units, activation, recurrent_activation, use_bias, kernel_initializer,recurrent_initializer, bias_initializer, kernel_regularizer, recurrent_regularizer, bias_regularizer, activity_regularizer,kernel_constraint, recurrent_constraint, bias_constraint,dropout, recurrent_dropout, return_sequences, return_state,go_backwards, stateful, unroll, time_major, reset_after, **kwargs)
主要参数说明:
· units:输出空间维度;
· Activation:激活函数;
· recurrent_activation:重复激活函数;
· use_bias:偏置量标识;
· kernel_initializer:权重矩阵初始化;
· dropout:输入的丢弃率,介于0和1之间;
· go_backwards:逆向处理输入序列。
创作不易 觉得有帮助请点赞关注收藏~~~