精华内容
下载资源
问答
  • 逻辑回归代价函数进行梯度下降求偏导时与线性回归的区别 从偏导的公式上来看,两种方式的公式是一样的,两者的区别就是 hθ(xi) 的定义不同, hθ(xi) 线性回归时普通的线性函数 hθ(xi) 逻辑回归是sigmod函数 ...

    逻辑回归代价函数进行梯度下降求偏导时与线性回归的区别

    从偏导的公式上来看,两种方式的公式是一样的,两者的区别就是 hθ(xi)激活函数 的定义不同,

    • hθ(xi) 线性回归是普通的线性函数
    • hθ(xi) 逻辑回归是sigmod函数

    逻辑回归梯度下降推到具体参考:http://blog.csdn.net/Jiaach/article/details/78736577

    总结:导致两者求导出来的式子一样的原因是逻辑回归代价函数中的log(hθ(xi)) 外面的对数函数跟里面hθ(xi) 代表的sigmod函数的e自然常数进行了抵消。

    展开全文
  • 逻辑回归代价函数的推导过程 1、代价函数 在篇文章中,我们要介绍如何拟合逻辑回归模型的参数。具体来说,我要定义用来拟合参数的优化目标或者叫代价函数,这便是监督学习问题中的逻辑回归模型的拟合问题。 对于...

    逻辑回归代价函数的推导过程

    1、代价函数

    在篇文章中,我们要介绍如何拟合逻辑回归模型的参数。具体来说,我要定义用来拟合参数的优化目标或者叫代价函数,这便是监督学习问题中的逻辑回归模型的拟合问题。
    在这里插入图片描述
    对于线性回归模型,我们定义的代价函数是所有模型误差的平方和。理论上来说,我们也可以对逻辑回归模型沿用这个定义,但是问题在于,当我们将

    在这里插入图片描述

    带入到这样定义了的代价函数中时,我们得到的代价函数将是一个非凸函数(non-convexfunction)。
    在这里插入图片描述
    这意味着我们的代价函数有许多局部最小值,这将影响梯度下降算法寻找全局最小值。

    线性回归的代价函数为:

    在这里插入图片描述

    我们重新定义逻辑回归的代价函数为:

    这里是引用
    其中在这里插入图片描述在这里插入图片描述

    Python代码实现:

    import numpy as np
        
    def cost(theta, X, y):   
    	theta = np.matrix(theta)
    	X = np.matrix(X)
    	y = np.matrix(y)
    	first = np.multiply(-y, np.log(sigmoid(X* theta.T)))
    	second = np.multiply((1 - y), np.log(1 - sigmoid(X* theta.T)))
    	return np.sum(first - second) / (len(X))
    

    在得到这样一个代价函数以后,我们便可以用梯度下降算法来求得能使代价函数最小的参数了。算法为:
    在这里插入图片描述
    求导后得到:
    在这里插入图片描述
    我们定义了单训练样本的代价函数,凸性分析的内容是超出这门课的范围的,但是可以证明我们所选的代价值函数会给我们一个凸优化问题。代价函数会是一个凸函数,并且没有局部最优值。

    2、推导过程

    在这里插入图片描述

    注:虽然得到的梯度下降算法表面上看上去与线性回归的梯度下降算法一样,但是这里的
    在这里插入图片描述

    与线性回归中不同,所以实际上是不一样的。另外,在运行梯度下降算法之前,进行特征缩放依旧是非常必要的。
    一些梯度下降算法之外的选择: 除了梯度下降算法以外,还有一些常被用来令代价函数最小的算法,这些算法更加复杂和优越,而且通常不需要人工选择学习率,通常比梯度下降算法要更加快速。这些算法有:共轭梯度(Conjugate Gradient),局部优化法(Broyden fletcher goldfarb shann,BFGS)和有限内存局部优化法(LBFGS) 。

    展开全文
  • 数据集X0,1,2,3,4,5,6,7,8,9,10Y0,0,0,0,0,1,1,1,1,1,1这里可以看出 当X大于4时 Y等于1逻辑回归代价函数计算公式右侧为正规化 但是这里我们并不加入正规化 因为已经足够明显了daimapackage ojama; import java.io....

    数据集

    X

    0,1,2,3,4,5,6,7,8,9,10

    Y

    0,0,0,0,0,1,1,1,1,1,1

    这里可以看出 当X大于4时 Y等于1

    逻辑回归代价函数计算公式


    右侧为正规化 但是这里我们并不加入正规化 因为已经足够明显了

    daima

    package ojama;
    
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.List;
    import java.util.Vector;
    
    public class CostFunction {
    	public static void main(String[] args) throws IOException {
    		Double[] x1 = CostFunction.read("C:/Users/BenQ/Desktop/X.txt");
    		Double[] y = CostFunction.read("C:/Users/BenQ/Desktop/Y.txt");
    		int m = y.length;
    		Double[] x0 = new Double[m];
    		for (int i = 0; i < x0.length; i++) {
    			x0[i] = 1.0;
    		}
    		List<Double[]> X = new Vector<Double[]>();
    		X.add(x0);
    		X.add(x1);
    		Double[] theta = GradientDescent.getTheta(X, y);
    		for (int i = 0; i < theta.length; i++) {
    			System.out.println(String.format("%.2f", theta[i]));
    		}
    		int num = 0;
    		for (int i = 0; i < m; i++) {
    			Double sum = 0.0;
    			for (int k = 0; k < theta.length; k++) {
    				// 在二元图形中,这里相当于k*x+b*1,三元相当于a*x+b*y+c*1,以此类推
    				sum += theta[k] * X.get(k)[i];
    			}
    			num += y[i] * Math.log(sigmoid(sum)) + (1 - y[i]) * Math.log(1 - sigmoid(sum));
    		}
    		System.out.println(-num / m);
    	}
    
    	public static double sigmoid(double z) {
    		return 1 / (1 + Math.pow(Math.E, -z));
    	}
    
    	public static Double[] read(String fileName) throws IOException {
    		File file = new File(fileName);
    		FileReader fileReader = new FileReader(file);
    		BufferedReader reader = new BufferedReader(fileReader);
    		StringBuilder sb = new StringBuilder();
    		String str = reader.readLine();
    		while (str != null) {
    			sb.append(str);
    			str = reader.readLine();
    		}
    		reader.close();
    		fileReader.close();
    		String[] X0 = sb.toString().replace(" ", "").split(",");
    		Double[] x0 = new Double[X0.length];
    		for (int i = 0; i < x0.length; i++) {
    			x0[i] = Double.parseDouble(X0[i]);
    		}
    		return x0;
    	}
    }
    

    输出结果


    展开全文
  • 逻辑回归代价函数如下: 根据这个代价函数,我们要做的就是找到使得J(θ)取得最小是的参数θ值。 梯度下降法 需要用迭代公式来同时迭代计算θ向量中所有的θ值。 线性回归和逻辑回归假设函数的不同: 第一个是...

    代价函数

    函数化简

    代价函数回顾:
    代价函数
    将代价函数合成一个公式可得:
    代价函数
    显然,对y进行0 1 赋值,可以分别得到原来的表达式。

    逻辑回归的代价函数完整表达式

    逻辑回归代价函数如下:
    完整表达式
    根据这个代价函数,我们要做的就是找到使得J(θ)取得最小是的参数θ值。

    梯度下降法

    梯度下降算法
    需要用迭代公式来同时迭代计算θ向量中所有的θ值。

    线性回归和逻辑回归假设函数的不同:

    假设函数
    第一个是线性回归的假设函数,第二个是逻辑回归的。由此看,逻辑回归和线性回归的梯度下降法是完全不同的。

    图片主要截自吴恩达老师的机器学习视频看

    展开全文
  • 代价函数: function [jVal,gradient]=costFunc(theta) %load data fid=fopen('D:\graduate design\data\track2\training.txt'); temp=textscan(fid,'%f%f%f%f%f%f%f%f%f%f%f%f',1000000); temp=cell2mat(temp)...
  • 逻辑函数 我们先来看看如何对逻辑函数(Sigmoid函数)求导: 代价函数 利用上面的结果,借助复合函数求导公式等,可得: 向量化形式:
  • 入坑machine leaning已有3月之久,毫无任何统计学基础,而吴恩达的视频对于数学属于能避免就跳过,对于小白来说并不是一种好事,粗谈自己对于linear regression和logical regression如何求代价函数的理解。...
  • 逻辑回归代价函数(Logistic Regression Cost Function) 逻辑回归代价函数(也称作成本函数),为了训练逻辑回归模型的参数w和参数b,需要一个代价函数。 损失函数又叫做误差函数,用来衡量算法的运行情况,...
  • 前言 在上一篇随笔里,我们讲了Logistic回归cost函数的推导过程。接下来的算法求解使用如下的cost函数形式: 简单回顾一下几个变量的含义: 表1 cost函数解释 x(i) 每个样本数据点的特征值 ...J(θ) 代价函数,...
  • 借鉴了github还有网上的大神的东西,总结记录下 其中,逻辑函数的求导如下:
  • 逻辑回归凸性判断(习题4.2),使用二阶凸性判断。其中,二阶凸性涉及到二次求导出的海森矩阵,需要证明矩阵的特征值都为非负的。(对称矩阵证明矩阵非负,有一个更为简便的方法,涉及到习题2.9和习题2.10的证明)
  • 1)梯度下降θθ的更新过程,走梯度方向的反方向:  ...Sigmoid函数求导: ...函数:f(z) = 1 / (1 + exp( − z)) ...softmax的损失函数: ...对于给定的测试输入 ,我们想用假设函数针对每一个类别j估算出概率值...
  • 本篇博文主要讲解逻辑回归中的代价函数逻辑回归代价函数与线性回归中的代价函数不同。
  • 逻辑回归-代价函数

    2019-01-30 19:42:50
    同样的,理论上说,我们对分类问题,使用逻辑回归模型的也定义代价函数的误差的平方和,但是这里有个问题出现了。 我们将假设(Hypothesis) : 代入到代价函数中,我们得到的代价函数是一个非凸函数(non-convex ...
  • 如果我们在逻辑回归中也用这个代价函数去拟合参数行不行呢?答案是不行。因为这个代价函数逻辑回归中的图像是这个样子的: 这是一个非凸函数,有多个局部最优解,运用梯度下降算法并不会收敛到它的全局最优解,...
  • 逻辑回归代价函数的推导

    千次阅读 2018-08-23 10:03:50
    逻辑回归代价函数 要做的是根据给定的训练集,把参数w给求出来了。要找参数w,首先就是得把代价函数(cost function)给定义出来,也就是目标函数。  我们第一个想到的自然是模仿线性回归的做法,利用误差平方...
  • 逻辑回归: 我们知道,线性回归可以预测一个数值,但是这个数值的大小呢,不一定,然而对于分类问题,我们想要得到0或者1,怎么办?   拿这张图片的例子来说,我们想要预测这两类,可以明显的找到一条...
  • 1.1 逻辑回归代价函数 1.2 逻辑回归中的梯度下降法 参考文献 吴恩达老师Deep Learning课程
  • 机器学习-逻辑回归-代价函数

    千次阅读 2016-08-24 23:33:27
    = g(θ^T * x),曲线如下图所示发现J(θ)的曲线图是"非凸函数",存在多个局部最小值,不利于我们求解全局最小值因此,上述的代价函数对于逻辑回归是不可行的,我们需要其他形式的代价函数来保证逻辑回归代价函数是...
  • Coursera上在推导代价函数时一笔带过了,没有过程,现推导如下: 所给代价函数: J(θ)=−1m[∑mi=1y(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))] 其中: hθ(x(i))=11+e−θTx 令
  • 目标:求出逻辑回归损失函数的最小值。 逻辑回归的损失函数: 逻辑回归损失函数的梯度: 计算预测函数Sigmoid函数的导数: ...回顾一下线性回归代价函数的梯度的向量化: 参考资料:bobo老师机器学习教程 ...
  • 逻辑回归模型及其代价函数推导

    千次阅读 2017-08-02 22:45:08
    逻辑回归模型的假设是:g 代表逻辑函数(logistic function)是一个常用的逻辑函数为S形函数 (Sigmoid function),公式为:,该函数的图像为:合起来,我们得到逻辑回归模型的假设模型:,hθ(x)的作用是,对于...
  • 逻辑回归代价函数 前面的博客中,我们提到决策边界的时候是假设我们有了合适的 θ,现在我们就讨论一下如何来获得合适的 θ。 这时候我们想到的就是用一个代价函数来描述真实值和预测值之间的差异。但是跟线性...
  • 机器学习(七)逻辑回归代价函数 前言: 由机器学习(六)我们得到了二分类问题的假设函数 hθ(x),那么下一步我们需要确定代价函数 J(θ),然后通过梯度下降法确定拟合参数θ。 一、代价函数 1、假设函数: ...
  • 逻辑回归代价函数: 梯度公式: 其中: Octave代码:

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,037
精华内容 6,414
关键字:

逻辑回归的代价函数