人工智能第三次作业

一、绪论

项目 内容
这个作业属于哪个课程 [人工智能](https://edu.cnblogs.com/campus/buaa/BUAA-AI-2019)
这个作业的要求在哪里 [作业要求](https://edu.cnblogs.com/campus/buaa/BUAA-AI-2019/homework/2787)
我在这个课程的目标是 学习了解应用人工智能
这个作业在哪个具体方面帮助我实现目标 学习Mini Batch梯度下降方法

二、代码实现

import numpy as np
import matplotlib.pyplot as plt
from pathlib import Path

x_data_name = "TemperatureControlXData.dat"
y_data_name = "TemperatureControlYData.dat"
Xfile = Path(x_data_name)
Yfile = Path(y_data_name)
if Xfile.exists() & Yfile.exists():
    X = np.load(Xfile)
    Y = np.load(Yfile)
    X = X.reshape(1,-1)
    Y = Y.reshape(1,-1)
size=100

def function(batch_size):
    x=np.array(range(0,200))
    Loss=np.size(Epoch)
    w = np.random.normal()
    b = np.random.normal()
    for i in range(size):
        j = np.random.choice(a, batch_size)
        x = X[j]
        y = Y[j]
        value = w * x + b
        dw = ((value - y) * x / batch_size).sum()
        db = ((value - y) / batch_size).sum()
        w = w - dw
        b = b - db
        loss = ((value - y) * (value - y) / batch_size / 2).sum()
        Loss[i] = loss
    return Loss


plt.figure()
x = np.linspace(0,100,100)
plt.xlabel("x")
plt.ylabel("Loss")

Loss5 = function(5)
Loss10 = function(10)
Loss15 = function(15)

plt.plot(x, Loss5, label="batch_size=5")
plt.plot(x, Loss10, label="batch_size=10")
plt.plot(x, Loss15, label="batch_size=15")
plt.legend(loc='upper right')
plt.show()

三、问题

问题二:因为w和b的影响权重实时发生变化,当对于实际数据进行特定调整状态下,可以变成一个圆
问题三:我们对于w和b的取值是离散的,因此无法完美的到一个值,而是只能通过无限逼近的方式锁定一个范围。

猜你喜欢

转载自www.cnblogs.com/tk7362/p/10595628.html