TensorFlow的中阶API主要包括:
数据管道(tf.data)
特征列(tf.feature_column)
激活函数(tf.nn)
模型层(tf.keras.layers)
损失函数(tf.keras.losses)
评估指标(tf.keras.metrics)
优化器(tf.keras.optimizers)
回调函数(tf.keras.callbacks)
如果把模型比作一个房子,那么中阶API就是【模型之墙】。
本篇我们介绍损失函数。
一,损失函数概述
一般来说,监督学习的目标函数由损失函数和正则化项组成。(Objective = Loss + Regularization)
对于keras模型,目标函数中的正则化项一般在各层中指定,例如使用Dense的 kernel_regularizer 和 bias_regularizer等参数指定权重使用l1或者l2正则化项,此外还可以用kernel_constraint 和 bias_constraint等参数约束权重的取值范围,这也是一种正则化手段。
损失函数在模型编译时候指定。对于回归模型,通常使用的损失函数是平方损失函数 mean_squared_error。
对于二分类模型,通常使用的是二元交叉熵损失函数 binary_crossentropy。
对于多分类模型,如果label是类别序号编码的,则使用类别交叉熵损失函数 categorical_crossentropy。如果label进行了one-hot编码,则需要使用稀疏类别交叉熵损失函数 sparse_categorical_crossentropy。
如果有需要,也可以自定义损失函