Andrew Ng机器学习课程笔记--week3(逻辑回归&正则化参数)
Logistic Regression
一、内容概要
- Classification and Representation
- Classification
- Hypothesis Representation
- Decision Boundary
- Logistic Regression Model
- 损失函数(cost function)
- 简化损失函数和梯度下降算法
- Advanced Optimization(高级优化方法)
- Solving the problem of Overfitting
- 什么是过拟合?
- 正则化损失函数(cost function)
- 正则化线性回归(Regularized Linear Regression)
- 正则化逻辑回归(Regularized Logistic Regression)
二、重点&难点
1. Classification and Representation
1) Hypothesis Representation
这里需要使用到sigmoid函数--g(z):
\[\begin{equation}
h_θ(x) = g(θ^Tx)
\end{equation}
\]
\[\begin{equation}
z = θ^Tx
\end{equation}
\]
\[\begin{equation}
g(z) = \frac{1}{1+e^{-z}}
\end{equation}
\]

2) Decision Boundary
决策边界:
\[h_θ(x) ≥ 0.5 → y=1 \]
\[h_θ(x) < 0.5 → y=0 \]
等价于
\[g(z) ≥ 0.5 → y=1 \]
\[g(z) < 0.5 → y=0 \]
等价于
\[z ≥0 → y=1 \]
\[z < 0 → y=0 \]
2. Logistic Regression Model
1) 逻辑回归的损失函数
这里之所以再次提到损失函数,是因为线性回归中的损失函数会使得输出呈现起伏,造成许多局部最优值,也就是说线性回归中的cost function在运用到逻辑回归时,将可能不再是凸函数。
逻辑回归的cost function如下:
\[J_θ = \frac{1}{m} \sum {Cost}( h_θ(x^{(i)}, y^{(i)} ) )\]
\[ {Cost}(h_θ(x), y) ) = - log(h_θ(x)) \quad \quad if \quad y=1\]
\[ {Cost}(h_θ(x), y) ) = - log(1 - h_θ(x)) \quad if \quad y=0\]
结合图来理解:
- y=1

由上图可知,y=1,hθ(x)是预测值,
- 当其值为1时,表示预测正确,损失函数为0;
- 当其值为0时,表示错的一塌糊涂,需要大大的惩罚,所以损失函数趋近于∞。
- y=0

上图同理
2) Simplified Cost Function and Gradient Descent
- 损失函数
cost function
\[Cost(h_θ(x), y) = -ylog(h_θ(x)) - (1-y)log(1-h_θ(x))\]
Jθ
\[J_θ=-\frac{1}{m} \sum Cost(h_θ(x), y) \]
\[\quad =-\frac{1}{m} \sum [-y^{i}log(h_θ(x^{(i)})) - (1-y^i)log(1-h_θ(x^{(i)}))] \]
- 梯度函数

3)高级优化方法

如图左边显示的是优化方法,其中后三种是更加高级的算法,其优缺点由图邮编所示:
优点
- 不需要手动选择α
- 比梯度下降更快
缺点
- 更加复杂
后面三种方法只需了解即可,老师建议如果你不是专业的数学专家,没必要自己使用这些方法。。。。。。当然了解一下原理也是好的。
3. Solving the problem of Overfitting
1) 过拟合
主要说一下过拟合的解决办法:
1)减少特征数量
- 手动选择一些需要保留的特征
- 使用模型选择算法(model selection algorithm)
2)正则化 - 保留所有特征,但是参数θ的数量级(大小)要减小
- 当我们有很多特征,而且这些特征对于预测多多少少会由影响,此时正则化怎能起到很大的作用。
2) 正则化损失函数

图示右边很明显是过拟合,因此为了纠正加入了正则化项:1000·θ32,为了使得J(θ)最小化,所以算法会使得θ3趋近于0,θ4也趋近于0。
正则化损失函数表达式:
\[J(θ)=\frac{1}{2m} [\sum_{i=1}^m( h_θ(x^{(i)}) - y^{(i)})^2 + λ\sum_{j=1}^n θ_j^2]\]
\[min_θ [\frac{1}{2m} (\sum_{i=1}^m( h_θ(x^{(i)}) - y^{(i)})^2 + λ\sum_{j=1}^n θ_j^2)]\]
3) 正则化线性回归
- 正则化梯度下降:
\[J(θ)=\frac{1}{2m} [\sum_{i=1}^m( h_θ(x^{(i)}) - y^{(i)})^2 + λ\sum_{j=1}^n θ_j^2]\]
\[\frac{∂J_θ}{∂θ_j} = \frac{1}{m} \sum_{i=1}^m( h_θ(x^{(i)} ) - y^{(i)} )x_j^{(i)} + \frac{λ}{m}θ_j \]
Repeat{
\[θ_0 := θ_0 - α\frac{1}{m}\sum_{i=1}{m}( h_θ(x^{(i)} ) - y^{(i)} )x_0^{(i)}\]
\[θ_j := θ_j - α[(\frac{1}{m}\sum_{i=1}{m}( h_θ(x^{(i)} ) - y^{(i)} )x_0^{(i)} ) + \frac{λ}{m}θ_j ] \quad j∈\{1,2,3……n\}\]
}
- 正则化正规方程

前面提到过,若m< n,那么XTX是不可逆的,但是加上λ·L后则变为可逆的了。
4) 正则化逻辑回归
\[J(θ)=-\frac{1}{m} \{\sum_{i=1}^m[ y^{(i)} log(h_θ(x^{(i)}))+(1-y^{(i)})log(1-h_θ(x^{(i)}))]\} + \frac{λ}{2m}\sum_{j=1}^n θ_j^2\]
梯度下降过程

Andrew Ng机器学习课程笔记--week3(逻辑回归&正则化参数)的更多相关文章
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 7 Regularization 正则化
Lecture7 Regularization 正则化 7.1 过拟合问题 The Problem of Overfitting7.2 代价函数 Cost Function7.3 正则化线性回归 R ...
- Andrew Ng机器学习课程笔记--汇总
笔记总结,各章节主要内容已总结在标题之中 Andrew Ng机器学习课程笔记–week1(机器学习简介&线性回归模型) Andrew Ng机器学习课程笔记--week2(多元线性回归& ...
- Andrew Ng机器学习课程笔记(二)之逻辑回归
Andrew Ng机器学习课程笔记(二)之逻辑回归 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7364636.html 前言 ...
- Andrew Ng机器学习课程笔记(五)之应用机器学习的建议
Andrew Ng机器学习课程笔记(五)之 应用机器学习的建议 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7368472.h ...
- Andrew Ng机器学习课程笔记(四)之神经网络
Andrew Ng机器学习课程笔记(四)之神经网络 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7365730.html 前言 ...
- Andrew Ng机器学习课程笔记(三)之正则化
Andrew Ng机器学习课程笔记(三)之正则化 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7365475.html 前言 ...
- Andrew Ng机器学习课程笔记--week1(机器学习介绍及线性回归)
title: Andrew Ng机器学习课程笔记--week1(机器学习介绍及线性回归) tags: 机器学习, 学习笔记 grammar_cjkRuby: true --- 之前看过一遍,但是总是模 ...
- Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计
Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7392408.h ...
- Andrew Ng机器学习课程笔记(一)之线性回归
Andrew Ng机器学习课程笔记(一)之线性回归 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7364598.html 前言 ...
随机推荐
- IIS 反向代理 golang web开发
一. beego 开发编译 bee run 后会编译成 exe文件 编译生成后发布文件结构为 cmd 运行 cd D:/run beegoDemo.exe run 默认配置端口 不能为 80 跟iis ...
- python全栈阶段测试(一)
1.执行Python脚本的两种方式 如果想要永久保存代码,就要用文件的方式 如果想要调试代码,就要用交互式的方式 2.Pyhton单行注释和多行注释分别用什么? 单行注释:# 多行注释: '' &qu ...
- USB基础知识
Q: USB是什么? A: USB是通用串行总线(Universal Serial Bus)的缩写. Q: USB的优点有哪些? A: ① 支持热插拔:(hot-plugging或Hot Swap)即 ...
- salesforce零基础学习(七十五)浅谈SOSL(Salesforce Object Search Language)
在工作中,我们更多操作的是一个表的对象,所以我们对SOQL的使用很多.但是有时候,我们需要对几个表进行查询操作,类似salesforce的全局搜索功能,这时,使用SOQL没法满足功能了,我们就需要使用 ...
- SQL Server系列之SQL Server 2016 中文企业版详细安装步骤(超多图)
1. 下载地址 下载地址 :https://www.microsoft.com/en-us/server-cloud/products/sql-server-2016/ 官方技术文档:https:// ...
- javascript数组(1) ——sort的工作原理及其他数组排序方法
一说到数组排序,最直观的想法就是用sort啊! 请问不用使用sort方法还可以使用什么方法进行数组排序? 比如 : 快速排序法.合并排序法.冒泡排序法.选择排序法.插入排序法.布尔排序法.交互排序. ...
- opencv+python3.4的人脸识别----2017-7-19
opencv3.1 + python3.4 第一回合(抄代码,可实现):人脸识别涉及一个级联表,目前能力还无法理解. 流程:1.读取图像---2.转换为灰度图---3.创建级联表---4.对灰度图 ...
- Python蜕变-2017-4-23
我的第一篇博客,这是试水练习.这次上的菜是Haporxy配置文件操作. <1> 上需求: 具体配置文件如下: global log 127.0.0.1 local2 daemon maxc ...
- LeetCode-Interleaving String[dp]
Interleaving String Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2. Fo ...
- 64位系统下8G内存仅使用到4G问题的解决方法
笔记本:联想E46G 当前bios版本:25CN32WW 内存:DDR3 133 4G × 2 问题:bios信息显示8G,win7和ubuntu 在64位下使用情况仅4G 准备工作1:bios版本和 ...