梯度下降法matlab算法示例
时间: 2024-06-21 18:03:25 浏览: 9
梯度下降法是一种优化算法,常用于寻找函数的最小值,特别是在机器学习中用于训练模型。在MATLAB中,可以使用内置函数和自定义代码实现梯度下降。这里是一个简单的线性回归模型的梯度下降算法示例:
```matlab
% 假设我们有线性模型 y = a*x + b
x = randn(100, 1); % 生成100个随机输入值
y = 2*x + 5 + randn(100, 1); % 假设的真实线性关系加上随机噪声
% 初始化参数
a = 0; % 我们的初始斜率猜测
b = 0; % 初始截距猜测
learning_rate = 0.01; % 学习率(决定每次迭代更新的幅度)
num_iterations = 1000; % 迭代次数
% 梯度下降算法
for iter = 1:num_iterations
% 计算预测值和误差
pred_y = a*x + b;
error = pred_y - y;
% 计算梯度(对于a和b)
gradient_a = mean(error * x);
gradient_b = mean(error);
% 更新参数
a = a - learning_rate * gradient_a;
b = b - learning_rate * gradient_b;
end
% 输出最终的a和b值作为拟合结果
[a_learned, b_learned] = deal(a, b);
```
在这个例子中,我们首先创建了一个随机数据集,然后迭代地计算预测值与实际值之间的差异(误差),计算梯度,并用学习率调整参数以最小化损失函数。每轮迭代结束后,我们的模型参数会更接近真实参数。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)