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 极小值
一元线性回归的模型:
根据 θ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),其函数图像如下
由此可以推出假设函数 $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 协议 ,转载请注明出处!