• 神经网络和深度学习-均方误差Mean Square Error


    均方误差Mean Square Error

    测量预测值Ŷ与某些真实值匹配程度。MSE 通常用作回归问题的损失函数

    由单个样本训练损失来推导出整个训练集的MSE

    在这里插入图片描述

    M S E = 1 n ∑ i = 1 n ( Y i − Y ^ i ) 2 \mathrm{MSE}=\frac{1}{n} \sum_{i=1}^{n}\left(Y_{i}-\hat{Y}_{i}\right)^{2} MSE=n1i=1n(YiY^i)2

    下面来看MSE的python实现

    定义输入输出

    在这里插入图片描述

    定义模型,这里就使用线性模型

    在这里插入图片描述

    定义损失函数

    在这里插入图片描述

    权重矩阵和对应的MSE损失值

    在这里插入图片描述

    生成0.0-4.0的序列

    在这里插入图片描述

    计算训练集中的每一个样本的损失函数

    在这里插入图片描述

    保存w和mse

    在这里插入图片描述

    画图

    在这里插入图片描述

    下面是部分结果

    w= 0.0
    1.0 2.0 0.0 4.0
    2.0 4.0 0.0 16.0
    3.0 6.0 0.0 36.0
    MSE= 18.666666666666668
    w= 0.1
    1.0 2.0 0.1 3.61
    2.0 4.0 0.2 14.44
    3.0 6.0 0.30000000000000004 32.49
    MSE= 16.846666666666668
    w= 0.2
    1.0 2.0 0.2 3.24
    2.0 4.0 0.4 12.96
    3.0 6.0 0.6000000000000001 29.160000000000004
    MSE= 15.120000000000003
    w= 0.30000000000000004
    1.0 2.0 0.30000000000000004 2.8899999999999997
    2.0 4.0 0.6000000000000001 11.559999999999999
    3.0 6.0 0.9000000000000001 26.009999999999998
    MSE= 13.486666666666665
    w= 0.4
    1.0 2.0 0.4 2.5600000000000005
    2.0 4.0 0.8 10.240000000000002
    3.0 6.0 1.2000000000000002 23.04
    MSE= 11.946666666666667
    w= 0.5
    1.0 2.0 0.5 2.25
    2.0 4.0 1.0 9.0
    3.0 6.0 1.5 20.25
    MSE= 10.5

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T5St2zfz-1669353869960)(https://secure2.wostatic.cn/static/o9frrGKHcAG9xg5b59wfSP/image.png?auth_key=1669353795-wr7RKPkVV3HJBeiexBU9L2-0-234a5c672412e65fd7e3d3e1a67b16b4)]

    下面是具体代码

    import numpy as np
    import matplotlib.pyplot as plt
    
    x_data = [1.0, 2.0, 3.0]  # 输入x
    y_data = [2.0, 4.0, 6.0]  # 输出y
    
    
    # 定义模型
    def forward(x):
        return x * w
    
    
    # 定义损失函数
    def loss(x, y):
        y_pred = forward(x)
        return (y_pred - y) * (y_pred - y)
    
    
    w_list = []  # 权重矩阵
    mse_list = []  # 对应的MSE损失值
    
    for w in np.arange(0.0, 4.1, 0.1):  # 生成0.0-4.0的序列
        print('w=', w)
        l_sum = 0
        for x_val, y_val in zip(x_data, y_data):  # 计算训练集中的每一个样本的损失函数
            y_pred_val = forward(x_val)
            loss_val = loss(x_val, y_val)
            l_sum += loss_val
            print('\t', x_val, y_val, y_pred_val, loss_val)
        print('MSE=', l_sum / 3)
        w_list.append(w)
        mse_list.append(l_sum / 3)
    
    plt.plot(w_list,mse_list)
    plt.ylabel('Loss')
    plt.xlabel('w')
    plt.show()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
  • 相关阅读:
    PCL 滤波采样(二)——直通滤波
    四、云计算-国产-华为-运维、灾备和迁移+HCIE Cloud相关知识点+笔试题库
    小程序优化:第三方SDK过大解决方案
    C++数据结构X篇_04_单向链表框架搭建、实现和测试(链表的定义,常用操作的实现等)
    Vue3, setup语法糖、Composition API全方位解读
    Linux学习笔记
    基于java web技术的班级同学录网站-计算机毕业设计
    jquery 跑马灯效果
    分区表大小查询
    动态规划基础
  • 原文地址:https://blog.csdn.net/weixin_55500281/article/details/128026966