[TOC]
了解什么是Machine learning
学习中心极限定理,学习正态分布,学习最大似然估计
推导回归 Loss function
学习损失函数与凸函数之间的关系
了解全局最优和局部最优
学习导数,泰勒展开
推导梯度下降公式
写出梯度下降的代码
学习L2-Norm,L1-Norm,L0-Norm
推导正则化公式
说明为什么用 L1-Norm 代替 L0-Norm
学习为什么只对做限制,不对b做限制
1.什么是 Machine Learning?
Machine Learning 可以分为三种类型:

机器学习的涉及的知识比例分布:
35% 线性代数
25% 概率论和统计学
15% 微积分
15% 算法及其复杂性
10% 数据预处理知识
Regression
Classification
Deep Learning
Semi-supervised Learning
Transfer Learning
Unsupervised Learning
Reinforcement Learning
2.基础概念
2.1 正态分布

标准正态分布的图像,如下所示:

2.1 中心极限定理 Central Limit Theorem
2.1 最大似然估计(MLE)
核心思想:在给出数据样本集的情况下,找出最大可能产生该样本集的参数值。
MLE 提供了一种给定观测数据来评估模型参数的方法,即「模型已定,参数未知」的时候,通过最大似然估计找到能够使样本数据出现概率最大的参数值,这便是最大似然估计。需要注意的是,这里的参数有一定的值,并非随机变量,无概率可言,于是使用「似然」这个词。
3.Linear Regression
3.1 模型定义
「线性回归」是用于解决回归问题最为基础的模型。线性回归假设输入和输出为线性关系,其模型定义如下:
为了更直观一点,重写为向量的形式:
进一步简化表示,可以在每个输入 中添加一项
,得到:
。
同样的,令 可以得到
,这样模型就可以表示为:
有些时候,会使用 来表示参数:
3.2 模型推导
现在给定 N 个数据, 如何求得线性回归模型的参数
呢?
Cost Function
The Normal Equations
概率视角
其中, 表示输入向量
与 模型权重向量
的内积(又称数量积,点积 ),
表示预测值和真实值之间的残差(Residual Error)。
在 Linear Regression 中,通常假设 服从正态分布(也叫高斯分布),即
,
为均值,
为方差,在这里
,
为定值。
当噪声符合正态分布时,因变量则符合正态分布
,其中预测函数 y=ax(i)+b。这个结论可以由正态分布的概率密度函数得到。也就是说当噪声符合正态分布时,其因变量必然也符合正态分布。
在用线性回归模型拟合数据之前,首先要求数据应符合或近似符合正态分布,否则得到的拟合函数不正确。
若本身样本不符合正态分布或不近似服从正态分布,则要采用其他的拟合方法,比如对于服从二项式分布的样本数据,可以采用 logistics 线性回归。
于是,可以将「线性回归」模型重写为:
这表明「线性回归」模型属于一种条件概率分布。这里采用最简单的形式,假设 是关于
的线性函数,即
,并且噪声是固定的
In this case, are the parameters of the model.

求解模型参数:
1.LMS
2.Norm Equations
3.MLE
「预测值」 与 「真实值」 之间存着误差
Gradient Discent
按照最小二乘法,我们直接求出导数为0的点,但是有时候很难解出方程,就考虑使用迭代的方法,首先取一个随机数,然后每一次去想着目标结果逼近,而为了效率最高,我们向着梯度下降最快的方向,既θ在偏导数上的取值。而α是学习速率,是个很重要的参数,设置过大会导致超过最小值,过小则学习的太慢。
动手实现Linear Regression
1.创建数据集
import random
import numpy as np
num_inputs = 2
num_examples = 1000
true_w = [2, -3.4]
true_b = 4.2
features = np.random.randn(num_examples, num_inputs)
print(features.shape)
labels = true_w[0] * features[:, 0] + true_w[1] * features[:, 1] + true_b
print(labels.shape[0])
# 给 y 加上随机噪声
labels += 0.01 * np.random.randn(labels.shape[0])
print(features[0], labels[0])
print(np.dot(features[0],true_w)+true_b, labels[0])
2.可视化
from matplotlib import pyplot as plt
# 绘制数据的散点图
plt.scatter(features[:, 1], labels)
plt.show()

3.数据读取
4.定义模型
Norm 范数
L0 范数指的是向量中非零元素的个数。
L1 范数是指向量中各个元素绝对值之和。
L2 范数指的是向量中各个元素的平方和的 次方。
L0 范数难以求解
L1 范数可以使得权值稀疏,方便进行特征提取。
L2 范数可以防止过拟合,提升模型泛化能力。
为了防止模型的过拟合,我们在建立线性模型的时候经常需要加入正则化项。一般有 「L1正则化」 和「L2正则化」。
推导正则化公式
说明为什么用 L1-Norm 代替 L0-Norm
线性回归的 L1 正则化通常称为 Lasso回归,它和一般线性回归的区别是在损失函数上增加了一个 L1正则化的项,L1 正则化的项有一个常数系数 来调节损失函数的均方差项和正则化项的权重,具体Lasso回归的损失函数表达式如下:
Lasso Regression
线性回归的L2正则化通常称为Ridge回归,它和一般线性回归的区别是在损失函数上增加了一个L2正则化的项,和Lasso回归的区别是Ridge回归的正则化项是L2范数,而Lasso回归的正则化项是L1范数。具体Ridge回归的损失函数表达式如下:
Ridge回归在不抛弃任何一个特征的情况下,缩小了回归系数,使得模型相对而言比较的稳定,但和Lasso回归比,这会使得模型的特征留的特别多,模型解释性差。
Ridge回归的求解比较简单,一般用最小二乘法。这里给出用最小二乘法的矩阵推导形式,和普通线性回归类似。
Ridge Regression
为什么正则化只对参数 做限制,而不对 b 做限制?
答:都可以做限制,但在实际问题中, 往往是高维度的,而 b 只是单个数字,实际上不会起太大作用。
网友评论