2.2 logistic回归损失函数(非常重要,深入理解)
- 上一节当中,为了能够训练logistic回归模型的参数w和b,需要定义一个成本函数
- 使用logistic回归训练的成本函数
- 为了让模型通过学习来调整参数,要给出一个含有m和训练样本的训练集
- 很自然的,希望通过训练集找到参数w和b,来得到自己得输出
- 对训练集当中的值进行预测,将他写成y^(I)我们希望他会接近于训练集当中的y^(i)的数值
- 使用logistic回归训练的成本函数
- 现在来看一下损失函数或者叫做误差函数
- 他们可以用来衡量算法的运行情况
- 可以定义损失函数为y^和y的差,或者他们差的平方的一半,结果表明你可能这样做,但是实际当中,大家都不会这么做,因为当你学习这些参数的时候,你会发现之后讨论的优化问题,会变成非凸的,最后会得到很多的局部最优解,梯度下降算法可能找不到最优的全局最优值,
- 直观理解就是我们定义这个损失函数L,来衡量你的预测输出值y^和y的实际值有多接近,误差平方看起来是一个合理的选择,但是如果用这个的话,梯度下降法就不会很好用,
- 在logistic回归中,我们会定义一个不同的损失函数,它起着于误差平方相似的作用,这会给我们一个凸的优化问题,他很容易去做优化,
- 在logistic回归中,我们用的损失函数将会是下面这样的,(非常重要!)
- 直观的看一下为什么这个函数会起到作用,
- 记得如果我们使用误差平方越小越好
- 对于这个logistic回归的损失函数,同样的,我们也想让它尽可能的小,
- 为了更好的理解它能起到好的作用,来看两个例子
- 当y=1的时候,就是第一项L带个负号,
- 这就是说,当y=1的时候,你想让-log(y^)尽可能小(代表着误差尽可能的小),那么就需要y^足够大,但是因为y^是sigmoid函数得出来的,永远不会比1大,也就是说,如果y=1的时候,你想让y^,尽可能的大,但是它永远不会大于1,所以你要让y^接近1(从sigmoid函数的图像上看一下,采取什么样的措施才能够让y^接近于1呢?就是上一节分析的那样),
- 当y=0的时候,
- 在学习过程中,想让损失函数小一些,也就意味着你想要log(1-y^)够大,通过这一系列的推导,发现,损失函数让y^尽可能的小,再次,因为y^只能介于0和1之间,所以就是说,当y=0的时候,损失函数会让这些让y^尽可能的接近0,有很多函数都能够达到上面的效果,
- 当y=1的时候,就是第一项L带个负号,
- 如果y=1,我们尽可能的让y^很大,如果y=0,尽可能的让y^足够小,
- 给出解释为什么在logistic回归中,要使用这个形式的损失函数。
- 最后说一下
- 在单个训练样本中定义的,它衡量了在单个训练样本上的表现(个人理解也就是一个训练集中的每个训练样本),
- 直观的看一下为什么这个函数会起到作用,
- 下面定义一个成本函数
- 它衡量的是在全体训练样本上的表现,这个成本函数J,根据之前得到的两个参数w和b,J(w,b)等于所有的训练样本的损失函数的和的平均数
- y^是用一组特定的参数w和b,通过logistic回归算法得出的预测输出值,
- 损失精度函数适用于单个训练样本,而成本函数,基于参数的总成本,所以在训练logistic回归模型的是时候,我们需要找到合适的参数w和b,让下面这里的成本函数尽可能的小,
- 这一节我们看到了logistic回归算法的过程,以及训练样本的损失函数,还有和参数相关的总体成本函数,结果表明,logistic回归可以被看作是一个非常小的神经网络,
- 下一节讲解,神经网络能够做什么,看看如何将logistic回归看做一个非常小得神经网络,
2.2 logistic回归损失函数(非常重要,深入理解)的更多相关文章
- logistic回归损失函数(非常重要,深入理解)
2.2 logistic回归损失函数(非常重要,深入理解) 上一节当中,为了能够训练logistic回归模型的参数w和b,需要定义一个成本函数 使用logistic回归训练的成本函数 为了让模型通过学 ...
- 感知机、logistic回归 损失函数对比探讨
感知机.logistic回归 损失函数对比探讨 感知机 假如数据集是线性可分的,感知机学习的目标是求得一个能够将正负样本完全分开的分隔超平面 \(wx+b=0\) .其学习策略为,定义(经验)损失函数 ...
- 2.9 logistic回归中的梯度下降法(非常重要,一定要重点理解)
怎么样计算偏导数来实现logistic回归的梯度下降法 它的核心关键点是其中的几个重要公式用来实现logistic回归的梯度下降法 接下来开始学习logistic回归的梯度下降法 logistic回归 ...
- logistic回归具体解释(二):损失函数(cost function)具体解释
有监督学习 机器学习分为有监督学习,无监督学习,半监督学习.强化学习.对于逻辑回归来说,就是一种典型的有监督学习. 既然是有监督学习,训练集自然能够用例如以下方式表述: {(x1,y1),(x2,y2 ...
- 『科学计算』通过代码理解线性回归&Logistic回归模型
sklearn线性回归模型 import numpy as np import matplotlib.pyplot as plt from sklearn import linear_model de ...
- Logistic回归总结
原文:http://blog.csdn.net/dongtingzhizi/article/details/15962797 Logistic回归总结 作者:洞庭之子 微博:洞庭之子-Bing (2 ...
- 【转载】logistic回归
原文地址:https://www.cnblogs.com/zichun-zeng/p/3824745.html 1. logistic回归与一般线性回归模型的区别: (1) 线性回归的结果变量 ...
- 如何在R语言中使用Logistic回归模型
在日常学习或工作中经常会使用线性回归模型对某一事物进行预测,例如预测房价.身高.GDP.学生成绩等,发现这些被预测的变量都属于连续型变量.然而有些情况下,被预测变量可能是二元变量,即成功或失败.流失或 ...
- 对线性回归,logistic回归和一般回归的认识
原文:http://www.cnblogs.com/jerrylead/archive/2011/03/05/1971867.html#3281650 对线性回归,logistic回归和一般回归的认识 ...
随机推荐
- JS DOM属性+JS事件
DOM属性 console.log(ele.attributes) 获取ele元素的属性集合 ele.attributes.getNamesItem(attr).nodeValue 获取指定属性值 e ...
- 【easyui】treegrid逐级加载源码
当初看这源码的目的是: 1.treegrid是怎么实现逐级加载树结构的. 解: 见demo,主要就是点击节点的时候会请求后台. 2.treegrid加载后,第二次展开节点会不会再次请求后台. 解:第二 ...
- 关于Comparable和Comparator那些事
在实际项目开发过程中,我们经常需要对某个对象或者某个集合中的元素进行排序,常用的两种方式是实现某个接口.常见的可以实现比较功能的接口有Comparable接口和 Comparator接口,那么这两个又 ...
- tmp = 2/4;竟然没有发现的
我还纠结着单目运算符和双目运算符和乘除的一些优先级什么事情. #include "common.h" #include <stdio.h> #include <s ...
- 检测到 LoaderLock Message: 正试图在 OS 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。
解决方法: 调试状态=>异常(Ctrl+Alt+E)=>Managed Debuggin Assistants=>LoaderLock 的选中状态去掉即可.
- Docker安装部署es集群
Docker安装部署es集群:环境准备:已安装docker的centos服务器一台1. 拉取es版本docker pull elasticsearch:5.6.82. 新建文件夹 数据挂载目录 和 配 ...
- 在linux中安装nginx
linux系统安装在vmware中,首先在主机中利用shell工具与虚拟机连接 1.在linux中查看虚拟机的ip地址 在终端输入 ifconfig 红框里面就是ip地址 2.在主机中打开shell工 ...
- C语言库函数strstr、strch比较
该库函数包含在<string.h>头文件中,函数原型:extern char *strstr(char *str1, const char *str2);使用方法 char *strstr ...
- 实用沙盒工具 —— VMware Workstation15安装教程
一:简介 VMware Workstation(中文名"威睿工作站")是一款功能强大的桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的操作系统,和进行开发.测试 .部署新 ...
- 从0开始学算法--排序(1.12c++利用标准库排序)
1,简单数组按升序排序 sort(a,a+n); #include <algorithm> #include <iostream> #include <cstring&g ...