一、基础数学
1.1 泰勒公式
我们首先简单地回顾一下泰勒公式:
使用特定点的处的梯度线性逼近附近点处的函数值,我们可以近似使用如下的函数值线性逼近方程:
现有如下题目:对于sin(-1:0.25:0.5),使用泰勒公式估计sin(0.5005)的值。
%% Section 01
y = sin(-1:0.25:0.5);
yg = gradient(y, 0.25);
y_guess = y(end) + yg(end)*(0.5005 - 0.5);
disp("预测结果:");
disp(y_guess);
disp("实际结果:");
disp(sin(0.5005));
1.2 多元函数条件极值
对于目标z = f(x, y),我们有条件φ(x, y) = 0。则优化问题可以转换为:
接下来我们只需要对L中的x,y和φ求偏导即可:
例1:求表面积为a2的体积最大长方体:
设长、宽、高分别为x、y、z,则我们有如下条件φ,和目标g:
接下来我们构造函数L,并求最优解:
二、线性回归模型
参考标量的f(x)=wx+b,对于线性回归我们有f(X)=WX+B,其中W是权重矩阵,X是训练样本矩阵,B是偏置项:
下面我们需要解决的问题是如何求解权重矩阵W和偏置项b,于是问题转换为:
2.1 梯度与Hessian矩阵
对于多元情况的导数g(x),我们有:
下面我们用Hessian矩阵表示二阶导数:
2.2 二次型
2.2.1 二次型定义
给定一个n*m的矩阵A,有如下函数:
则称该函数为二次型。对于给定的矩阵:
如果对于所有的:
有:
则为半正定矩阵,此时特征值λ(A)≥0(正定矩阵则是要求全部大于0)。
2.2.2 二次型求导
通过对比标量的求导情况,我们可以推导出二次型的一阶导数与二阶导数:
2.3 最小二乘法
2.3.1 最小二乘法简述
梯度的定义:在标量场f中的一点处存在一个矢量G,该矢量的方向为f在该点处变化率最大的方向,其模也等于这个最大变化率的数值,则矢量G称为该标量场f的梯度。即,梯度是矢量。
下面我们给出二范数的定义:Euclid范数,即向量元素绝对值的平方和再开方,下面是二范数的平方:
带入到之前提到的优化问题,于是我们有:
2.3.2 最小二乘法本质
现在有如下平方误差和S:
该函数是一个二次函数,其导数为0时取得最小值,于是有:
即“误差最小的方法是多次测量取算术平均数”。
2.4 泰勒级数与极值
对于输入为向量的泰勒级数展开:
g(xk) = 0的点为平稳点(候选点),如果有H(xk)>0,则点xk为严格局部极小点(反之为严格局部最大点),如果H(xk)为不定矩阵,则xk是一个鞍点。
2.5 无约束优化迭代法
迭代法基本结构(最小化f(x)):
1:选择一个初始点,设置一个convergence tolerance τ,计数k。
2:决定搜索方向dk,使得函数下降。
3:构建xk+1 = xk+1 + αkdk,其中α称为步长或是学习速率。
4:如果||d||2 < τ,则输出解,否则重复直到收敛。
2.5.1 梯度下降法
方向选取:dk = -g(xk)
对于以上算法,主要问题在于如何确定dk,对于一阶导数的情况,dk = -g(xk),下面给出证明:
2.5.2 牛顿法
方向选取:dk = -H-1(xk)g(xk)
下载markdown原文:
Download
Comments | NOTHING