Pytorch深度学习实践(1)线性模型

本博客学习视频链接:刘二大人

数据集的准备

深度学习四大步骤:

  • 数据集预处理
  • 选择模型
  • 模型训练
  • 模型预测

对于数据集,首先假设一个学生每周的学习时长与期末考试的数据集Dataset如下:

x(hours)y(points)
12
24
36
4?

我们深度学习的任务就是根据已知的数据集,来预测结果

上表中学习时长为 4 h 4h 4h对应的样本为测试集,即 T e s t   S e t Test \ Set Test Set,在训练过程中,为了保证我们模型具有更好的泛化能力,防止过拟合,测试集的 y y y是隐藏起来的。

因此,一般而言,还会对训练集进行再划分:

  • 训练集
  • 开发集

即将开发集用来评估模型每一步训练后的效果,在训练过程中不断调整各种参数,当训练全部完成后,再放到测试集中去进行测试,评估模型整体的好坏。

  • 训练集就相当于平时做的练习册
  • 开发集就相当于每次的周考和月考
  • 测试即就相当于最终的期末考试

线性模型

定义线性模型的公式:
y ^ = x ∗ ω + b \hat y = x*\omega + b y^=xω+b
在很多的任务里面,一般会先用线性模型放在问题里试一下,观察其是否能够满足我们的任务需求

在训练过程中,我们所追求的目标就是,求出来模型中的 ω \omega ω b b b

误差的定义

在训练过程中,我们要时刻评估当前模型和数据集之间存在的误差,如下图

在这里插入图片描述

将所有数据点上的误差相加得到,同时为了防止误差之间的正负相消,因此引入误差平方和,作为评估我们模型的方法

一个样本的误差(损失——针对于样本):
l o s s i = ( y ^ i − y i ) 2 = ( x ∗ ω − y i ) 2 loss_i = (\hat y_i - y_i)^2 = (x*\omega - y_i)^2 lossi=(y^iyi)2=(xωyi)2
模型的误差(每个样本的误差平方和再求平均):
c o s t ( M S E ) = 1 n ∑ i = 1 n l o s s i cost(MSE) = \frac{1}{n}\sum _{i=1}^{n}loss_i cost(MSE)=n1i=1nlossi

权重(模型参数)的确定

穷举法

对权重进行穷举遍历采样,保存每一次穷举时的误差,找出误差 c o s t cost cost最小时对应的参数值

import numpy as np
import matplotlib.pyplot as plt

x_data = [1.0,2.0,3.0]
y_data = [2.0,4.0,6.0]

## 定义模型
def forward(x):
    return x * w
## 定义损失函数
def loss(x,y):
    y_pred = forward(x)
    return (y_pred - y)**2

w_list = []
mse_list = []
for w in np.arange(0.0,4.1,0.1): # 0--4.0 间隔0.1
    print("w=",w)
    loss_sum = 0
    # 使用zip()函数将x_data和y_data拼接成(x,y)类型
    for x_val, y_val in zip(x_data, y_data):
        y_pred_val = forward(x_val)
        loss_val = loss(x_val,y_val)
        loss_sum += loss_val
    print("MSE=",loss_sum/len(x_data))
    w_list.append(w)
    mse_list.append(loss_sum/len(x_data))

plt.plot(w_list,mse_list)
plt.ylabel("Loss")
plt.xlabel("w")
plt.show()

在这里插入图片描述

因此,最终可以确定,当 ω = 2.0 \omega = 2.0 ω=2.0 时,效果最好

模型训练阶段可视化常用工具 Visdom

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值