Andrew机器学习课程笔记(1)——梯度下降、逻辑回归
来源:互联网 发布:91视频解析网站源码 编辑:程序博客网 时间:2024/04/30 10:41
前言
之前用到相关算法的时候,或多或少在其他博客上看到Andrew的算法解析。
这次决心利用空闲时间完整的看看Andrew的课程视频,果真是获益匪浅!大神讲课思路非常清晰,算法的来龙去脉理的很透彻,在很多地方给了我一种茅塞顿开的感觉。因此在这里开一个系列专门记录下我听课的笔记,以后也好温故而知新~
梯度下降(GD)的技巧
1. 特征缩放
特征归一化是机器学习中经常用到的一种技巧,我以前也经常用,但一直没理解为什么要这么做。
假定现在有两个特征(X1、X2),情况1是两个特征的范围几乎一致(图左),情况2是X1的范围远大于X2(图右):
如果特征的范围相当,那么求得的梯度方向会更趋向极值方向;反之寻优路线就会复杂很多。因此特征的缩放可以使得GD更快的收敛。
特征缩放并不一定要求他们范围一致(相当即可),一般缩放的方法是:
2. 迭代次数
一般是通过 限定误差下限 和 指定最大迭代次数 来实现
Andrew表示,比较靠谱的方法还是 实时画出每次迭代的误差曲线,这样可以很直观的看到目前算法的趋势
3. 学习率alpha
没什么办法,大神也是从 0.001, 0.003, 0.006, ... , 1 一个一个试
4. 适用场合
通过对数据分布的先验知识,选择合适的多项式模型,而不是只用线性模型
对于线性模型,如果特征数很大(超过1W),一般还是用GD;如果比较小,也可以选择直接用 标准方程 求得使代价函数取极小值的各个参数
式中x是样本特征矩阵,y是样本类别矩阵,sita是每个特征前的参数矩阵
注:1. 这种方法就不需要特征缩放了,因为不存在迭代寻优的过程
2. 当特征维数 > 样本数 或 各特征不够独立时 可能存在矩阵不可逆的情况(正则化可以解决这个问题)
逻辑回归(LR)
LR的代价函数一般为:
为什么不跟线性回归一样,取
因为LR的
其局部图形是一段弧线,如果代入线性回归的代价函数,会导致优化函数表现为(黑色曲线):
寻优函数很容易就陷入局部最小,因此代价函数的选取目标是,在反映目标值与当前值差异的情况下,尽可能的光滑
巧合的是,采用这种代价函数的LR回归,其GD迭代式与线性回归在形式上是一样的(当然模型h(x)展开是不同的)
过拟合
方式1:减少特征数目 ------- 一般用模型选择算法
但可能会丢失一些有用的特征
方式2:正则化
保持特征数目不变,但降低某些特征的权重
对多特征的情况有不错的效果
红框内就是正则惩罚项,随着lambda变大,效果向着欠拟合方向发展
1)用于GD的正则化
可以看出,正则化就是首先将原始值缩小,然后基于梯度方向更新
2)用于标准方程的正则化
可以证明,只要lambda>0,矩阵是可逆的
- Andrew机器学习课程笔记(1)——梯度下降、逻辑回归
- Coursera 机器学习(by Andrew Ng)课程学习笔记(一)——简单的线性回归模型和梯度下降
- 【转载】Andrew Ng机器学习公开课笔记 — 线性回归和梯度下降
- Andrew Ng机器学习公开课笔记 — 线性回归和梯度下降
- Stanford机器学习课程(Andrew Ng) Week 1 Parameter Learning --- 线性回归中的梯度下降法
- Andrew Ng机器学习课程笔记--week10--优化梯度下降
- 机器学习笔记1——线性回归,梯度下降
- Andrew NG机器学习课程笔记系列之——机器学习之逻辑回归(Logistic Regression)
- Andrew NG机器学习课程笔记系列之——机器学习之逻辑回归(Logistic Regression)
- Stanford机器学习课程笔记——单变量线性回归和梯度下降法
- 【机器学习入门】Andrew NG《Machine Learning》课程笔记之二 :基本概念、代价函数、梯度下降和线性回归
- 梯度下降与线性回归--《机器学习》课程学习笔记
- Andrew Ng机器学习笔记+Weka相关算法实现(一)梯度下降与回归方法
- 监督学习之梯度下降——Andrew Ng机器学习笔记(一)
- Andrew Ng机器学习笔记(一):梯度下降法
- Andrew Ng机器学习课程笔记--week3(逻辑回归&正则化参数)
- Andrew Ng机器学习课程笔记--week3(逻辑回归&正则化参数)
- 线性回归、梯度下降 - Andrew Ng机器学习公开课笔记1.1
- 单例模式之懒汉式和饿汉式
- runtime 关联
- 微信企业号开发:接收消息和事件
- Dapper,大规模分布式系统的跟踪系统
- Android中build target,minSdkVersion,targetSdkVersion,maxSdkVersion概念区分
- Andrew机器学习课程笔记(1)——梯度下降、逻辑回归
- win32和x64平台的切换
- BZOJ 1036 树的统计
- hdu5288 多校联合第一场第一题
- CentOS更改yum源与更新系统
- Hive安装以及部署(Ubuntu-MySql)
- 网站通用百度地图调用示例,只需填入座标和百度密钥即可。内容可自己更换。
- java 虚拟机的理解
- 《移动APP测试实战》