Coursera:Machine Learning

毕业设计想要做一个与深度学习有关的课题,先了解一下机器学习

Machine Learning

Machine Learning 系列专项课程一共有三门课程:

  • Supervised Machine Learning: Regression and Classification
  • Advanced Learning Algorithms
  • Unsupervised Learning, Recommenders, Reinforcement Learning

学习地址:

Supervised Machine Learning: Regression and Classification

给数据集标定 result 让机器去学习然后预测,可以分为两类问题:

  • 回归(Regression)问题,预测一个连续问题的数值
  • 分类(Classification)问题,预测一个分类问题(离散)的数值

Regression

linear regression

线性回归的目标就是找到一条最拟合曲线,通过构造 cost function 取得 minimize 极小值

一元线性回归的模型:

image-20221116144958420

根据 θ0 和 θ1 的不同能够确定不同的拟合曲线,所以定义了一个代价函数:

这里的求和后除以 m 是为了消除样本数量的影响,除以 2 是为了消除求导后的平方,对于函数曲线并无影响,得到代价函数 J( θ0, θ1 ), 求得其极小值(minimize), 就是最拟合的一条曲线(可能不止一个极小值)

梯度下降算法需要选择学习率 α,需要多次迭代,在特征变量数量很多时,运行效果也很好

特征方程算法不需要选择学习率 α,不需要迭代,需要计算 (XT X)-1 ,计算数量级大概在 O(n3),所以当特征变量数量很多时会很慢!

Gradient Descent

梯度下降算法是一种用于最小化的算法,

重复以下步骤,直到收敛

在公式 (6)中,$\alpha$ 的含义是 学习率(learning rate),控制着梯度下降的速率,当它较大时,梯度下降的很快。整个公式相当于循环执行以下的计算过程(注意:在实现的时候需要同步更新 θ0 和 θ1

当找到局部最优点之后,则后续进行迭代就无意义了,因为 $\frac{\partial}{\partial\theta_j}J(\theta_0, \theta_1)$ 的值为 0 了。

将公式(2)代入公式(5)中对 θ0 求偏导

将公式(2)代入公式(6)中对 θ1 求偏导

多元梯度下降算法

大致流程与梯度下降算法差不多,有两个需要注意的参数:特征缩放(Feature Scaling),学习率

特征缩放一般是除该组特征数据中的最大值进行缩放,有时也会进行归一化(Mean normalization)的操作,有均值归一化(用 xi - μi 替换 xi ,其中 μi 为该组特征值的平均值)和线性归一化。

正规方程

正规方程可以一次性的求解最优值,不需要通过多次迭代(梯度下降)。

假设有代价函数 $J(\theta)=a\theta^2+b\theta+c$ 是一个二次函数

假设特征数据集是一个 (m,n) 的矩阵,结果集 y 是 (m,1) 的矩阵,其中 m 是样本数量,则矩阵 X 为 (m,n + 1) 的矩阵,则 $\theta = (X^TX)^{-1}X^Ty$

假设特征矩阵:$\begin{bmatrix}
2104 & 5 & 1 & 45 \
1416 & 3 & 2 & 40 \
1534 & 3 & 2 & 30 \
852 & 2 & 1 & 36 \
\end{bmatrix}$,结果矩阵为: $\begin{bmatrix}
460 \
232 \
315 \
178 \
\end{bmatrix}$,则矩阵 X 为 $\begin{bmatrix}
1 & 2104 & 5 & 1 & 45 \
1 & 1416 & 3 & 2 & 40 \
1 & 1534 & 3 & 2 & 30 \
1 & 852 & 2 & 1 & 36 \
\end{bmatrix}$

对于矩阵的转置 XT 则是 (n + 1,m)的矩阵,XT X 则为 (n + 1,n + 1)的矩阵,(XT X)-1 则为矩阵 XT X 的逆矩阵,进行这一步操作是因为矩阵 X 不一定可逆,$X^{-1}=X(X^T)^{-1}X^T=(X^TX)^{-1}X^T$

Regularizaiton

线性回归的正则化在此前的代价函数的基础上加一个正则化参数 λ

Classification

Logistic Regression

概述

逻辑回归是一种分类算法,只是因为历史遗留问题名字中带有回归二字;

假设逻辑回归模型的假设函数为 $h\theta(x)$,期望 $0\leq h\theta(x) \leq 1$,则有函数 g(z):

其中,函数 g(z) 被称为 Sigmoid function,也有称之为 Logistic function,其作用是将区间(-∞,+∞)映射至 (0,1),其函数图像如下image-20221203162427295

由此可以推出假设函数 $h_\theta(x)=\frac{1}{1+e^{-\theta^Tx}}$

决策边界 decision boundary

决策边界就是能够把样本正确分类的一条边界,只要参数矩阵 Θ 确定,决策边界就已经确定了。

代价函数 Cost function

上面的代价函数有一个问题,由于假设函数是非线性的,以至于代价函数是非凸函数,因此梯度下降更难找到参数w和b的最佳值。

而下面这个函数则是凸函数

由此可得代价函数:

损失函数是针对一个训练样本,代价函数是针对整个训练集

多元分类问题

有时候分类问题会遇到一对多的情况,例如垃圾识别:可回收物、有害垃圾、厨余垃圾、其他垃圾,为了方便阐述,将上述四种垃圾记为 A、B、C、D

训练模型时,将 A 记为正样本,BCD 记为负样本,然后拟合得到一个逻辑回归分类器 C1,同理将 B、C、D 分别记为一个正样本,剩余三种垃圾记为负样本,然后分别拟合得到逻辑回归分类器 C2、C3、C4。

假设有待分类样本 X,将其分别输入到四个分类器中,得到四种概率 P1、P2、P3、P4,然后取最大值 max(P1、P2、P3、P4) 作为分类结果。

当训练样本较少并且特征变量很多时,会出现过拟合的问题,即模型基本上拟合了所有的训练样本,这样的模型泛化(一个假设模型应用到新样本的能力)效果很差。

可以通过减少特征变量的数量与正则化来防止过拟合的问题

Regularizaiton

逻辑回归的正则化在此前的代价函数的基础上加一个正则化参数 λ

Advanced Learning Algorithms

Neural Network

神经网络算法尝试去模拟人的大脑。

神经网络第一层称为输入层,最后一层乘为输出层,中间称为隐藏层;


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!