李宏毅机器学习-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.正态分布

是一种连续型的概率分布,随机变量服从概率密度函数f(x) = \frac{1}{\sigma \sqrt{2\pi }}e^{-\frac{(x-u)^{2}}{2\sigma^{2}}},均值为u,方差为\sigma^{2}

3.极大似然估计

极大似然估计就是根据已经发生的事件来估计事件发生的概率\theta,求出合适的参数\theta来使得事件发生的概率最大

4.推导回归Loss function

损失函数是用来衡量一组参数的好坏,我们假设回归函数的公式为f(x) = w*x+b,L(f)为损失函数,则L(f) = L(w,b) = \Sigma (\hat{y}-y)^{2},\hat{y}为真实数值,y为预测值。我们的目的就是使预测值和实际值越接近越好,所以损失函数L(f)最小化。

f^{*} = argmin_{f}L(f)

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

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

6.全局最优和局部最优

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

7.推导梯度下降公式

首先随机选取w_{0}的初始值的初始值,然后对损失函数L(w,b)分别对w,b求偏导,\frac{\partial L}{\partial w} = 2\sum (\hat{y}-(b+w*x))(-x),\frac{\partial L}{\partial d} = \sum(_hat{y}-(b+w*x)*(-1)),然后更新w和b的值,w_{1} = w_{0} - \eta \frac{\partial L}{\partial w},b_{1} = b_{0} - \eta \frac{\partial L}{\partial b},重复,直到损失函数取到最小值时取此时的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.正则化公式的推导

正则化就是在计算损失函数时对参数w_{i}的值进行限定,损失函数被重新定义为L = \frac{1}{2}\Sigma(\hat{y}-(b+\Sigma(w_{i}x_{i}))^2)+\lambda\Sigma(w_{i})^2,正则项的限制使曲线变得平滑

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

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

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

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

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

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值