吴恩达机器学习(三)梯度下降算法的解析解

吴恩达机器学习(三)梯度下降算法的解析解

随机梯度下降算法理论推导

由于在课程的讲义中老师已经推导了解析解,此处仅列出结论:
θ ⃗ = ( X T X ) − 1 X T y ⃗ \vec{\theta}=(X^TX)^{-1}X^T\vec{y} θ =(XTX)1XTy
在推导当中,老师使用了下面一个性质:
∇ A t r A B A T C = C A B + C T A B \nabla_AtrABA^TC=CAB+C^TAB AtrABATC=CAB+CTAB
到写这篇博客为止,我还没有找到一个比较满意的证明方法(要么太复杂,要么证明中还有些不明白的东西,碰到数学就头大的学渣o(╥﹏╥)o),在这儿贴出几个证明的网址:
证明1证明2证明3证明4
有好证明方法的朋友欢迎在下面留言。

实例

数据来源https://blog.csdn.net/weixin_43084928/article/details/82529596
数据还是这位博主的。由于是解析解,代码相当简单。

%% 梯度下降算法解析解
% 作者:sddfsAv
% 日期:20190304
% Matlab版本:2018b
% 简介:吴恩达机器学习课程练习,数据集来源于https://blog.csdn.net/weixin_43084928/article/details/82529596
clear
clc

%% 导入原始数据
Data=csvread('Salary_Data.csv',1,0);    % 读取csv数据文件
scatter(Data(:,1),Data(:,2),40,'MarkerEdgeColor',[0 .5 .5],...
              'MarkerFaceColor',[0 .7 .7],...
              'LineWidth',1.5);         % 绘制散点图
title("Experience and Salary");         % 图表标题
xlabel("Experience(years)");            % x轴标题
ylabel("Salary(dollar)");               % y轴标题
hold on;
%% gradient descnt closed form
X=[ones(length(Data(:,1)),1) Data(:,1)];
y=Data(:,2);
alpha=0.0005;  % 学习速率,过大会造成不收敛
theta=inv(X'*X)*X'*y;
plot(Data(:,1),theta(1)+theta(2)*Data(:,1))

拟合结果:
在这里插入图片描述

总结

按照讲义的顺序,接下来学习Probabilistic interpretation,也就是关于最小二乘回归的概率解释。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值