#3.1线性回归 ---动手学深度学习——pytorch1.10

学了本文你能学到什么?仅供学习,如有疑问,请留言。。。

注:红色是小结,     紫色是重点,能像被课文一样背诵,初次系统性的学习,请多多指点

目录

3.1线性回归

 3.1.1 线性回归的基本要素

3.1.1.1 模型定义

 3.1.1.2 模型训练

3.1.2 线性回归的表示方法

3.1.2.1 神经网络图

3.1.2.2 矢量计算表达式




"小结"
'''
1.和大多数深度学习模型一样,对于线性回归这样一种单层神经网络,它的基本要素包括模型、训练数据、损失函数和优化算法。
2.既可以用神经网络图表示线性回归,又可以用矢量计算表示该模型。
3.应该尽可能采用矢量计算,以提升计算效率。
'''


#3.1线性回归


"线性回归输出是一个连续值,因此适用于回归问题。"
"与回归问题不同,分类问题中模型的最终输出是一个离散值。"
"我们所说的图像分类、垃圾邮件识别、疾病检测等输出为离散值的问题都属于分类问题的范畴。" \
"softmax回归则适用于分类问题。"

 

# 3.1.1 线性回归的基本要素


"我们以一个简单的房屋价格预测作为例子来解释线性回归的基本要素。"

"为了简单起见,这里我们假设价格只取决于房屋状况的两个因素,即面积(平方米)和房龄(年)。

接下来我们希望探索价格与这两个因素的具体关系。"

 

 

# 3.1.1.1 模型定义

# 3.1.1.2 模型训练


"接下来我们需要通过数据来寻找特定的模型参数值,使模型在数据上的误差尽可能小。这个过程叫作模型训练(model training)。下面我们介绍模型训练所涉及的3个要素。"
# (1) 训练数据
"我们通常收集一系列的真实数据,例如多栋房屋的真实售出价格和它们对应的面积和房龄。我们希望在这个数据上面寻找模型参数来使模型的预测价格与真实价格的误差最小。"
"在机器学习术语里,该数据集被称为训练数据集(training data set)或训练集(training set)"
"一栋房屋被称为一个样本(sample),其真实售出价格叫作标签(label),用来预测标签的两个因素叫作特征(feature)。特征用来表征样本的特点。"

#(2) 损失函数
 

# (3) 优化算法
"当模型和损失函数形式较为简单时,上面的误差最小化问题的解可以直接用公式表达出来。这类解叫作解析解(analytical solution)"

# 3.1.1.3 模型预测


这里的估算也叫作模型预测、模型推断或模型测试。

# 3.1.2 线性回归的表示方法


"我们已经阐述了线性回归的模型表达式、训练和预测。下面我们解释线性回归与神经网络的联系,以及线性回归的矢量计算表达式。"

 

# 3.1.2.1 神经网络图


"在深度学习中,我们可以使用神经网络图直观地表现模型结构.神经网络图隐去了模型参数权重和偏差。输入个数也叫特征数或特征向量维度。"
"全连接层(fully-connected layer)或稠密层(dense layer)。在pytorch中就是用dense作为全连接层"

# 3.1.2.2 矢量计算表达式


"在模型训练或预测时,我们常常会同时处理多个数据样本并用到矢量计算。在介绍线性回归的矢量计算表达式之前,让我们先考虑对两个向量相加的两种方法。"
import torch
from time import time
a = torch.zeros(1000)
b = torch.zeros(1000)

# 向量相加的一种方法是,将这两个向量按元素逐一做标量加法。
start = time()
c = torch.zeros(1000)
for i in range(1000):
    c[i] = a[i] + b[i]
print(time() - start)  #0.015959501266479492

#向量相加的另一种方法是,将这两个向量直接做矢量加法。

start = time() d = a + b print(time() - start)  #0.0 # 结果很明显,后者比前者更省时。因此,我们应该尽可能采用矢量计算,以提升计算效率。