【李宏毅2020 ML/DL】P11 Logistic Regression | 由逻辑回归中的特征转换巧妙引出“神经网络”的概念
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的、自己不知道的东西。
已经有人记了笔记(很用心,强烈推荐):
https://github.com/Sakura-gh/ML-notes
本节对应笔记:https://sakura-gh.github.io/ML-notes/ML-notes-html/7_Logistic-Regression.html
本节内容综述
- 接着上节课的内容,基于高斯的
线性函数外包Sigmoid函数
即Logistic Regression
。 - 优化目标从 w∗,b∗=argmaxw,bL(w,b)w^*,b^* = arg \max_{w,b}L(w,b)w∗,b∗=argmaxw,bL(w,b) 可以变为 w∗,b∗=argminw,b−lnL(w,b)w^*,b^* = arg \min_{w,b}-\ln L(w,b)w∗,b∗=argminw,b−lnL(w,b)。基于此,引入交叉熵概念。
- 如何优化?同样,对参数取偏微分,进行了
精彩的推导
,有−lnL(w,b)∂wi=∑n−(y^n−fw,b(xn))xin\frac{-\ln L(w,b)}{\partial w_i}=\sum_n -(\hat{y}^n-f_{w,b}(x^n))x_i^n∂wi−lnL(w,b)=∑n−(y^n−fw,b(xn))xin;惊人的是,Logistic regression 与 Linear regression 的迭代式是相同的。 - 接着,老师讲了
为什么 Logistic regression 不能用 Square Error
。因为在 Square Error 的分布中,即便离目标很远,其梯度也很平缓。见[小细节](#Cross Entropy v.s. Square Error)。 - 判别式与生成式(Discriminative v.s. Generative),其所用的式子其实本质上是相同的。见[小细节](#Discriminative v.s. Generative)。但其结果是不同的,因为后者基于概率模型,假设多一些。但实际上,
前者(Discriminative)表现一般会更好
。 - 多分类问题。我们使用
softmax
函数。见[小细节](#Multi-class Classification)。 - 其实,逻辑回归有很强的限制性。比如,无法处理
异或的四个数据
。解决方案有:Feature Transformation
(比如计算其到某几个点的距离);此外,可以使用神经网络进行特征处理。见小细节。
小细节
引入交叉熵概念
对于逻辑回归的优化目标,我们进行如下变换。
如上,将类别的目标值用0/1表示。
我们的目标函数正好是两个伯努利分布的交叉熵
。
交叉熵可以理解为两个分布的接近程度。
Cross Entropy v.s. Square Error
Discriminative v.s. Generative
在两个模型中,其结果是不同的,因为假设不同的:
- 在 Discriminative 中,我们使用梯度下降寻找参数最优值 w 与 b ,并且
没有做任何实质性假设
; - 在 Generative 中,我们对概率分布做了
实质性假设
,比如是否是高斯分布、是否独立(可以使用朴素贝叶斯等等)。
一般来讲,Discriminative表现会更好。
举个例子,对于如下训练数据(典型的不平衡的数据):
对于[1,1][1,1][1,1]的训练数据,我们人类自然认为其属于类别1的概率更大,但是根据朴素贝叶斯计算得出,其属于类别2的概率更大,这是错误的。朴素贝叶斯计算过程如下。
因为多了一些假设,贝叶斯帮助了我们进行“脑补”。造成了偏差。
但是有时,使用 Generative 也有好处。比如语音辨识中常使用,因为假设是合理的。
Multi-class Classification
优化目标则为交叉熵。
由特征转换引入神经网络的概念
之前提到了,单个 softmax 不能处理异或的数据。但是我们可以将输入的特征进行特征转换
,从而可以使用线性分类。
但是,如何做自动的特征提取
呢?多设几个回归模型,拼在一起。你会发现,这就是神经元及神经网络。
【李宏毅2020 ML/DL】P11 Logistic Regression | 由逻辑回归中的特征转换巧妙引出“神经网络”的概念相关推荐
- 【李宏毅2020 ML/DL】P3 Regression - Case Study
资源: Bilibili BV1JE411g7XF http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML20.html Machine Learning 202 ...
- 【李宏毅2020 ML/DL】P1 introduction
[李宏毅2020 ML/DL]P1 introduction 本节主要介绍了 DL 的15个作业 英文大意 Regression: 回归分析 Classification: 分类 RNN: 循环神经网 ...
- 【李宏毅2020 ML/DL】P86-87 More about Domain Adaptation
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本节内容综述 本节课由助教 Chao Brian 讲解. 首先讲解些领域适配的基础内容,包括名词.定义等. 接 ...
- 【李宏毅2020 ML/DL】P59 Unsupervised Learning - Auto-encoder
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...
- 【李宏毅2020 ML/DL】P58 Unsupervised Learning - Neighbor Embedding | LLE, t-SNE
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...
- 【李宏毅2020 ML/DL】P15 Why Deep-
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐): https://github.com/Sakura-gh/ML-not ...
- 【李宏毅2020 ML/DL】P14 Tips for training DNN | 激活函数、Maxout、正则、剪枝 Dropout
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐): https://github.com/Sakura-gh/ML-not ...
- 李宏毅svm_李宏毅2020 ML/DL补充Structured Learning Structured SVM
李宏毅2020 ML/DL补充Structured Learning Structured SVM [李宏毅2020 ML/DL]补充:Structured Learning: Structured ...
- Logistic Regression(逻辑回归)原理及公式推导
Logistic Regression(逻辑回归)原理及公式推导 Logistic Regression(逻辑回归)是机器学习中一个非常非常常见的模型,在实际生产环境中也常常被使用,是一种经典的分类模 ...
最新文章
- jenkins 配置使用
- Oracle存储过程编译卡死的解决方法
- ubuntu 符号连接的层数过多_Linux符号连接的层数过多解决
- Java 多文件上传
- python 定义字符串变量_Python变量和字符串详解
- 高性能WEB开发(11) - flush让页面分块,逐步呈现
- js获取本月或指定月份的最后一天
- 使用MSYS2编译64位gvim
- 使用Emacs执行外部shell命令
- 第三季-第9课-库函数方式文件编程
- 3dmax渲染大图高清最详细参数来了
- PHP工程师接私单操作流程
- 【docker】虚拟化和docker容器概念
- 【养生之道】男人养生的秘诀
- 一文搞懂单向散列函数
- 动态代理IP有什么用?
- Mysql数据库管理工具简介
- 《Cortex-CM3权威指南》——Cortex-CM3基础
- 个人成长:简单写写《乔布斯传》读后感
- java 经纬度 电子围栏_电子围栏判断 java 版本
热门文章
- [Unity3D]无缝场景切换解决方案(1) - 简单场景切换
- 关于iOS6应用中第三方类库不支持armv7s的问题解决
- [转]Vs解决方案的目录结构设置和管理
- 【vue开发问题-解决方法】(一)在style中设置background-image时路径问题
- 【java】javac命令在win10不可用,提示javac不是内部或外部命令,也不是可运行的程序【解决方法】
- python __file__ is not defined 解决方法
- vs关于“当前不会命中断点 还没有为该文档加载任何符号”的解决方法
- ios系统微信浏览器、safari浏览器中h5页面上拉下滑导致悬浮层脱离窗口的解决方法
- 解决Kubelet Pod启动CreatePodSandbox或RunPodSandbox异常方法
- 华硕主板怎么开启tpm2.0