求此求下列函数的偏导数数 要过程 谢谢

R语言求函数的偏导数 - 推酷
R语言求函数的偏导数
在Machine Learning的课上,老师讲到用gradient decent的方法解logistic regression中cost function的最小值。这当中就要涉及到对cost function的求偏导数。其实在R当中可以很方便的做到这一点。
R语言中可以使用
来求一元函数的导数,用
来求多元函数的偏导数。这两个function都在
package:stats
中,会在R启动时默认加载。
下面以一个多元函数作为demo,希望通过gradient decent的方法求最小值:
$$E(u,v) = e^u + e^{2v} + e^{uv} + u^2 - 2uv + 2v^2 - 3u - 2v$$
Euv = expression(exp(u) + exp(2 * v) + exp(u * v) + u^2 - 2 * u * v + 2 * v^2 -
3 * u - 2 * v)
d_Euv = deriv(Euv, c(&u&, &v&), func = T)
## function (u, v)
.expr1 &- exp(u)
.expr2 &- 2 * v
.expr3 &- exp(.expr2)
.expr6 &- exp(u * v)
.expr10 &- 2 * u
.value &- .expr1 + .expr3 + .expr6 + u^2 - .expr10 * v +
2 * v^2 - 3 * u - .expr2
.grad &- array(0, c(length(.value), 2L), list(NULL, c(&u&,
.grad[, &u&] &- .expr1 + .expr6 * v + .expr10 - .expr2 -
.grad[, &v&] &- .expr3 * 2 + .expr6 * u - .expr10 + 2 * .expr2 -
attr(.value, &gradient&) &- .grad
注意看d_Euv这个function里面的内容,
在(u,v)下的值,而不是偏导数。该function的末尾把偏导数作为attribute附加到这个value上。因此我们可以通过下面的方法把这个偏导数再提取出来。
derivatives = function(u, v) attributes(d_Euv(u, v))$gradient
derivatives(0, 0)
## [1,] -2 0
利用梯度下降法(gradient decent)解Euv最小值。下面只做示范用,只迭代5次,因此得到的值不一定是真正的最小值。利用
fixed learning rate $\eta = 0.01$
从$(u_0,v_0) = (0,0)$开始,对(u,v)进行更新:
uv.init = as.matrix(c(u = 0, v = 0))
eta = 0.01
uv.t = uv.init
for (i in 1:t) {
grad = t(derivatives(uv.t[1], uv.t[2]))
uv.t = uv.t - eta * grad
print(uv.t)
## u 0.094140
## v 0.001789
函数Euv在(u,v)上的值可以利用以下两种方式去解
print(d_Euv(uv.t[1], uv.t[2]))
## [1] 2.825
## attr(,&gradient&)
## [1,] -1.715 -0.0798
u = uv.t[1]
v = uv.t[2]
print(eval(Euv))
## [1] 2.825
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致苹果/安卓/wp
积分 143, 距离下一级还需 2 积分
权限: 自定义头衔
道具: 彩虹炫, 涂鸦板, 雷达卡, 热点灯, 金钱卡, 显身卡下一级可获得
道具: 匿名卡
购买后可立即获得
权限: 隐身
道具: 金钱卡, 彩虹炫, 雷达卡, 热点灯, 涂鸦板
开心签到天数: 3 天连续签到: 1 天[LV.2]偶尔看看I
本帖最后由 wanghaidong918 于
13:18 编辑
尼克尔森中微中文版第50页 式子2.124有关位似函数的证明:位似函数各个自变量之间的替代关系只取决于自变量之间的比例,而不取决于其他绝对值。书中用俩变量的隐函数f(x,y)=0进行说明
.第一步得出dy/dx,然后第二步指出如果f是k次齐次函数,则其偏导数是k-1次其次函数。
但最后有一步关键的是另t=1/y。然后结果成功证明
以上步骤写得非常非常简略,可能只有看过这本书的同学能看懂,非常抱歉。。。太多符号无法表述清晰
我的问题是:
为什么可以令t=1/y?
t按照道理来说应该是个类似常数的东西,如果令其为y的函数,那就变成个变量了?这样的话,似乎“如果f是k次齐次函数,则其偏导数是k-1次其次函数。”这个的证明也不成立了。因为此证明过程需要令dtx=tdx,如果t不是常数,提不出来啊!
谢谢大家!说得不清不楚的,尽力了。。。请见谅
载入中......
我没看过尼尔森的书,不过你这个问题倒是大致明白了。你可以这么理解,这里t是代表任意的一个常数,其值可以任取,那么对应所有的xy的取值,你令t=1/y代入都绝对没问题的,对吧?关系式中xy就代表的是某一来自其取值域的一个值,设t=1/y,t就一一对应于y,带进去后函数关系依然是正确的。所以可以这么设。这种方法很常见的,宏观里也有。
本帖被以下文库推荐
& |主题: 5137, 订阅: 19
我没看过尼尔森的书,不过你这个问题倒是大致明白了。你可以这么理解,这里t是代表任意的一个常数,其值可以任取,那么对应所有的xy的取值,你令t=1/y代入都绝对没问题的,对吧?关系式中xy就代表的是某一来自其取值域的一个值,设t=1/y,t就一一对应于y,带进去后函数关系依然是正确的。所以可以这么设。这种方法很常见的,宏观里也有。
总评分:&论坛币 + 100&
学术水平 + 1&
信用等级 + 1&
我明白了,后来发现生产理论里面一个位似函数也是这样的。貌似本质上是个高中数学问题……
关于楼主的这句话:“此证明过程需要令dtx=tdx,如果t不是常数,提不出来啊!
似乎有问题啊!
在这里没有必要t是常数啊!而且,这样不是“提出来”的啊!
dtx=tdx+xdt,只要保证dt=0那就是了
这个我当时倒是没有想到。。。但是如果它不是常数微分为什么等于零呢?
也是觉得看着别扭 看了解释好像是那么个意思
无限扩大经管职场人脉圈!每天抽选10位免费名额,现在就扫& 论坛VIP& 贵宾会员& 可免费加入
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
如有投资本站或合作意向,请联系(010-);
邮箱:service@pinggu.org
投诉或不良信息处理:(010-)
京ICP证090565号
论坛法律顾问:王进律师

我要回帖

更多关于 复合函数的二阶偏导数 的文章

 

随机推荐