IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【小白day1】Pytorch深度学习实践 -> 正文阅读

[人工智能]【小白day1】Pytorch深度学习实践

第一次写这个,很多不太懂,希望自己以后把学习的笔记、阅读的文献都记录下来,看到自己不断进步的过程,也和大家互相分享学习、共同探讨知识,加油!

线性模型

进行深度学习时的准备过程

  1. 准备数据集
  2. 选择模型
  3. 模型训练
  4. 进行推理预测

举例:对于某产品花费x工时,即可收到y效益,有表如下

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

求问花费4工时的条件下,可获得收益为多少?

模型设计:y=xw+b 训练模型的过程即确定参数w和b
下图以 y=x
w 建模
不同w的线性模型
在模型训练中会先随机取得一个值,继而计算其和标准量之间的偏移量,从而判断当前模型是否符合预期。
记实际值为y(x),模型对应的预测值为 y ^ ( x ) \widehat y(x) y ?(x),则其中的偏移量为 ∣ y ^ ( x ) ? y ( x ) ∣ \left|\widehat y(x)-y(x)\right| y ?(x)?y(x),以此来代表模型估计值对原值的误差。
通常,该公式定义为Training Loss (Error)
l o s s = ( y ^ ? y ) 2 = ( ω x ? y ) 2 loss = (\widehat y - y)^2 = (\omega x - y)^2 loss=(y ??y)2=(ωx?y)2
原题目中的几种 ω \omega ω所对应的Loss如下
w=3
在这里插入图片描述
在这里插入图片描述
其中的每行为 w w w不同时的单个样本的损失,最后一行为平均损失。
对于单个样本,有loss可用于指代样本误差。对于所有样本,可同理用==Mean Square Error (MSE)==来指代整体样本的平均平方误差(均方差cost)
c o s t = 1 N ∑ n = 1 N ( y ^ n ? y n ) 2 cost = \frac{1}{N} \displaystyle\sum_{n=1}^{N}(\widehat y_n-y_n)^2 cost=N1?n=1N?(y ?n??yn?)2
由cost的计算公式可知,当平均损失为0时,模型最佳,但由于仅当数据无噪声且模型完美贴合数据的情况下才会出现这种情况,因此模型训练的目的应当是尽可能小,而非找到误差为0的情况。
不同w的MSE
代码及曲线图

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
#求loss
def loss(x, y):
    y_pred = forward(x)
    return (y_pred-y)*(y_pred-y)

w_list = []
mse_list = []
#从0.0一直到4.1以0.1为间隔进行w的取样
for w in np.arange(0.0,4.1,0.1):
    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()

随着w的变化所绘制的loss曲线图
练习:尝试使用y=x*w+b模型训练,并画出误差函数图像

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

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

def forward(x,b):
    return x * w + b

def loss(x,y,b):
    y_pred = forward(x,b)
    return (y_pred-y) * (y_pred-y)

w_list=[]
b_list=[]
mse_list=[]

for w in np.arange(0.0,4.1,0.1):#从0.0一直到4.1以0.1为间隔进行w的取样
    for b in np.arange(-2.0,2.1,0.1):
        print('w=',w)
        print('b=',b)
        l_sum=0
        for x_val,y_val in zip(x_data,y_data):
            y_pred_val=forward(x_val,b)
            loss_val=loss(x_val,y_val,b)
            l_sum+=loss_val
            print('\t',x_val,y_val,y_pred_val,loss_val)
        mse_list.append(l_sum / 3)
        print('MSE=',l_sum/3)
        b_list.append(b)

    w_list.append(w)

fig=plt.figure()
ax=Axes3D(fig)

x=np.array(w_list)
y=np.arange(-2.0,2.1,0.1)
print(x.shape)
print(y.shape)
z=np.reshape(mse_list,(x.__len__(),y.__len__()))
x,y=np.meshgrid(x,y)

ax.plot_surface(x,y,z)
plt.show()

在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-16 11:17:35  更:2021-07-16 11:20:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/25 1:36:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码