一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 525|回复: 5
收起左侧

【求教贴】Stanford-Machine Learning-Week3 Assignment中gradient的表示

[复制链接] |试试Instant~ |关注本帖
liuyijuner 发表于 2015-9-20 15:20:29 | 显示全部楼层 |阅读模式

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
最近在跟这个课,MATLAB用得不熟,代码写起来有困难
assignment3里的Regularized logistic regression有一题要写出它的cost function和gradient
gradient公式即:

gradient function

gradient function

看别人写这个式子的代码如下,确实可用
  1. h = sigmoid(X * theta);
  2. t = theta(2:length(theta),1);
  3. J = m^(-1)*sum((-1)*y.*log(h)-(1-y).*log(1-h))+0.5*(lamda/m)*sum(t.^2);
  4. grad = m^(-1)*((h - y).'*X)';
  5. tmp = grad;
  6. tmp=tmp+(lamda/m)*theta;
  7. grad = [grad(1,1);tmp(2:length(theta),1)];
复制代码
求问:最后一句grad=[grad(1,1)......]这是啥意思?
小白初到,还望各位不要嫌弃
安如画 发表于 2015-9-20 15:39:12 | 显示全部楼层
感觉是生成了一个新的grad的列向量
回复 支持 反对

使用道具 举报

wowmomsos 发表于 2015-9-23 23:35:45 | 显示全部楼层
这段代码总是用标量乘法和sum表示矩阵乘法,可读性很差。
你看看我的代码。写机器学习代码时,一定要向量化!

  1. z = sigmoid(X*theta);
  2. J = (-(log(z)'*y + log(1-z)'*(1-y)) + theta(2:end)'*theta(2:end)*lambda*0.5)/m;
  3. grad = (X'*(z-y))/m;
  4. grad(2:end) = grad(2:end) + lambda*theta(2:end)/m;
复制代码
回复 支持 反对

使用道具 举报

 楼主| liuyijuner 发表于 2015-9-25 13:53:23 | 显示全部楼层
wowmomsos 发表于 2015-9-23 23:35
这段代码总是用标量乘法和sum表示矩阵乘法,可读性很差。
你看看我的代码。写机器学习代码时,一定要向量 ...

谢谢你的建议
回复 支持 反对

使用道具 举报

 楼主| liuyijuner 发表于 2015-9-25 13:53:52 | 显示全部楼层
安如画 发表于 2015-9-20 15:39
感觉是生成了一个新的grad的列向量

好像是这样子
回复 支持 反对

使用道具 举报

shurui91 发表于 2015-10-3 06:21:52 | 显示全部楼层
这个课地里有统一的讨论帖甚至配套的中文教程吗?还没编程一开始的公式啥的看着就头疼。。
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-11 02:48

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表