“智能”(2)——代价函数&梯度下降


一、代价函数

1. 什么是代价函数

最优解的目的函数,代价函数的作用。

2. 代价函数的原理

例如:
假设一个模型 f ( x ) f(x) f(x)的函数是 y = w ∗ x y=w*x y=wx
该模型要预测出最优的 w w w那么 代价函数可写成
e = ( 1 / m ) ∗ ∑ i = 1 m ( x i 2 w 2 ) − 2 x i y i w + y i 2 e=(1/m)*\sum_{i=1}^m (x_i^2 w^2)-2 x_i y_i w+y_i^2 e=(1/m)i=1m(xi2w2)2xiyiw+yi2
这里的代价函数 w w w为自变量 e e e表示因变量
{这里的 e e e表示均方差} 所以我们要使得我们可以得到最优解就需要让误差最小
既:二次函数的最低点 − 2 a / b -2a/b 2a/b

以上是个人的笔记,此处更加详尽的笔记请参考: 代价函数.

二、梯度下降

1. 批量梯度下降

一口气计算所有数据与当前模型偏差,根据所得出的均方误差,进行梯度下降。
代码:

 for i in range(100):								#进行100次梯度下降
     k = 2*np.sum(xs**2)*w + np.sum(-2*xs*ys)		#一口气计算误差
     alpha = 0.1
     k = k/100										#均方差
     w = w - alpha * k								#下降
     plt.clf()
     plt.scatter(xs,ys)
     y_pre = w * xs
     plt.plot(xs, y_pre)
     plt.pause(0.1)

2. 随机梯度下降

一个点一个点对模型进行下降
代码:

# "随机梯度下降"
for i in range(100):
    x = xs[i]
    y = ys[i]
    k = 2*(x**2)*w + (-2*x*y)					#计算单个点的下降幅度
    alpha = 0.1
    w = w - alpha * k
    plt.clf()
    plt.scatter(xs,ys)
    y_pre = w * xs
    plt.plot(xs, y_pre)
    plt.pause(0.01)

B站

三、梯度下降为什么梯度

在当模型 y = w x y = wx y=wx时只有w是我们需要拟合的最优解,我们可以近似为斜率。但是当情况变得复杂时 y = w x + b y = wx + b y=wx+b时我们所需要的最优解就变成了两个 w w w b b b,那么最优图像就近似与一个曲面。当维度更高时就不单单是能用斜率来表示,所以采用各个分量的向量和来进行梯度下降。

四、python知识点

list.append()

append() 方法用于在列表末尾添加新的对象。

示例:

list1 = ['Google', 'Runoob', 'Taobao']
list1.append('Baidu')
print ("更新后的列表 : ", list1)

最终展示结果: [‘Google’, ‘Runoob’, ‘Taobao’, ‘Baidu’]


以上是B站ele实验室 上课学习笔记。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值