李宏毅机器学习笔记-第一节

目录

Different types of Functions(不同类型的功能)

机器学习找函数的步骤(以下用youtobe订阅为例子)

1. Function with Unknown Parameters

2. Define Loss from Training Data

3.Optimization(最佳化,最优解)

 4.modify(修正)​

机器学习找函数的步骤

1. Function with Unknown Parameters

2. Define Loss from Training Data

 3.Optimization(最佳化,最优解)


Different types of Functions(不同类型的功能)

Regression(回归):The function outputs a scalar

Classification(分类): Given options (classes), the function outputs the correct one.

Structured Learning(结构学习):create something with structure (image, document)

机器学习找函数的步骤(以下用youtobe订阅为例子)

1. Function with Unknown Parameters

y = f(Parameters)

在这里我们假设模型为 y=b+wx_1

在这里y的值为2/26预测的观看值,x_1(feature:特征)为2/25的观看值,w(weight:权重)和b(bias:偏差)是未知的参数

2. Define Loss from Training Data

Loss is a function of parameters => L(b,w)

Loss(损失函数): how good a set of values is.

假设L(0.5k,1),则y=b+wx_1=>y=0.5k+1x_1

根据前一天的观看数据,带入模型中,进而获取第二天的观看次数(y),与实际的结果(y ̂)进行一个比对和差距计算(e_n=|y−y ̂|),以此类推。计算得出loss的值。

 当然不同情况的e_n的计算也是不同的,通常情况下计算e_n的方法有两种:

当我们尝试了不同的w和b的组合以后,我们就会得到许多关于loss的值,因此我们便可以画出关于w,b和loss的等高线图(Error Surface)。

3.Optimization(最佳化,最优解)

找到一组w和b使得loss的值最小,并将此时w和b的值设置为w*和b*

所以我们利用Gradient Descent(梯度下架)的方法来寻找w和b以及对应的loss最小值。

在Gradient Descent的方法中,我们假设未知数只有一个进而我们便可以得到如下的一个函数图。

 首先我们要随机寻找找一个初始的点w_0,其次我们对随机点处的函数进行求导。

如果导数的值是正的那么就减少w的值至w_1,反之(导数的值是负的)就增加w的值至w_1 。从w_0到w_1的距离我们设定为而这些我们自己设定的东西叫做hyperparameters(超参)。而当导数的值为0时,w_n就不在移动。

回到最初的式子,此时式子中的有两个参数。借鉴于一个参数的情况我们也是随机的取初始的点w

_0和b_0,随后我们对L分别求w和b的偏导数。 ,再不断移动w_n和b_n的位置从而得到最优的结果。

 4.modify(修正)

 

在基于以前数据的基础上我们得到了最优的模型解,对于上面的三个步骤我们称之为训练。

但是这个模型对与未来的观看人数的预测到底准确不准确,所以我们要进行计算。

我们可以看到我们利用“最优解”的模型所计算出来的数据与实际的数据存在一定的误差。在观察图像之后,我们发现了一个规律,即每隔一个礼拜一个循环。因此我们根据图像对模型进行一定的修正 ,从而我们的loss的值进一步的减少

 而当我们继续修正以后,loss的值也会随之改变。

以上的模型统称为Linear models(线性模型)

机器学习找函数的步骤

1. Function with Unknown Parameters

 在线性模型中,x和y的关系仅仅是线性的关系,x越大y也就变大(或变小),而设定不同的w和b仅仅只能更改y的值得大小,而对于x和y的关系则是无法改变。在具体的事件中,我们知道x和y的关系并不一定是线性的,可能会有各种各样不同的关系。因此利用线性模型进行分析便会有许多的限制,我们将这个限制称为Model Bias(模型偏差)。

例如x和y的关系如下图所示

 我们认为这一函数的组成是由某个常量加上不同的“蓝色”线性函数的组合

 具体组成如下图所示

 以此类推,我们可以知道,对于复杂的x与y的关系我们都可以利用这个方法,将许多“蓝色”线性函数组成一个复杂的函数。

当x与y的关系为曲线时,我们也可以利用拆分的方法,在曲线的每一个部分取许多的点,进行一个连线,再利用“蓝色”线性函数无限逼近曲线函数。

 我们知道了要用“蓝色”线性函数来组成一个复杂的x与y的关系,那么如何写出“蓝色”线性函数便是我们目前要解决的问题。

在这里我们利用s型曲线来实现对于 “蓝色”线性函数的逼近。通过调整c,b,w的值从而实现。

 改变w的值,改变函数的斜率;改变b的值,改变函数的左右位置;改变c的值,改变函数的最大值。

 因此上面我们一开始说的x与y的函数关系我们就可以用以下的式子进行一个表示。

讨论完单个特征带入的情况后,我们下面来谈论多个特征带入的情况。由上文的youtobe频道观看人数我们知道了y和x的表达式为

因此结合单个特征的表达式我们可以将式子进一步演化为

 接下来我们队这个式子进行一个进一步的理解。

 首先我们来解释一下关于式子中i,j的理解。j代表的是特种的值得数量,也就是说我们将三个数据作为一组。i代表的是 “蓝色”线性函数的个数,我们这里假设也是3个。

我们再来看一下蓝色框内的式子的运算。

我们可以看到其实蓝色框中的式子就是一个简单的求和运算。x_1*w_11+x_2*w_12+x_3*w_13+b_1我们得到了r_1的表达式,以此类推我们可以得到 r_2,r_3的表达式。(注意:w_i_j是权重是常数)

通过利用线性代数我们可以简化r_1,r_2,r_3的式子。

我们简化为x乘以矩阵w再加上向量b得到向量r。

得到 r_1,r_2,r_3以后我们将其带入sigmoid函数中,可以得到

同理a_2,a_3也是一样的结果。

最后我们将a_1*c1+ a_2*c_2+a_3*c_3+b得到总的式子y

简化式子可以得到

 注意此处的c_t是行向量,a为列向量(参考矩阵的运算)

因此我们可以得到总的式子

 我们将矩阵w,向量b,向量c_t,向量b统称为未知参数

 

2. Define Loss from Training Data

 同理于上面所讲的loss这里我们的loss也是带入未知参数,而此处我们的未知参数为

 随后我们带入特征值得到y与现有的y的值进行比较计算得到e的值,计算出总的loss的值

 

 3.Optimization(最佳化,最优解)

最优解的目的在于找出一个,让loss的值最小。我们记这个

在这里我们第一步还是先寻找一个初始的(此处我们还是随机选择,以后会有更好的选择方法),我们记为

 其次我们利用梯度下降(求偏导)的方法依次求L对于......的偏导(在处),得到g

 

简写为

 之后我们再对......进行“更新”

简写为

 

重复上述操作,直到算出来 g为0向量的时候,式子结束。

 而在我们实际的计算过程中,我们通常是将数据进行分组,得到一个batch,计算这个batch的g值,再依次计算。

以下是对epoch和update的理解

 在上面我们讲到利用sigmoid函数来表示x和y的复杂关系,在这里我们介绍另一种表示的方法,就是利用Rectified Liner Unit(ReLU)来表示。

于是我们在选择表示时就有了一种新的选择。

 

注:1.因为需要两个ReLU合成一个函数,因此为2i。 2.我们将sigmoid和max函数叫做激活函数(Activation function)

 

 因为本人还在机器学习的初期,因此博客的有些知识点会有一定的差错,还请各位指正,感谢!

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值