hung-yi lee_p11_逻辑回归
文章目录
- step1 Function Set
- step2 goodness of a function
- step3 Find the best function
- why not Logistic Regression + Square Error
- Discriminative v.s. Generative
- 结论(判别模型的优势)
- 解释-生成模型为何稍逊色
- 生成模型的优势
- 多分类模型
- 逻辑回归的局限性
- 死穴
- 特征转化
- 串联起逻辑回归模型
- 类神经网络
step1 Function Set
要找的是一个几率,对应不同的类别
如果用高斯分布,该几率可以表示成sigma of z,其中z为
因此函数集也就是许许多多含有不同w,b的函数
图像化模型(图中z的表示错了)
逻辑回归与线性回归对比(线性回归是最基础的嘛)
step2 goodness of a function
假设有N笔数据组成的测试数据,每笔分属于某个类别
并假设测试数据的结果是刚才的概率生成函数产生的
注:这里的概率生成函数指的是
给定w和b,就可以算出概率生成函数产生以上N笔数据组成的测试数据的几率(最大似然函数-用来衡量找到的函数的好坏)
最有可能产生以上测试数据对应的w,b也就是能使得以上函数几率最大的w,b。记作w和b(最好的w和b)
想让计算更容易,把找最大化L函数的(w,b)转化为找最小化-lnL函数的(w,b)
为了统一每一项的表示,写成大sigma的形式,作符号上的转换
将类别1记作1,类别2记作0(图中y^标错了,应该是110)
上式就可以写成
最大似然函数也就可以写成
其中中括号内的两项其实是两个伯努利分布的交叉熵(假设有两个伯努利分布p和q)
p和q的cross entropy(交叉熵)就是下式
它的作用是衡量两个分布有多接近,当两个分布一模一样,交叉熵就是0
对比逻辑回归(左)和线性回归的损失函数,结果如下
问题来了,为何不像线性回归一样直接使用平方损失/均方差作为损失函数?(见第四部分why not Logistic Regression + Square Error)
step3 Find the best function
使用梯度下降找到最佳函数
数学计算具体见视频18分钟左右
总之,对求对数、取反后的最大似然函数求导后得到的结果如下
使用梯度下降更新参数的过程如下所示
向量w更新的快慢取决于三个量①学习率(自己定)②真实结果和求出结果的差距③取决于数据的
比较逻辑回归和线性回归更新参数的方式,发现一样的
唯一不同的是f结果的取值范围
why not Logistic Regression + Square Error
如果这么做了,会造成(以类别1为例)
训练结果离真实结果很近时,微分是0(合理)
训练结果离真实结果很远时,微分是0(不合理)
这就造成,逻辑回归模型如果使用均方差作为损失函数,并使用梯度下降靠近最优解,离目标很远时,一开始就卡住了(微分为0)
Discriminative v.s. Generative
判别模型(逻辑回归)和生成模型(分类)对比
①step1 函数集相同
不同的是找w和b的过程(判别模型是直接找的,生成模型要通过概率,即要先找sigma1 sigma2 covariance)
问题是,两种方式找到的w和b一样吗?
答案是否定的。也就是两种方法是相同的函数集,找到的函数却不同。
在逻辑回归里面没有分布假设,生成模型里面假设成高斯分布、伯努利分布……
结论(判别模型的优势)
哪种方式找出的w和b更好?
来看结果
二维 难以分出胜负
七维 判别模型的精度更高
解释-生成模型为何稍逊色
例:训练集中有13笔数据,当两个特征值都为1时,认为属于Class1,否则认为属于Class2
可以分别算出取自class1/class2的数据特征1/特征2的值为1的概率是 1 1 1/3 1/3
在测试集中,给一个已知特征1,2的值的数据,可以使用朴素贝叶斯算出其属于class1的概率
结果小于0.5,也就是认为该测试数据是属于class2。
究其根本,生成模型做了一些前提假设(脑补),它认为class2里面没出现(1,1)是因为取样取得不够多。
脑补到底好不好?通常不好,但当数据比较少时,可以很好
生成模型的优势
- 生成模型需要的数据量更小(因为有自己的假设)
- 可以忽视掉数据中的噪声(label本身有问题)
- priors and class-dependent probabilities can be estimated from different sources.
先验概率和类独立概率可以来自不同来源
ex:语音识别这两部分就能分开考虑,所以整体上用的是生成模型
多分类模型
现在有三个类别分别对应3组参数
softmax-通过指数exp的方法将最大max放大了(增大了不同输入之间的差距3 1 -3 ->20 2.7 0.05)并且将最终的结果控制在了(0,1)
如下图,x是输入,y是由y1,y2,y3组成的输出。其中y和y^要能算交叉熵,都必须是概率分布
做出如下设定(好处是class1,2,3之间无谁跟谁更近)
之后就参照二分类,最小化交叉熵,找到最优函数。
逻辑回归的局限性
死穴
如果现在要做二分类,class1的两笔data分别是(0,1)(1,0),class2的两笔data分别是(0,0)(1,1)
可以画出一条直线y使得class1的两笔数据都在y>=0.5的范围而class2的两笔数据都在y<0.5的范围吗
做不到!
特征转化
如果还是坚持用逻辑回归,只能做feature transformation,问题是找到好的特征转换方式并不容易,如果在上面投入太多精力,就不是机器学习了
我们希望机器自己做特征转换,也就是
串联起逻辑回归模型
如下图所示,前两个逻辑回归模型做的事情是feature transformation,后一个逻辑回归模型做的事情是分类
回到刚刚那个死穴,原来一个神经元没解决的难题现在被三个神经元解决了
(下图中的三幅图分别对应上图中的三个神经元模型)
类神经网络
给多层模型换个名字,摇身一变成神经网络,也就是深度学习
hung-yi lee_p11_逻辑回归相关推荐
- 机器学习与高维信息检索 - Note 3 - 逻辑回归(Logistic Regression)及相关实例
逻辑回归 Logistic Regression 3. 逻辑回归 补充: 凸性 Convexity 定义3.1 定理3.2 定理3.3 成本函数的凸性 3.1逻辑回归的替代方法 3.2 线性可分性和逻 ...
- 机器学习入门|快速掌握逻辑回归模型
http://blog.itpub.net/29829936/viewspace-2558236/ 2019-01-14 17:30:19 主要内容: 一.逻辑回归的原理 二.极大似然估计 三.逻辑回 ...
- 逻辑回归损失函数(cost function)
转载:https://www.cnblogs.com/richqian/p/4511557.html 逻辑回归模型预估的是样本属于某个分类的概率,其损失函数(Cost Function)可以像线型回归 ...
- 机器学习基础专题:逻辑回归
逻辑回归 广义线性模型. 原理 输入 训练集数据T=(x1,y1)...(xM,yM)T = {(x_1,y_1) ... (x_M,y_M)}T=(x1,y1)...(xM,yM),xi∈X ...
- 逻辑回归原理(python代码实现)
原文: https://blog.csdn.net/csqazwsxedc/article/details/69690655 Logistic Regression Classifier逻辑回归主要思 ...
- ML-1 逻辑回归和梯度下降
Author:吾爱北方的母老虎 原创链接:https://mp.csdn.net/postedit/80244886 Logistic Regression The data 我们将建立一个逻辑回归模 ...
- 2.2 逻辑回归-机器学习笔记-斯坦福吴恩达教授
逻辑回归 上一节我们知道,使用线性回归来处理 0/1 分类问题总是困难重重的,因此,人们定义了逻辑回归来完成 0/1 分类问题,逻辑一词也代表了是(1) 和 非(0). Sigmoid预测函数 在逻辑 ...
- 逻辑回归Logistic Regression 模型简介
逻辑回归(Logistic Regression)是机器学习中的一种分类模型,由于算法的简单和高效,在实际中应用非常广泛.本文作为美团机器学习InAction系列中的一篇,主要关注逻辑回归算法的数学模 ...
- MATLAB之线性回归,逻辑回归,最小二乘法,梯度下降,贝叶斯,最大似然估计
文章目录 线性回归(定义域(-∞,+∞),值域(-∞,+∞),即输入输出连续) 线性回归/最小平方误差理论 MATLAB之线性回归/最小平方误差 损失函数/代价函数求导法求线性回归 一次拟合求线性系统 ...
最新文章
- MonoCon:使用辅助学习的单目3D目标检测框架(AAAI 2022)
- Python 之 random模块
- coursera 《现代操作系统》 -- 第五周 同步机制(1)
- linux的系统移植——序言
- PS2: 这篇文章中的图片绘图工具使用的是Dia (sudo apt-get install dia)。据说yEd也很不错。...
- 实验2-2-8 阶梯电价 (15 分)
- index android js,reactjs – React Native项目没有index.ios.js或index.android.js
- 2019下半年软件设计师下午题
- Android MPush开源消息推送系统:简洁、安全、支持集群
- 在 Java 应用程序中访问 USB 设备
- vue 加headers_(vue.js)axios interceptors 拦截器中添加headers 属性
- fxp连接失败_flashfxp连接提示连接失败 (10061: 连接被拒)与列表错误
- fiddler抓手机APP包(安卓)
- 基于局部自适应色差阈值的彩色图像边缘检测_爱学术
- 1.background、color、渐变
- 文献 | 从认知和护理角度谈双相情感障碍
- linux查看exif软件,EXIF信息查看器使用教程及功能解析
- 安卓搭建http文件服务器,如何在安卓上搭建http服务器
- 1646. Prime Path
- CatBoost参数解释