机器通过损失函数进行学习,这是一种评估特定算法对给定的数据建模程度的方法。如果预测值与真实值之前偏离较远,那么损失函数便会得到一个比较大的值。在一些优化函数的辅助下,损失函数逐渐学会减少预测值与真实值之间的这种误差。
机器学习中的所有算法都依赖于最小化或最大化某一个函数,我们称之为“目标函数”。最小化的这组函数被称为“损失函数”。损失函数是衡量预测模型预测结果表现的指标。寻找函数最小值最常用的方法是“梯度下降”。把损失函数想象成起伏的山脉,梯度下降就好比从山顶滑下,寻找山脉的最低点(目的)。
在实际应用中,并没有一个通用的,对所有的机器学习算法都表现的很不错的损失函数(或者说没有一个损失函数可以适用于所有类型的数据)。针对特定问题选择某种损失函数需要考虑到到许多因素,包括是否有离群点,机器学习算法的选择,运行梯度下降的时间效率,是否易于找到函数的导数,以及预测结果的置信度等。
利用损失函数计算损失值,模型就可以通过反向传播去更新各个参数,通过降低真实值与预测值之间的损失,使得模型计算得到的预测值趋近于真实值,从而达到模型训练的目的。损失函数需要为非负实值函数。
一.损失函数的使用
损失函数【也称目标函数或优化评分函数】是编译模型时所需的两个参数之一。
model.compile(loss='mean_squared_error', optimizer='sgd')
或
from keras import losses
model.compile(loss=losses.mean_squared_error, optimizer='sgd')
可以传递一个现有的损失函数名或者一个TensorFlow/Th
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)