机器学习-李宏毅p1-p2
任务目录
了解什么是Machine learning
Machine learning类似与泛函,通过输入数据找到一个Goodness of Function,从而Pick the “Best” Function
学习中心极限定理,学习正态分布,学习最大似然估计
- 中心极限定理:中心极限定理指的是给定一个任意分布的总体。我每次从这些总体中随机抽取 n 个抽样,一共抽 m 次。 然后把这 m 组抽样分别求出平均值。 这些平均值的分布接近正态分布。
- 最大似然估计:
它其实是利用已知的样本结果的信息,反推最具有可能(最大概率)导致这些样本结果出现的模型参数值。
极大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”。可以根据模型求出参数。 - 正态分布 :
若随机变量X服从一个位置参数为μ,尺度参数为σ的正态分布,记为X~N(μ,σ2),则其概率密度函数为
正态分布的数学期望值或期望值μ等于位置参数,决定了分布的位置;其方差σ^2的开平方或标准差σ等于尺度参数,决定了分布的幅度。常说的标准正态分布是指μ为0,σ为1的正态分布。
推导回归Loss function
略
学习损失函数与凸函数之间的关系
损失函数:在监督学习中,损失函数刻画了模型和训练样本的匹配程度,即定义了模型的评估指标.
凸函数的几何解释:函数图像上的任意两点确定的弦在图像的上方;
关系: 凸函数可以使用梯度下降法找到全局最优解,损失函数需要满足,任意点的值大于0。
了解全局最优和局部最优
一个函数可能有多个局部最优值,但只会有一个全局最优值
导数、泰勒展开
导数:一个函数在某一点的导数描述了这个函数在这一点附近的变化率。
泰勒公式:泰勒公式是一个函数在某点的信息描述其附近取值的公式,局部有效性。
基本形式:
一阶展开:
二阶展开:
梯度下降代码
// An highlighted block
import numpy as np
np.random.seed(1)
x = np.linspace(0,10,10)
y_label = 2*x +3
def gradient_descent(x, y ,w, b):
time = 0
n=0.0001
w = np.random.randn(1,1)
b = np.random.randn(1,1)
loss = np.sum((y - (w*x + b))**2)
while(loss>0.01)or(time<10000):
graident_w = np.sum((y - (w*x + b))*(x))
graident_b = np.sum(y - (w*x + b))
w = w - n*graident_w
b = b - n*graident_b
loss = np.sum((y - (w*x + b))**2)
print(loss)
return w, b
w_u, b_u = gradient_descent(x, y_label, w, b)
为什么用L1-Norm代替L0-Norm
虽然L0正则优势很明显,但求解困难属于NP问题,因此一般情况下引入L0正则的最近凸优化L1正则(方便求解)来近似求解并同样可实现稀疏效果
学习为什么只对w/Θ做限制,不对b做限制
b不影响函数的平滑程度,只影响整体平移,因此b对模型的泛化能力没有影响,但是w的权重分配最终会影响到模型的泛化能力,是模型有过拟合和前拟合的可能。