⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gradient_descent.m

📁 数据挖掘经典算法matlab实现
💻 M
字号:
function Min = gradient_descent(a, theta, eta, fun)

%	Minimize a function using the basic gradient descent algorithm
%
%	Inputs:
%		a		- Initial search point
%		theta - Convergence criterion
%		eta	- Descent rate
%		fun	- The function to minimize
%
%	Outputs:
%		Min	- The minimum point

gradJ			= 1e3;
step_size	= 1e-2;
D				= length(a);

while (gradJ > theta),
   %Compute the gradient of J in each direction
   gradJi = zeros(1,D);
   for i = 1:D,
      delta         = zeros(size(a));
      delta(i)      = step_size;
      y_minus		= feval(fun, a - delta);
      y_plus		= feval(fun, a + delta);
      gradJi(i)     = (y_plus - y_minus)/(2*step_size);
   end
   
   %a <- a - eta*gradJ
   a		= a - eta*gradJi;
   
   gradJ = sum(abs(gradJi))*eta;
end

Min = a;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -