ccc-Logistic Regression-李宏毅(5)

news/2024/11/19 22:39:30/

文章目录

        • Step 1: Function Set
        • Step 2: Goodness of a Function
        • Step 3: Find the best function
        • Why not Logistic Regression + Square Error
        • Discriminative v.s. Generative
        • Multi-class Classification(3 Class)
        • Limitation of Logistic Regression
          • Cascading logistic regression models
        • Deep Learning!

上次通过贝叶斯推导出了一个线性的函数,这里尝试直接求解这个函数并称其为逻辑回归

Step 1: Function Set

在这里插入图片描述
它与linear regression模型不同在于输出:
在这里插入图片描述
其中w:wightw:wightw:wight , b:biasb:biasb:bias , xi:inputx_i:inputxi:input

Step 2: Goodness of a Function

假设N个training data从函数fw,b(x)=Pw,b(C1∣x)f_{w,b}(x)=P_{w,b}(C_1|x)fw,b(x)=Pw,b(C1x)产生,现在需要找到最好的参数w∗w^*wb∗b^*b使L(w,b)L(w,b)L(w,b)(likelihood)最大,公式表达如下:
在这里插入图片描述
通过对数似然可以转化成求解最小值,相乘转化成相加,同时约项有:
在这里插入图片描述
合并累加有:
在这里插入图片描述
Cross entropy意思是交叉熵,可以理解为两个伯努利分布的损失函数,当两者一样结果为0。与Linear Regression对比如下:
在这里插入图片描述

Step 3: Find the best function

image-20230211220700923
原始求解函式如下:
image-20230211220546373
第一项计算得:
image-20230211221237948
第二项计算得:
image-20230211221330057
代入原式整理后有:
image-20230211221612696
由这个结果可以知道,权重更新由3个参数决定:learning rate,x,y^n−fw,b(xn)\hat y_n-f_{w,b}(x^n)y^nfw,b(xn)即预测与实际的差异,表示如下:

Linear Regression与Logistic Regression梯度下降更新步骤相同:

但要注意Logistic的y^\hat yy^是0或1,而Linear的是任意实数

Why not Logistic Regression + Square Error

三步建立Model如下:
在这里插入图片描述
但是这样会出现混淆,样本距离目标很近或很远时梯度计算都很小,这样会导致距离远时收敛过慢
image-20230211223001520
对比图如下:
在这里插入图片描述
可以看到,Cross Entropy距离目标越远,微分值越大,参数update越快;Square Error距离目标很远时候,微分值很小,参数update就很慢。可能你会想到,我们可以在Square Error的微分值很小的时候把learning rate设的大一点,但微分值很小的时候,也有可能是距离目标值很近,我们分不清楚微分值小时候是距离目标很近还是很远,所以没办法确定learning rate设置是小还是大。所以, 我们使用Cross Entropy可以让training顺利很多。

Discriminative v.s. Generative

  • 判别模型:如logistic regression直接寻找w和b
  • 生成模型:如Gaussian先假设再寻找(脑补特性)

不同方式具体表示图如下:
在这里插入图片描述
在本次实验中两者表现如下:
在这里插入图片描述
可以看到判别式效果好一些,一般也认为判别式效果更加。生成式有优势具体场景如下:
image-20230211225047197

GenerativeDiscriminative
概率联合概率P(X,Y)后验概率 P(Y∣X)P(Y|X)P(YX)
解释首先建立样本的联合概率概率密度模型P(X,Y),然后再得到后验概率P(Y∣X)P(Y|X)P(YX),再利用它进行分类(所有概率进行比较,取最大的一个)输入属性X可以直接得到Y。有限样本条件下建立判别函数,不考虑样本的产生模型,直接研究预测模型
特点尝试去找到底数据是怎么生成的,基于假设不进行过多假设,不关心数据产生,只关心差异
优点生成模型收敛速度比较快,即当样本数量较多时,生成模型能更快地收敛于真实模型直接学习P(Y∣X)P(Y|X)P(YX)或f(X),可以对数据进行抽象、定义特征并使用特征,因此可以简化学习问题。直接面对预测,准确率较高
缺点需要更多的样本和更多计算,只需要做分类任务,就浪费了计算资源决策函数Y=f(X)或者条件概率分布P(Y∣X)P(Y|X)P(YX),不能反映训练数据本身的特性

Multi-class Classification(3 Class)

计算不同类别的z值,放入Softmax函数中(又称激活函数,即取指数后归一)
在这里插入图片描述 Softmax拉大最大值与最小值的差距,即强化最大值。之后就可以计算预测和真实的交叉熵
在这里插入图片描述
需要注意给分类增加限制,采用one-hot编码
在这里插入图片描述

Limitation of Logistic Regression

某些时候,Logistic Regression并不能做到分类成功,但数据有一个异或的关系时,是无论无和都分类不成功的:
在这里插入图片描述
可以人为Feature Transformation将样本位置进行转换尝试分类:
在这里插入图片描述
需要一种机器帮助Transformation的算法,下面就是咯!

Cascading logistic regression models

将样本的Logistic 用来做feature transformation,再另外用一个Logistic预测,具体图如下:
在这里插入图片描述
效果图如下:
在这里插入图片描述

Deep Learning!

多层的特征转换就形成了Neural Network(神经网络)即Deep learning 的领域!


http://www.ppmy.cn/news/24208.html

相关文章

【openGauss实战8】Schema的图文解读

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…

【RabbitMQ五】——RabbitMQ路由模式(Routing)

RabbitMQ路由模式前言RabbitMQ模式的基本概念为什么要使用Rabbitmq 路由模式RabbitMQ路由模式组成元素路由模式完整代码Pom文件引入RabbtiMQ依赖RabbitMQ工具类生产者消费者1消费者2运行结果截图前言 通过本篇博客能够简单使用RabbitMQ的路由模式。 本篇博客主要是博主通过官网…

【JavaScript】35_包装类与垃圾回收机制

10、包装类 在JS中,除了直接创建原始值外,也可以创建原始值的对象 通过 new String() 可以创建String类型的对象 通过 new Number() 可以创建Number类型的对象 通过 new Boolean() 可以创建Boolean类型的对象 但是千万不要这么做 包装类&#xff1…

box86 exagear

box86 box86编译的时候是静态编译,所以编译好后一个可执行没任何依赖直接拷贝走就能运行,注意,box86需要32位的arm库(armhf),麒麟系统有打包好的armhf库的包,可以直接用,缺的再单补。box86做指令…

用 Python 调用 GPT-3 API

用 Python 调用 GPT-3 API GPT-3 是去年由 Open AI 推出的语言机器学习模型。它因其能够写作、写歌、写诗,甚至写代码而获得了广泛的媒体关注!该工具免费使用,只需要注册一个电子邮件即可。 GPT-3 是一种叫 transformer 的机器学习模型。具体…

前端对于深拷贝和浅拷贝的应用和思考

浅拷贝 浅拷贝 : 浅拷贝是指对基本类型的值拷贝,以及对对象类型的地址拷贝。它是将数据中所有的数据引用下来,依旧指向同一个存放地址,拷贝之后的数据修改之后,也会影响到原数据的中的对象数据。最简单直接的浅拷贝就…

C语言---字符串函数总结

🚀write in front🚀 📝个人主页:认真写博客的夏目浅石. 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝 📣系列专栏:夏目的C语言宝藏 💬总结:希望你看完之…

分布式架构下,Session共享有什么方案?

分布式架构下,Session共享有什么方案? 1.不要有Session:但是确实在某些场景下,是可以没有session的,其实在很多借口类系统当中,都提倡【API无状态服务】; 也就是每一次的接口访问,都…