李宏毅机器学习-part1

目录

1.中心极限定理的概念

2.正态分布

3.极大似然估计

4.推导回归Loss function

5.损失函数与凸函数之间的关系

6.全局最优和局部最优

7.推导梯度下降公式

8.梯度下降的代码实现

9.正则化公式的推导

10.L0-Norm,L1-Norm,L2-Norm

11.为什么用L1-Norm代替L0-Norm

12.学习为什么只对w/Θ做限制,不对b做限制

13.误差从哪里来


1.中心极限定理的概念

中心极限是指多次抽样分布的均值会呈现正态分布,且抽样分布的均值等于总体均值

2.正态分布

是一种连续型的概率分布,随机变量服从概率密度函数李宏毅机器学习-part1,均值为u,方差为李宏毅机器学习-part1

3.极大似然估计

极大似然估计就是根据已经发生的事件来估计事件发生的概率李宏毅机器学习-part1,求出合适的参数李宏毅机器学习-part1来使得事件发生的概率最大

4.推导回归Loss function

损失函数是用来衡量一组参数的好坏,我们假设回归函数的公式为李宏毅机器学习-part1,李宏毅机器学习-part1为损失函数,则李宏毅机器学习-part1,李宏毅机器学习-part1为真实数值,y为预测值。我们的目的就是使预测值和实际值越接近越好,所以损失函数L(f)最小化。

李宏毅机器学习-part1

5.损失函数与凸函数之间的关系

如果损失函数是凸函数,那么一定有全局最优解,且不论初始值如何选取

6.全局最优和局部最优

当损失函数存在局部最小值时,若初始点选择不当则可能会造成局部最优解,但是现实中很少出现局部极小值的情况

7.推导梯度下降公式

首先随机选取李宏毅机器学习-part1的初始值,然后对损失函数L(w,b)分别对w,b求偏导,李宏毅机器学习-part1,李宏毅机器学习-part1,然后更新w和b的值,李宏毅机器学习-part1,李宏毅机器学习-part1,重复,直到损失函数取到最小值时取此时的w和b的值为此线性回归的参数

8.梯度下降的代码实现

import numpy as np
def LinearRegressionGD(object):
    def __init__(self,eta = 0.001,n_iter = 50):
        self.eta = eta
        self.n_iter = n_iter
    def fit(self,X,y):
        self.w_ = np.random.random(X.shape[1]+1) #
        self.cost_ = []
        
        for i in range(self.n_iter):
            output = net_input(X)
            errors = y - output
            self.w[1:] += self.eta*X.T.dot(errors)
            self.w[0] += self.eta.errors.sum()
            cost = 0.5*(errors**2).sum()
            self.cost_.append(cost)
        return self
    
    def net_input(self,X):
        return np.dot(X,self.w_[1:]) + self.w_[0]

9.正则化公式的推导

正则化就是在计算损失函数时对参数李宏毅机器学习-part1的值进行限定,损失函数被重新定义为李宏毅机器学习-part1,正则项的限制使曲线变得平滑

10.L0-Norm,L1-Norm,L2-Norm

L0范数:L0范数不是真正的范数,它是用来度量向量中非零元素的个数,如果使用L0范数来约束参数矩阵w的数值,就是希望参数w的大部分元素都是0,让参数矩阵稀疏化,一般不用L0作正则化,用L1正则代替。

L1范数:指向量中各元素绝对值之和

L2范数:指各元素的平方和再开平方,可以使参数矩阵w的每个元素值都接近0,使曲线更加平滑

11.为什么用L1-Norm代替L0-Norm

L0范数很难优化求解,是一个NP-hard问题,L1范数是L0的最优凸近似,L1范数相对容易求解且可以实现矩阵稀疏的效果

12.学习为什么只对w/Θ做限制,不对b做限制

loss function中加入正则项对w进行限制是为了使曲线变得平滑,而调整b的大小跟曲线的平滑无关,b的大小只是对曲线进行上下移动。

13.误差从哪里来

误差来源于两个方向,variance和bias

李宏毅机器学习-part1

使用简单的model进行多次实验,会得到比较小的variance,数据对模型的影响会更小

李宏毅机器学习-part1

简单的模型平均下来也会有较大的bias,而复杂的模型平均下来的bias会相对较小,因为复杂的模型包含的范围更广

李宏毅机器学习-part1

最好是能找到一个平衡点使得variance和bias之和相对较小,bias会随着模型的复杂度提升逐渐降低,variance会随着模型复杂度的提升逐渐升高,但是到达一定程度后variance的error会激增,这就是为什么通常过拟合会带来较大的误差。

李宏毅机器学习-part1

模型欠拟合的处理方式:使用更复杂的模型

模型过拟合的处理方式:使用更多的数据,添加正则项