目录
第二章
2.1线性回归
2-2代价函数(类似误差一样)
2.5-2.6 梯度下降算法,梯度下降算法理解
2.3 线性回归的梯度下降 / Batch梯度下降
第四章 (正规方程与梯度下降一样是为了求满足条件的(塞塔o))
4.1 多变量线性回归假设函数
4.2 多元(多变量)梯度下降算法
4.3 梯度下降实用技巧1-特征缩放
4.4 梯度下降算法实用技巧2 -学习率的选择
4.5 特征与多项式回归
4.6正规方程(对于某些线性回归方程给出更好的方法求得参数x(塞塔)的最优值)
4.6.2 正规方程同梯度下降比较
第二章 2.1线性回归
m:表示训练样本数量
x:代表输入数量或者特征
y:预测目标/输出目标
(x,y)训练集中的一个样本 (x^i,y^i)代表训练集中样本的索引 i
2-2代价函数(类似误差一样)平方误差代价函数是解决回归问题最常用的手段。其中二分之一m其实是数学的一种表达,使其误差显得更小一点
2.5-2.6 梯度下降算法,梯度下降算法理解用来寻找代价函数J(xo,xi)的最小值,下图为梯度算法要干嘛:
梯度算法背后的数学原理,下图为梯度算法的计算公式及正确的验算步骤:
左侧正确格式算法、右侧错误算法,因为没有同步更新
需要同时更新x1,x0,其中x1:=x2是赋值,x1=x2是判断符号,α是你所迈步子的大小
下图为梯度算法形象图解:
下图为 只有一个参数时候的x1:=重新赋值 (更新值),
下图为α学习率的形象理解:
2.3 线性回归的梯度下降 / Batch梯度下降
下图为梯度算法与线性回归以及代价函数的三者的组合应用,其目的就是为了求得θ1,θ0:
下图为θ0\θ1的最后表示,
梯度回归的局限性: 可能得到的是局部最优解
线性回归的梯度下降的函数是凸函数,因此没有局部最优解,只有全局最优解
凸函数图像:
参照:吴恩达 - 机器学习课程笔记(持续更新)_做一只猫的博客-CSDN博客_吴恩达机器学习课程笔记
4.2 多元(多变量)梯度下降算法下图为多元梯度(含偏导式子):
m:表示训练样本数量
x:代表输入数量或者特征
y:预测目标/输出目标
(x,y)训练集中的一个样本 (x^i,y^i)代表训练集中样本的索引 i(第i个样本),下角字母表示第几个矩阵中第几个数据
4.3 梯度下降实用技巧1-特征缩放特征缩放,先看左边的图,如果有两个特征,一个特征是房子大小0-2000,而另一个特征是卧室的数量(1-5),那么画出来的代价函数的图像,就是椭圆状,这种图像经过梯度下降算法,很难收敛,因为(x0,x1)会来回震荡。(查找路径更加直线化,可以尽快找到全局最小)
参考: 【机器学习】机器学习笔记(吴恩达)_Bug 挖掘机的博客-CSDN博客_机器学习笔记
注: 使用特征缩放时,有时候会进行均值归一化的 *** 作,使其范围比较接近就可以接受
特征值x1=( x1 -u1) / s1
这里的u1 就是训练数据集当中 x1 的平均值,而 s1 就是 x1的范围,即x1最大值-x1 最小值。 s1 也可以取x1的标准差,不过一般用x1最大值-x1 最小值就行
在梯度下降算法运行过程中,该图的横轴是迭代次数,而 竖轴是代价函数的最小值,通常情况下,迭代次数越多,代价函数的最小值会依次减小。有一个自动收敛测试,当J(x)小于 10-3 次方时,就认为已经收敛
像上图中的三幅图,都要降低学习率a。但是如果学习率a太小的话,收敛就会很慢,那么如何选择合适的学习率呢。(α代表上述箭头的跨度/不发大小)
先找一个最小的学习率,再找一个太大的学习率,然后取一个最大可能值或比最大值小一些的值,作为学习效率α
参考:【机器学习】机器学习笔记(吴恩达)_Bug 挖掘机的博客-CSDN博客_机器学习笔记
4.6正规方程(对于某些线性回归方程给出更好的方法求得参数x(塞塔)的最优值)在讲正规方程以前,我们知道使用梯度下降,是通过迭代的方法,使得代价函数不断下降
通过求导,或者求所有变量的偏微分等于0(类似条件极值),可以获取函数的最小值,但这样实现起来过于复杂,这里我需要知道实现原理即可
对于下面这个例子,有4个特征,我们构造x0的一列,然后表示出矩阵X和向量y,通过下面这个式子就能直接求出的最小值(正规矩阵避免了一直求导求极值的麻烦,可以一步到位)(就像最小二乘法)
构造正规方程的步骤如下:(这儿构造的x的转置矩阵上小标写反了)
下图中的正规矩阵可以求得最小值代价函数值 minJ(o)
注意:使用正规方程,不用进行特征缩放
对比梯度下降和正规方程,一般特征数量 n>10000 对于线性回归模型就可以使用梯度下降
- 是同级算法
- 梯度下降缺点是需确定α,需要许多次迭代;优点是适用于样本量大(m > 10000)的数据
- 正规方程缺点是不适用于样本量大(m > 10000)的数据,但无需确定α,无需许多次迭代
矩阵不可逆的情况很小,导致不可逆可能有以下两个原因:
1、两个及两个以上的特征量呈线性关系,如x1 = 3x2
2、特征量过多。当样本量较小时,无法计算出那么多个偏导来求出结果
实际 *** 作过程中,要删除多余特征,且呈线性关系的多个特征保留一个即可
Octave中的pinv即使面对不可逆矩阵,也能计算出结果,得出来的是伪矩阵
XT.X不可逆的情况下,仍然可以使用Octave 里面的伪逆函数pinv 获取正确的结果
其余解决办法有两个,
(1)一些已经线性相关的特征,如x1=(3.28)平方* x2,这时候可以去掉x2这个特征
(2)如果特征太多(比如=样本m太少,而特征n太多),可以删除一些特征,或者使用正则化方法
参考:【机器学习】机器学习笔记(吴恩达)_Bug 挖掘机的博客-CSDN博客_机器学习笔记
6.2假设函数 ogistic regression的假设函数值总是在0到1之间
logistic regression模型
线性回归中 hθ(x) = θTx
作一下修改,变成下图形式
logistic函数 / sigmoid函数
逻辑回归模型
看一个具体的逻辑回归问题(这儿塞塔为参数,y的取值为0或1,x为某种特征)
P(y=0| x;oumiga) 这个公式可以理解成条件概率
下图为回归函数我们最后要将其转换为判断什么的图片:
预测 y = 1 if -3 + x1 + x2 ≥ 0,即x1 + x2 ≥ 3
则有下图,中间的洋红色直线即为 决策边界(x1 + x2 = 3)
决策边界所画出的分界线都是假设函数的属性决定于假设本身和其参数的属性(塞塔的不同取值),非数据集的属性(样本属性),之后的决策边界我们通过训练集来确定参数(塞塔的值){我们用训练集来拟合参数塞塔},在来求得准确的决策边界。
便可以开确定决策边界
6.4分类问题中的代价函数逻辑回归的代价函数选择:如何选择塞塔0
如果直接使用线性回归的,误差平方作为代价函数,会出现代价函数不是凸函数的情况,会得到局部最优解,影响梯度下降算法寻找全局最小值
下面是逻辑回归的代价函数:(纵轴代表代价函数的值J(0))
先看下if y=1 的函数图像,如果 y=1 时,h(x)接近为0,这时候认定他是一个恶性肿瘤,这时候代价会很大(因为之前预测是h(x)<0.5 是良性)
下面是y=0的代价函数,当h(x)=1 时,若还是预测y=0 ,代价会非常高
2. 当y = 0时
if hθ(x) = 0, cost = 0
if hθ(x) = 1, cost = ∞ (预测与实际完全不一致,要花费很大的代价惩罚算法)
求解思路********************************************************************************************先求出h(0)的值,然后用代价函数J(0)来得到最优解,其中塞塔0的值来源于:
得到:
数学公式参照:吴恩达 - 机器学习课程笔记(持续更新)_做一只猫的博客-CSDN博客_吴恩达机器学习课程笔记
可以将逻辑回归的代价函数进行简化
注意,假设函数的输出值,表示的P(y=1 |x;oumiga即为恶性肿瘤的概率,逻辑回归的代价函数,是根据统计学当中的最大似然估计得出的
下面的图1,少了1/m,网上说也可以归到学习率里面去
图1
利用梯度下降算法找到代价函数的最小值,表面上看上去与线性回归的梯度下降算法一样,但是这里 的h𝜃(𝑥) = 𝑔(𝜃𝑇𝑋)与线性回归中不同,所以实际上是不一样的。另外,在运行梯度下降算法 之前,进行特征缩放依旧是非常必要的
注意:
- 逻辑回归的代价函数看似与线性回归的代价函数相同,但本质不同。
- 逻辑回归中的hθ(x) = 1 / e-θTx(T是θ的上标)
- 线性回归中的hθ(x) = θTx
梯度下降干些了啥:
右边这个使用octave 的costFunction函数,会有两个返回值,一个是jval,另外一个是gradient
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)