深度学习方差代价函数误差评估

简介: 深度学习方差代价函数误差评估

1 如何评估误差?

深度学习常见的损失函数:https://blog.csdn.net/ZGL_cyy/article/details/128173521

1、通过差值来评价误差 => 正负会抵消误差,使用绝对差 => 代码不好处理


2、使用平方误差,平方误差越小就说明偏离的事实就越小,小蓝的思考就越接近真相

于是我们将w和平方误差的关系画出来,发现图像是一个开口向上的一元二次方程

均方误差:将所有误差值累加起来,然后求平均值,这就是预测函数在整体样本上的误差

2 概率和统计

事物出现的频率收敛于它的概率

以下概念通过豆豆的栗子讲解:

回归分析:

一开始我们猜想一个w,然后统计出大量的数据(大小和毒性), 去评估我们的w合不合适,这个过程在数理统计里面称为:回归分析

最小二乘法:

而我们评估的标准是"均方误差",并试图让他最小,也就是回归分析的最小二乘法

代价函数:

代价函数(Cost Function) ——当参数w取不同值时,对环境中的问题数据预测时产生不同的误差error。反过来,利用代价函数最低点的w值,把它放回到预测函数中,这时候预测函数也就很好的完成了对数据的拟合。


此时此刻,如果我们把函数看作处理问题的机器,那么事情从原先的机器输入数据,得到结果变成了用很多观察的数据去评估这个函数机器到行不行。


原先的自变量x和因变量y变成了从环境中观测到的大量已知数,而我们把w是作为自变量,误差e作为因变量,也就形成一个新的函数叫做代价函数。


这个所谓的"代价函数"展现出,当参数w取不同值的时候,对于环境中的问题数据预测时产生的不同误差。

而利用这个"代价函数"的最低点的w值,把它放回到预测函数,这时候预测函数也就很好完成了对数据的拟合。


注意:

在预测函数中w作为参数,x是作为自变量输入,y作为因变量输出

这是我们最终要得到预测函数问题的函数

而在研究函数的时候,x和y都是观测统计出来的已知数,成为了代价函数的已知参数部分

而w成为了自变量,误差代价e是因变量

这是我们用来分析并改进预测函数的辅助函数

3 如何挪动到最低点?

那当然是:求最低点w_min(二次函数的最低点,-b/2a)

正规方程:

这种一次性求解出让误差最小的W取值的方法,我们称为正规方程

如果数据量不大的话,这很合适。不过实际应用中输入x往往不会是一个特征数值,更一般的情况是一个特征向量,比如1000个维度,那么运算次数就是10亿次,而在现代神经网络中为了加快运算的速度一般都会采用并行计算的方式,也就是一次性把它们都算出来。

4 代码实现

豆豆数据集模拟:dataset.py

import numpy as np
def get_beans(counts):
  xs = np.random.rand(counts)
  xs = np.sort(xs)
  ys = [1.2*x+np.random.rand()/10 for x in xs]
  return xs,ys

代价函数分析:code_function.py

import dataset
import matplotlib.pyplot as plt
import numpy as np
# 豆豆数量m
m = 100
xs, ys = dataset.get_beans(m)
# 配置图像
plt.title("Size-Toxicity Function", fontsize=12)
plt.xlabel("Bean Size")
plt.ylabel("Toxicity")
plt.scatter(xs, ys)
w = 0.1
y_pre = w * xs
plt.plot(xs, y_pre)
plt.show()
# 绘制代价函数的图像(w和方差e的图像)
es = []
ws = np.arange(0, 3, 0.1)
for w in ws:
    y_pre = w * xs
    # 平方误差、求和、平均得到误差
    e = (1 / m) * np.sum((ys - y_pre) ** 2)
    es.append(e)
plt.title("Cost Function", fontsize=12)
plt.xlabel("w")
plt.ylabel("e")
plt.plot(ws, es)
plt.show()
# 用抛物线顶点坐标求解最低点的w
w_min = np.sum(xs * ys) / np.sum(xs ** 2)
print("最小点的w:" + str(w_min))
# 把最低点的W值带回预测函数中,看看效果
y_pre = w_min * xs
plt.title("Size-Toxicity Function", fontsize=12)
plt.xlabel("Bean Size")
plt.ylabel("Toxicity")
plt.scatter(xs, ys)
plt.plot(xs, y_pre)
plt.show()

W调整前:

代价函数图:

W调整后:

目录
相关文章
|
6月前
|
机器学习/深度学习 数据采集 PyTorch
使用PyTorch解决多分类问题:构建、训练和评估深度学习模型
使用PyTorch解决多分类问题:构建、训练和评估深度学习模型
使用PyTorch解决多分类问题:构建、训练和评估深度学习模型
|
1月前
|
机器学习/深度学习 vr&ar
深度学习笔记(十):深度学习评估指标
关于深度学习评估指标的全面介绍,涵盖了专业术语解释、一级和二级指标,以及各种深度学习模型的性能评估方法。
36 0
深度学习笔记(十):深度学习评估指标
|
1月前
|
机器学习/深度学习 编解码
深度学习笔记(三):神经网络之九种激活函数Sigmoid、tanh、ReLU、ReLU6、Leaky Relu、ELU、Swish、Mish、Softmax详解
本文介绍了九种常用的神经网络激活函数:Sigmoid、tanh、ReLU、ReLU6、Leaky ReLU、ELU、Swish、Mish和Softmax,包括它们的定义、图像、优缺点以及在深度学习中的应用和代码实现。
120 0
深度学习笔记(三):神经网络之九种激活函数Sigmoid、tanh、ReLU、ReLU6、Leaky Relu、ELU、Swish、Mish、Softmax详解
|
2月前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现深度学习模型:智能心理健康评估
使用Python实现深度学习模型:智能心理健康评估
173 2
使用Python实现深度学习模型:智能心理健康评估
|
4月前
|
机器学习/深度学习 存储 TensorFlow
使用Python实现深度学习模型:智能金融风控与信用评估
【7月更文挑战第25天】 使用Python实现深度学习模型:智能金融风控与信用评估
11251 7
|
3月前
|
机器学习/深度学习 算法
|
5月前
|
机器学习/深度学习 人工智能 算法
【机器学习】深度探索:从基础概念到深度学习关键技术的全面解析——梯度下降、激活函数、正则化与批量归一化
【机器学习】深度探索:从基础概念到深度学习关键技术的全面解析——梯度下降、激活函数、正则化与批量归一化
60 3
|
5月前
|
机器学习/深度学习 人工智能 Serverless
【深度学习】神经网络中的激活函数:释放非线性的力量
【深度学习】神经网络中的激活函数:释放非线性的力量
164 1
|
6月前
|
机器学习/深度学习 数据可视化 Python
|
6月前
|
机器学习/深度学习 数据可视化 数据挖掘
R语言深度学习卷积神经网络 (CNN)对 CIFAR 图像进行分类:训练与结果评估可视化
R语言深度学习卷积神经网络 (CNN)对 CIFAR 图像进行分类:训练与结果评估可视化

热门文章

最新文章