人工智能实战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()


-运行结果



二、问题解答:

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