吴恩达机器学习系列课程

241 阅读8分钟

监督学习

线性问题

我们首先以某一地区的房屋面积与房价的关系为例。

image.png

You can see there are many points in the picture above, by calculating the relationship between house area and price ,we finally may get a function that can describe the relationship of the, in other word , we can give a "right answer" for the example we list above, this is the supervised learning.

训练集

image.png

The example above is a typical training set.

image.png

  • h 假设函数
  • 模型参数
  • 代价函数

image.png

Lets see the picture above, we try to find the expression of two relation ,so we can get the exact hypothesis, so what we can do? let's talk about the straight line first, we give a style of the hypothesis looks like , and we give two parameters of the expression , the next step is to compute the theta one and theta zero , How? there we propose a function called cost function , what we do next is to compute the minimize of J(theta zero, theta one). Let's have an example.

image.png

we have three training examples in the picture ,now we assume theta one is 1,and we don't take theta zero in our consideration. (it through (0,0)),so we can plot the straight line above, it perfectly fitting the training sets,finally we can reach the conclusion that J(theta one) = 0,so we plot it in the right picture:

image.png Now let's assume theta one equals 0.5, then we can plot the picture in the same way:

image.png

Then as the number of examples we calcute ,we can get the J(theta one) picture like that :

image.png

We can get the minimsize of J(theta one) is 0, and the value of theta one is 1.

下面我们假设θzero 不为0,原理与上面相同,只不过通过不同假设函数,得出的代价函数图像不再是一个二维的,而是一个三维图像,类似下图

image.png

梯度下降算法

image.png

  • α:学习速率,决定了多大速率更新θJ 左:同步更新,右:不同步更新,通常我们讲的梯度下降算法都是采取同步更新

下面是算法表达式的意义,我们还是拿求代价函数J(θ1)的函数图像举例,如下图:

image.png

我们假设θ1位于求得J(θ1)最低点处的右侧,此时右侧表达式中image.png 取得是正值,也就是说右侧给左侧赋值的是一个更小的值,这样θ1会进一步接近使得代价函数最低点时θ1的值,另外θ1在左侧也是同样的道理。

线性回归函数

梯度下降函数+平方差代价函数

image.png

image.png

矩阵乘法的应用

image.png

多特征

上面我们在某地区的房价中只考虑到占地面积指一个特征,事实上影响房价高低的特征还有很多,如下图:

image.png

  • 注意图中各种符号表示的含义。 因此,有了这些特征,我们的假设函数形式也需要变一变:

image.png, 上面函数我们可以由下面向量或矩阵得出:(假设x0 = 1)

image.png

此时的多元梯度下降算法为:

image.png

多元梯度下降算法:特征缩放 将多元梯度函数按某种特定关系将树枝进行有效的缩放,最终实现多元梯度下降算法能够快速找到最小值。

多元梯度下降算法:学习率

image.png 横轴:迭代次数,利用梯度下降算法求的参数值每次代价函数的值 纵轴:代价函数

看一下下面这个图:

image.png

代价函数随着迭代次数的增加而上升最后可能的原因是选取的学习率α选取过大,而代价函数过了最低点后因为学习率选取过大而继续上升,这时应该寻较小的学习率。

image.png

通常学习率的取值 image.png

特征和多项式回归 我们仍用房子价格例子,假设函数如下,其两个特征分别为房子长度(frontage)与宽度(depth)

image.png 不同场景我们会选择不同模型,这都取决于预先获取到的数据。

正规方程

上面我们一直用的是迭代算法(eg:梯度下降)求θ值,下面我们使用正规方程替代迭代算法:来看一个例子,下面有一系列数据集,我们通过构造矩阵求θ值,这样求出代价函数min

image.png 最小二乘法的矩阵证明的几何理解

注意,使用了正规方程求参就不需要使用特征缩放了

正规方程与梯度下降法比较

梯度下降正规方程
1.需要选择学习率1.不需要选择学习率
2.需要多次迭代2.一次计算
1.在特征向量非常多的情况下,效果好1.在特征向量多的情况下计算速度非常m慢(通常n=10000左右开始考虑梯度下降算法)

正规方程在矩阵不可逆情况下解决方法

当XTX为不可逆矩阵时

分类问题

二分类

Logistic Regression Model

image.png

Sigmoid function or logistic function 能够把假设函数的值控制在0-1之间,可以很好的应用在分类问题上,其表达式如上图所示,我们可以根据数据集找到合适的θ值契合此模型,下面我们通过举个例子说明模型的用法:

