优化(optimization)

机器学习是一个对于特定任务T(task),系统从经验E(experience)中学习从而提高表现P(performance)的过程.参看樱花树.
在学习的过程中,往往涉及大量的数值计算,而这些数值计算一般是用于通过迭代方法来最大化或者最小化一个函数,我们称为目标函数(objective function)或者损失函数(loss function),这个过程为优化.出于惯例,我们最小化损失函数.如果我们要最大化损失函数f,我们可以用最小化-f作为等价问题来得到.

条件数(condition number)

在数值计算中,一个函数对一个变量的条件数指的是输出的相对误差和变量相对误差的比.条件数这个性质测量了变量的改变对输出的改变程度,帮助我们知道变量的错误(数据收集时形成的误差或者噪声)对于输出的影响.一个函数相对于一个变量的条件数大是一件危险的事情,因为观测的误差或噪声会相应程度地影响到输出. 在线性方程中,我们知道矩阵$Ax=b$,A和b为输入,x为输出(在这里我们要求x).这个函数对于b的条件数就是A的最大特征值和最小特征值的比,这个比值我们也称为A的条件数,有关.矩阵的条件数在优化中有着重要的作用,比如梯度下降法中,如果迭代到某点时,Hessian矩阵的条件数大,选择一个用于所有维度的学习率(learning rate)或步长(step size),用$\gamma$表示,就变得困难:如果选得太大,则可能在二阶梯度大的方向上爬坡;如果选得太小,则优化的太少.


In [ ]: