斯坦福机器学习课程笔记week2&3 线性/逻辑斯蒂回归
来源:互联网 发布:交换机如何共享数据库 编辑:程序博客网 时间:2024/06/01 09:09
斯坦福机器学习课程笔记
第二讲 多变量线性回归
feature scaling
为何要做feature scaling:
直观的几何解释: feature的scale相差过大时, cost function J(theta)的等高线图为细长的椭圆形,而梯度下降过程中,每一步均是沿着等高线的切线(即梯度的负方向)方向下降,偏离函数的全局最小值方向,其路线为之字形,收敛速度很慢。当做了feature scaling后,等高线接近圆形,负梯度方向指向全局最小值,收敛速度会大大加快。
本质原因: learning rate为一个全局的统一的标量。只有当各个特征的均值,取值范围差不多在一个区间时,才可以保证以较高的效率收敛到全局最小值
如何确定learning rate:
画出cost function与迭代次数的关系图。如果cost function的值没有随着迭代次数增加而趋于减小,说明learning rate选择不对。可以选择一系列的learning rate值, 0.001, 0.003, 0.01, 0.03, 0.1…, 从中挑选可以让cost function下降最快的learning rate值。
疑问: 实际的做法通常是选择一个epsilon, 当前后两次迭代cost function差值减小比例小于epsilon时认为收敛。
迭代次数没有随着cost function增加而减小通常是learning rate选择过大导致, learning rate选择过大可能导致两种后果,一是 导致不收敛, 二是cost function值来回震荡,虽然收敛,但是收敛速度会大大减慢。
第三讲 logistic regression
logistic regression
linear regression不适用于二分类任务, 原因:
- 二分类任务的output为 0 or 1, 而linear regression的output取值区间为[-无穷大,+无穷大]
- linear regression的分类能力太弱: 只能以 直线的某一点 左右侧做类别区分
y=1/(1+e-x)称为sigmoid函数或者logistic 函数。sigmoid函数有两个主要的优点:
- 取值范围(0,1), 和概率的取值区间一致
- 求导简单: 令y=f(x), 则y’ = f(x)(1-f(x))
按照ng的说法,logistic regression属于classification 而不是regression。通过logistic函数计算出得值可以作为分类的概率。
疑问: 业界比较成熟的用lr预测广告点击率,input为广告的曝光数/点击数,output为取值为实数区间的广告点击率,这种情况下logistic regression是否应该算作 回归任务
decision boundary: 通常使用logistic regression做classification的方法是计算出概率值后,选定一个阈值,大于阈值属于正类,小于阈值属于负类。在不做特征组合的情况下,logistic regression得出的decision boundary为 线性分界面,为了解决线性不可分的问题,需要对特征做处理(多项式变形,特征组合等),使得线性的分界面变为非线性的分界面。
cost function:
为何使用y =1时 -log(1/1+e-x), y=0时 -(1-log(1/1+e-x) 作为logistic regression的cost function, 为何不使用线性回归的square 作为cost function:
-1/1+e-x是log-convex的函数,也即 log(1/1+e-x) 是一个凸函数, 而线性回归的square方法得到的函数不是凸函数,通常有很多局部最优解,不方便求最优值(注: 当函数的二阶导数存在且大于0时,则函数为凸函数,不难证明logistic regression的二阶导数>0)
- 直观解释: 以y=1时为例, 当predict值也为1时, cost为0, 当predict值趋向于0时, cost趋向无穷大,不难证明y=1时同理
高级优化技巧:
gradient descent属于比较简单的优化方法,对于大规模的machine learning task,用的比较多的三种优化方法
- conjugate gradient
- bfgs
- lbfgs
这三种优化方法的主要优点是:
- 不需要选择学习率,可以通过linear search方法自动选择学习率(why?)
- 通常比gradient descent快
主要缺点就是实现比较复杂。
logistic regression 也可以用于多分类任务(one-vs-all)
- 斯坦福机器学习课程笔记week2&3 线性/逻辑斯蒂回归
- (斯坦福机器学习课程笔记)用广义线性模型推导逻辑回归模型
- 斯坦福机器学习视频笔记 Week2 多元线性回归 Linear Regression with Multiple Variables
- Andrew Ng机器学习课程笔记--week2(多元线性回归&正规公式)
- 斯坦福机器学习Coursera课程:第三周作业--逻辑回归
- (斯坦福机器学习课程笔记)局部加权线性回归练习
- 机器学习week1-3笔记:线性回归、逻辑回归
- Andrew NG 机器学习 笔记-week2-多变量线性回归
- Andrew Ng机器学习笔记week2 多变量线性回归
- 斯坦福CS20SI:基于Tensorflow的深度学习研究课程笔记,Lecture note3:TensorFlow上的线性回归和逻辑回归
- 逻辑回归--《机器学习》课程学习笔记
- (斯坦福机器学习课程笔记)多项式回归练习
- 斯坦福机器学习公开课笔记(三)--逻辑回归
- (斯坦福机器学习笔记)线性回归练习
- 《机器学习》学习笔记(一):线性回归、逻辑回归
- 斯坦福机器学习公开课7-x线性回归逻辑回归的正则化min
- 斯坦福机器学习笔记 第3周 六、逻辑回归(一)
- 斯坦福机器学习笔记 第3周 六、逻辑回归(二)
- UIViewController的生命周期笔记 by STP
- java提高篇(八)-----实现多重继承
- 【JavaWeb】 ServletContext以及讲解Servlet转发
- 送给正在 奋斗和成长路上的女人们
- Linux防火墙的使用与配置 访问Linux中的Tomcat,打开8080和80端口
- 斯坦福机器学习课程笔记week2&3 线性/逻辑斯蒂回归
- C++STL之map
- Wix学习整理(4)——关于WiX文件格式和案例HelloWorld的分析
- 用纯php实现MVC框架,文件目录模仿yii2
- Webservice 相关
- iOS ble关键开发步骤
- Apache,nginx,tomcat比较(转载)
- java提高篇(九)-----详解匿名内部类
- IOS判断日期是今天,昨天还是明天