肿瘤是否为恶性的概率我们假设与肿瘤大小这一特征向量有关,假设我们现在知道了此例子中Logistic Regression 模型函数的θ值,通过将数据集中的数据带入得到假设函数hθ(x)=0.7,其代表的含义即为y=1的情况(恶性)的概率为70%,即P(y=1|x;θ)=0.7

image.png image.png

决策边界

上面我们提到Logistic 回归假设函数:

hθ(x) = g(θTx) = P(y=1|x;θ)

g(z) = 1/(1+e-z) 不难发现其函数图像特点,当Sigmoid function函数参数值z=0时hθ(x) =0.5,我们不妨这样假设,当hθ(x) >=0.5时,y=1,hθ(x) <0.5时,y=0,如下图

image.png

假设Sigmoid function参数值为θ01X12X2,这个数据集中参数theta我们假定如下:θ0 = -3, θ1 = 1,θ2 = 1

我们预测,y=1时,-3+x1+x2>=0,决策边界图像即:

image.png 边界线上的点代表的含义是hθ(x)=0.5

代价函数

image.png

image.png

上图我们用一个简单例子说明一下:如果最后y=1,我们预测P(y = 1|θ,x) = 0,(看图),那么我们将会付出很大的代价(无穷)

image.png 如果最后y = 0,我们预测P(y=1|θ,x) = 1,那么我们将付出很大的代价。

简化

需要注意的是我们讨论的上面y只有0,或1两种情况(二分类),因此,我们可以将上面的Cost(hθ(x(i),y(i))整合为下面的形式(可以代入y=1或y=0两种情况试一下)

-ylog(hθ(x))-(1-y)log(1-hθ(x))

这样我们就可以写出logistic回归的代价函数如下:

image.png

那么接下来我们又可以重写logistics回归中梯度下降算法了

image.png

image.png

image.png

高级算法

  • Conjugate gradient

  • BFGS

  • L-BFGS

相较于梯度下降算法的优势:

  1. 不需要选择学习率;
  2. 通常情况下较梯度下降算法收敛的快; 劣势
  3. 相较梯度下降更复杂

多元分类:一对多

image.png 多元分类数据集图像 image.png

image.png

过度拟合

  • 欠拟合,函数具有高偏差性;
  • 过拟合,函数具有高方差性;假设函数几乎能拟合所有的数据,但向量太多,不能很好的约束

image.png

解决

  • 减少选取变量的数量
  • 正则化 对于过拟合现象,我们可以加入惩罚机制,比如上面过拟合图中, 我们可以修改θ34的值,使其近似为0,对于代价函数,有以下:

image.png

λ:正则化参数,后面新加项为额外的正则化项,λ若很大,要使代价函数变小,需要减小θj的值

正则化的梯度下降算法:

image.png

非线性问题

神经网络

image.png

  • layer1 输入层

  • layer2 隐藏层

  • layer3 输出层

  • ai(j)第j层的第i个神经元/单元的激活项

  • θj:权重矩阵,控制从j层到j+1层的映射:

image.png 若j层有sj个单元,则,θj矩阵类型为(sj+1) (sj+1) ,例如上图中θ1∈(3*4)(偏置单元)

我们将这个过程向量化

image.png 我们假设sigmoid函数中参数分别为z1(2),z2(2),z3(2),z(3),并加入偏执单元a0(2) = 1, 这样由前向后传播的计算过程叫做前向传播。

那么神经网络是如何解决非线性问题的呢? image.png

image.png

image.png

上图是一个非线性问题,XNOR问题(异或非/同或),既x1,x2相同取真,学过数电的应该知道异或非门是可由两个AND,然后和一个or门组合而成(同为真 or 同为0)[(1 and 1)or (0 and 0)] 我们先看AND:

image.png 我们分别取权重、权值为-30, 20, 20

S型激活函数图像:

image.png

然后输入值取不同值,有如下结果:

image.png 由上图可近似认为 h(Θ) ≈ x1 AND x2

同理,通过选定不同输入层个数以及权重,我们可以得到另外两个:

image.png

下面就是组合了,前两个and:

image.png

image.png

+or:

image.png

image.png

有木有感到整个人都升华了

image.png

神经网络中的代价函数

image.png

反向传播算法

再来看一下前向传播的过程:

image.png

δj(l):j层i节点的误差

我们从输出层出发:

image.png

这里无δ(1)因为输入项无误差

无监督学习