【ML小结3】线性回归与逻辑回归、softmax回归
1.线性回归
预测函数:
hθ(x)=θ0+θ1xh_\theta(x)=\theta_0+\theta_1xhθ(x)=θ0+θ1x
1.1 梯度下降法
损失函数(均方差损失函数):
minJ(θ)=12m∑i=1m(hθ(xi)−yi)2\min J(\theta)=\frac{1}{2m} \sum_{i=1}^{m}(h_\theta(x_i)-y_i)^2minJ(θ)=2m1i=1∑m(hθ(xi)−yi)2
求偏导:
∂J∂θ0=1m∑i=1m(hθ(xi)−yi)\frac{\partial J}{\partial \theta_0}=\frac{1}{m} \sum_{i=1}^{m}(h_\theta(x_i)-y_i)∂θ0∂J=m1i=1∑m(hθ(xi)−yi)
∂J∂θ1=1m∑i=1m(hθ(xi)−yi)xi\frac{\partial J}{\partial \theta_1}=\frac{1}{m} \sum_{i=1}^{m}(h_\theta(x_i)-y_i)x_i∂θ1∂J=m1i=1∑m(hθ(xi)−yi)xi
重复进行直到收敛{
同步更新:
θj:=θj−α∂J∂θj\theta_j:=\theta_j-\alpha\frac{\partial J}{\partial \theta_j}θj:=θj−α∂θj∂J
}
1.2 正则方程法
适用于特征数n较小时
Xθ=yX\theta=yXθ=y
→θ=(XTX)−1XTy\to \theta=(X^TX)^{-1}X^Ty→θ=(XTX)−1XTy
注意:XTXX^TXXTX须为列满秩矩阵,方可求逆,出现不可逆的情况:
- 冗余特征,线性相关
- 特征数太多n>>m ,应删减特征或使用正则化
2.逻辑回归
线性回归上加激活函数(sigmoid函数):
σ(z)=11+e−z\sigma(z)=\frac{1}{1+e^{-z}}σ(z)=1+e−z1
2.1 为什么要使用sigmoid函数
从对数线性模型推导而来的,记几率odds=P(发生)P(不发生)odds=\frac{P(发生)}{P(不发生)}odds=P(不发生)P(发生),对几率取log等于y,反推出来就sigmoid函数。
y=ln(p1−p)y=ln(\frac{p}{1-p})y=ln(1−pp)
→p=σ(y)=ey1+ey=11+e−y\to p=\sigma(y)=\frac{e^y}{1+e^y}=\frac{1}{1+e^{-y}}→p=σ(y)=1+eyey=1+e−y1
2.2 预测函数
hθ(x)=σ(θTX)=11+e−θTXh_\theta(x)=\sigma(\theta^TX)=\frac{1}{1+e^{-\theta^TX}}hθ(x)=σ(θTX)=1+e−θTX1
hθ(x)h_\theta(x)hθ(x)表示结果取1的概率:
- P(y=1∣x;θ)=hθ(x)P(y=1|x;\theta)=h_\theta(x)P(y=1∣x;θ)=hθ(x) 结果取1的概率越大越好
- P(y=0∣x;θ)=1−hθ(x)P(y=0|x;\theta)=1-h_\theta(x)P(y=0∣x;θ)=1−hθ(x) 结果取0的概率越大越好
- 总之就是希望结果越肯定越好
- 逻辑回归的本质–极大似然估计:max∑i=1mlogP(yi∣x;θ)\max \sum_{i=1}^{m}logP(y_i|x;\theta)max∑i=1mlogP(yi∣x;θ)
2.3 损失函数
Q:逻辑回归损失函数为什么使用最大似然而不用最小二乘?
用最小二乘的话损失函数是非凸函数,很容易陷入局部最优解。
凸函数:深入理解(下)凸函数 - 银山词霸的碎碎念 - CSDN博客
https://blog.csdn.net/weixin_38493025/article/details/89155222
损失函数(交叉熵损失函数):
minJ(θ)=−1m∑i=1m[yiloghθ(xi)+(1−yi)log(1−hθ(xi))]\min J(\theta)=-\frac{1}{m}\sum_{i=1}^m[y_ilogh_\theta(x_i)+(1-y_i)log(1-h_\theta(x_i))]minJ(θ)=−m1i=1∑m[yiloghθ(xi)+(1−yi)log(1−hθ(xi))]
- 当yi=1y_i=1yi=1时中括号前半部分奏效,logP(yi∣x;θ)=logP(yi=1∣x;θ)=loghθ(xi)logP(y_i|x;\theta)=logP(y_i=1|x;\theta)=logh_\theta(x_i)logP(yi∣x;θ)=logP(yi=1∣x;θ)=loghθ(xi)
- 当yi=0y_i=0yi=0时中括号后半部分奏效。logP(yi∣x;θ)=logP(yi=0∣x;θ)=log(1−hθ(xi))logP(y_i|x;\theta)=logP(y_i=0|x;\theta)=log(1-h_\theta(x_i))logP(yi∣x;θ)=logP(yi=0∣x;θ)=log(1−hθ(xi))
求偏导:
∂J∂θj=1m∑i=1m(hθ(xi)−yi)xij\frac{\partial J}{\partial \theta_j}=\frac{1}{m} \sum_{i=1}^{m}(h_\theta(x_i)-y_i)x_i^j∂θj∂J=m1i=1∑m(hθ(xi)−yi)xij
注意到上式同线性回归求偏导的公式完全一样!!!
推导过程参考:https://www.cnblogs.com/zhongmiaozhimen/p/6155093.html
利用到sigmoid函数的性质:
σ′(z)=σ(z)(1−σ(z))\sigma'(z)=\sigma(z)(1-\sigma(z))σ′(z)=σ(z)(1−σ(z))
2.4 非线性分类问题:使用核函数
核函数:如果数据线性不可分,希望通过将输入空间内线性不可分的数据映射到一个高维的特征空间内,使数据在特征空间内是线性可分的,这个映射记作 ϕ(x),
LR模型就不能再表示成y=wTx+by=w^Tx+by=wTx+b的形式(primal form),
而只能表示成y=∑iai<xi,x>+by=\sum_i a_i<x_i,x>+by=∑iai<xi,x>+b的形式(dual form)。
忽略b的话,primal form的模型的参数只有w,存储量小;
而dual form的模型不仅要存储各个aia_iai,还要存储训练数据xix_ixi本身,存储量大。
3.softmax回归
softmax回归是逻辑回归的多分类情况。
激活函数(softmax函数):
g(z)=ez∑j=1kejg(z)=\frac{e^{z}}{\sum_{j=1}^{k} e^j}g(z)=∑j=1kejez
预测函数:
损失函数(对数似然损失函数):
【ML小结3】线性回归与逻辑回归、softmax回归相关推荐
- 机器学习-监督学习-logistic回归,softMax回归
本篇博文来总结一下回归模型里面两个非常重要的模型. logistic回归 softMAX回归 Logistic回归 logistics回归虽然有"回归"两字但是却是分类模型,并且是 ...
- python与机器学习(四)——线性回归和逻辑斯蒂回归
1 线性回归 要求:根据data1的二维散点数据,使用最小二乘法(LSM)求解出y关于x线性拟合的最优参数 读取数据: import numpy as np import pandas as pd i ...
- Logistic and Softmax Regression (逻辑回归和Softmax回归)
1. 简介 逻辑回归和Softmax回归是两个基础的分类模型,虽然听名字以为是回归模型,但实际我觉得他们也有一定的关系.逻辑回归,Softmax回归以及线性回归都是基于线性模型,它们固定的非线性的基函 ...
- 机器学习算法之 logistic、Softmax 回归
逻辑回归本质是分类问题,而且是二分类问题,不属于回归,但是为什么又叫回归呢.我们可以这样理解,逻辑回归就是用回归的办法来做分类.它是在线性回归的基础上,通过Sigmoid函数进行了非线性转换,从而具有 ...
- 【机器学习】对数线性模型之Logistic回归、SoftMax回归和最大熵模型
来源 | AI小白入门 作者 | 文杰 编辑 | yuquanle 完整代码见:原文链接 1. Logistic回归 分类问题可以看作是在回归函数上的一个分类.一般情况下定义二值函数,然而二值函数 ...
- 多分类任务ovo、ovr及softmax回归
多分类任务OVO.OVR及softmax回归 – 潘登同学的Machine Learning笔记 文章目录 多分类任务OVO.OVR及softmax回归 -- 潘登同学的Machine Learnin ...
- 机器学习——线性模型之Softmax回归
问:Softmax回归模型是一种典型处理多分类任务的非线性分类模型 答:错误.Softmax回归是线性分类模型.实际上是逻辑回归的拓展,它将逻辑回归的二分类推广到了多分类,用逻辑回归的方法解决多分类问 ...
- 简单探索MNIST(Softmax回归和两层CNN)-Tensorflow学习
简述 这次是在看<21个项目玩转深度学习>那本书的第一章节后做的笔记. 这段时间,打算把TensorFlow再补补,提升一下技术水平~ 希望我能坚持下来,抽空把这本书刷下来吧~ 导入数据 ...
- TensorFlow HOWTO 1.4 Softmax 回归
1.4 Softmax 回归 Softmax 回归可以看成逻辑回归在多个类别上的推广. 操作步骤 导入所需的包. import tensorflow as tf import numpy as np ...
- 【深度学习】基于MindSpore和pytorch的Softmax回归及前馈神经网络
1 实验内容简介 1.1 实验目的 (1)熟练掌握tensor相关各种操作: (2)掌握广义线性回归模型(logistic模型.sofmax模型).前馈神经网络模型的原理: (3)熟练掌握基于mind ...
最新文章
- Linux Kernel TCP/IP Stack — L3 Layer — 邻居发现子系统
- matlab v7.0,matlab下载-matlab免费版v7.0 官方版下载-6188手游网
- 自学python要下载什么软件-Python学习需要安装的工具
- C学习if条件判断和for循环
- python学习day11
- 手机计算机数据消失了怎么恢复,电脑突然黑屏闪退之后怎么恢复丢失的数据
- 【C语言】时间操作,把1970年开始秒数计算的时间,转换为字符串格式输出
- 调整样式_2019年4月1日起,内河船船员适任证书样式调整成这样啦~
- python:如何传递一个列表参数
- hbase hdfs外部表_硬核干货长文!Hbase来了解一下不?
- OpenCV3学习(11.5) FAST特征检测器FastFeatureDetector
- MySql 学习笔记-Mysql架构介绍与查询sql执行流程
- java jar killed_我的Java应用程序被OOMKilled了,原因竟是这样?
- 图解 MongoDB 地理位置索引的实现原理
- 【重点:DP 双指针 栈】LeetCode 42. Trapping Rain Water
- 【几个关于CSS的网站】
- 【案例】自由运动小球
- 拥抱ARM妹子 序章!ARM妹子~~ 哥我来啦!
- centos6.5编译安装mysql_Centos6.5编译安装mysql 5.7.14详细教程
- hg6201m怎么设置虚拟服务器,移动光猫HG6201M定期重启设置
热门文章
- 读取XML字符串到临时表
- LINUX 查看分区UUID的两种方法
- Linux磁盘管理基本配置
- 编译安装nginx并修改版本头信息—参考实例
- Tomcat 8 解决“At least one JAR was scanned for TLDs yet contained no TLDs”问题
- wordpress配置HTTPS遇到问题解决方案
- Android10定位无法选择,Android 10不能使用uiautomatorviewer定位元素的终极解决方法
- 616nyoj 新手dp
- 数据挖掘原理与算法_古今争翘,一首机器学习与数据挖掘神曲,共11.99G送你直上云霄...
- python一行输出多个数据_python实现一行输入多个值和一行输出多个值的例子