示例#1
0
文件: l2n2.cpp 项目: funkey/bmrm
void CL2N2::ComputeReg(CModel& model, double& reg)
{
   reg = 0;
   TheMatrix &w = model.GetW();
   w.Norm2(reg);
	reg = 0.5*reg*reg;
}
示例#2
0
文件: l2n2.cpp 项目: funkey/bmrm
void CL2N2::ComputeRegAndGradient(CModel& model, double& reg, TheMatrix& grad)
{
   reg = 0;
   TheMatrix &w = model.GetW();
   w.Norm2(reg);
   reg = 0.5*reg*reg;
   grad.Assign(w); 	
}
示例#3
0
文件: l1n1.cpp 项目: funkey/bmrm
/** The subgradient is chosen as sgn(w)
 */
void CL1N1::ComputeRegAndGradient(CModel& model, double& reg, TheMatrix& grad)
{
   reg = 0;
   TheMatrix &w = model.GetW();
   w.Norm1(reg);
   grad.Zero();
   for(int i=0; i<w.Length(); i++)
   {
      double val = 0;
      w.Get(i,val);
      grad.Set(i,SML::sgn(val));
   }
}
示例#4
0
文件: l1n1.cpp 项目: funkey/bmrm
void CL1N1::ComputeReg(CModel& model, double& reg)
{
   reg = 0;
   TheMatrix &w = model.GetW();
   w.Norm1(reg);
}