返回信息流平时发帖比较少,操作失误请见谅~~~
楼主申请的是美团的图像算法岗,可惜太渣了,最后一道梯度下降法不知道怎么做,来论坛求助
题目如下:(上传了照片,不知道能不能显示)
使用梯度下降法,简单实现逻辑回归logistic regression的求解,逻辑回归的优化目标函数为min L(w,b)=0.5*lambda*w'*w+1/n*sum{log(1+exp(-yi*(w'*xi+b)))},参数lambda是二范数正则项的系数,权重w和样本xi是d维的列向量,w'表示向量w的转置,b是标量偏差项,yi是样本标签+1或-1,n是样本数量,sum表示求和,下标i=0,1,....,n-1。实现如下函数,输入参数n表示样本数量,d表示向量维数,X[n*d]表示n个样本向量,每连续d个浮点数代表一个样本,y[n]表示n个样本标签,lambda表示正则项的系数,输出参数wb[d+1]表示解向量[w b],最后一个浮点数代表偏差项b,返回wb指针。wb可以初始化为0向量,要求输出wb保留3位有效小数,即wb[i]=int(1000.0f*wb[i])/1000.0f.提示,可取迭代步长为u,迭代10000次,可收敛到所有测试用例的最优解。
c语言实现。
float* tra_in_logistic_regression(int n,int d,float* X,int *y,float lam,float *wb){
}
请各位大神指导~~
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #16932同步于 2015/9/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ML_DM机器人发帖
美团笔试题求解
awkwardgirl
2015/9/19镜像同步12 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
(1)对目标函数求偏导,确定梯度下降的更新公式(见下图,希望没算错)
(2)批梯度下降的c的代码见下面(没跑过,不知道有没有语法错误,逻辑我相信是对的),题目的意思应该是批梯度下降,不过随机梯度下降写起来更容易点
最后想问一句,选项里有python,楼主为什么不选,c写这种运算的代码好DT
【 在 awkwardgirl 的大作中提到: 】
: 平时发帖比较少,操作失误请见谅~~~
: 楼主申请的是美团的图像算法岗,可惜太渣了,最后一道梯度下降法不知道怎么做,来论坛求助
: 题目如下:(上传了照片,不知道能不能显示)
: ...................
哇,有人回复了,好激动,昨天发完贴,用手机刷了几遍,木有看到动静,今天上来就有人回复了,谢谢这位大神。
由于露珠用c/c++比较多,python才用过半年,不是很熟练,所以潜意思就选了c语言(主要原因还是自己比较渣吧)。
程序还没有验证,等我验证了,再回复你。
【 在 LJ10211289 的大作中提到: 】
: (1)对目标函数求偏导,确定梯度下降的更新公式(见下图,希望没算错)
: [upload=1][/upload]
: (2)批梯度下降的c的代码见下面(没跑过,不知道有没有语法错误,逻辑我相信是对的),题目的意思应该是批梯度下降,不过随机梯度下降写起来更容易点
: ...................
有吗?求偏导过程中分子分母同除exp(-y_i * (w' * x_i + b)),就变成没有负号的这样形式了
【 在 wujackjack 的大作中提到: 】
: 沙发求的梯度好像有点错误。。。分子那缺一个 exp(-y_i * (w' * x_i + b)), 分母那y_i前缺一个负号
我觉得目标函数没什么错啊,就是最典型的cross entropy error加上规则化项
【 在 gogotian 的大作中提到: 】
: 我怎么看着这目标函数不对呢
: 发自「贵邮」