人工智能实战2019 第三次作业 续连元

项目内容
这个作业属于哪个课程https://edu.cnblogs.com/campus/buaa/BUAA-AI-2019
这个作业的要求在哪里 https://edu.cnblogs.com/campus/buaa/BUAA-AI-2019/homework/2787
我在这个课程的目标是学习,了解并实践深度学习的实际工程应用
这个作业在哪个具体方面帮助我实现目标感受梯度下降法的思路及实现步骤
作业正文如下
参考文献示例代码

正文

一、python实现

  • 在本代码中,考虑学习率为0.01,0.05,010,0.15的值下,batch_size取5,10,15的效果,最终结果如图。
import numpy as np
import matplotlib.pyplot as plt
from pathlib import Path

times = 100
LR = [0.01,0.05,0.1,0.15]

def ReadData():
    Xfile = Path('TemperatureControlXData.dat')
    Yfile = Path('TemperatureControlYData.dat')
    if Xfile.exists() & Yfile.exists():
        X = np.load(Xfile)
        Y = np.load(Yfile)
        return X,Y
    else:
        return None,None


def mini_batch_train(batch_size,LR,X,Y):
    w = 0
    b = 0
    Loss = np.zeros(times)
    Index = np.array(range(0,200))
    for i in range(times):
        batch_index = np.random.choice(Index, batch_size,replace=False)
        batch_x = X[batch_index]
        batch_y = Y[batch_index]

        z = np.dot(w,batch_x) + b
        dz = z - batch_y
        w = w - LR/batch_size*(np.dot(dz,batch_x))
        b = b - LR/batch_size*dz.sum()

        temp = np.dot(dz,dz)
        loss_i = temp.sum()
        Loss[i] = loss_i

    return Loss

if __name__ == '__main__':
    X,Y = ReadData()
    for i in LR:
        plt.figure()
        x = np.linspace(0, times, 100)
        plt.xlabel("times")
        plt.ylabel("loss")

        LOSS_5 = mini_batch_train(5,i,X,Y)
        LOSS_10 = mini_batch_train(10,i,X,Y)
        LOSS_15 = mini_batch_train(15,i,X,Y)

        plt.title("learing_rate = %.2f"% i)
        plt.plot(x, LOSS_5, label="batch_size=5")
        plt.plot(x, LOSS_10, label="batch_size=10")
        plt.plot(x, LOSS_15, label="batch_size=15")
        plt.legend(loc='upper right')
        plt.show()

-运行结果
1621239-20190325154625372-1273846350.png
1621239-20190325154630504-693779870.png
1621239-20190325154634913-166611059.png
1621239-20190325154640110-1992679352.png

二、问题解答:

  • 问题二:为什么是椭圆而不是圆?如何把这个图变成一个圆?
    答:1)均方误差的表达式中有w乘b项,其在空间直角坐标系中为椭圆抛物面,故而对应在xy平面上投影为椭圆。
    2)若改变误差的表达式,去掉w乘b项并使w^2与b^2的系数相同,则投影变为圆。
  • 问题三:为什么中心是个椭圆区域而不是一个点?
    答:因为无法使得所有散点全部集中在一条直线上,而loss值较小的这些(w,b)的值投影在平面上即形成了椭圆。

转载于:https://www.cnblogs.com/lianyuan/p/10594018.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值