热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

卷积神经网络02(线性模型、穷举法)

步骤:1数据集2模型选择(根据数据集的情况进行选择)3训练(knn等)大部分都需要training4推理训练好以后对以后的预测和应用输入x预测y以上监督学习训练好了

步骤:
1 数据集

2 模型选择(根据数据集的情况进行选择)

3 训练(knn等)大部分都需要training

4 推理

在这里插入图片描述
加粗样式
训练好以后对以后的预测和应用
输入 x
预测 y
以上监督学习
训练好了以后需要测试集进行评估
随机猜测(对于权重可以使用随机猜测进行)
在这里插入图片描述
平均损失,可以看到当预测是3,6,9的时候,平均损失是14/3。
因此为了得到比较好的模型,更好的反应理想分布,这个时候就要找最小的损失。
另外,为什么要使用平方了,为了防止误差有负数,相互抵消了。
在这里插入图片描述
MSE(Mean Square Error)
在这里插入图片描述
综上可知,为了解决这个问题,就要找到这样的预测权重值,使得误差最小,这就是我们要求取的权重值。
初中学数学的时候,为了验证,我们采用穷举法,就是尽可能多的列举数据,去验证和计算。
在这里插入图片描述

# 1 导入所需要的库
import numpy as np
import matplotlib.pyplot as plt# 2 创建或者导入数据集
x_data = [1.0,2.0,3.0]
y_data = [2.0,4.0,6.0]# 3 前向传播
def forward(x):return x * w# 4 loss计算
def loss(x,y):y_pred = forward(x)return (y_pred - y) * (y_pred - y)# 5 定义两个列表用于接收权重和误差
w_list = []
mse_list = []# 6 穷举进行操作,从0.0,-4.0间隔0.1进行取值
for w in np.arange(0.0,4.1,0.1):print("w=",w)l_sum = 0for 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_valprint('\t',x_val,y_val,y_pred_val,loss_val)print('MSE=',l_sum/3)# 7 将权重和误差放入新建的列表中,用于输出绘图使用w_list.append(w)mse_list.append(l_sum/3)l_sum_min = min(mse_list)print(l_sum_min)# 8可视化绘图,将第7步保存的权重和误差用绘图的形式,绘制出来
plt.plot(w_list,mse_list,c='g')
plt.ylabel('loss')
plt.xlabel('w')
plt.show()# 9总结:正常情况下,不使用w作为可视化的横坐标,而是使用epoch当做横坐标,通过迭代进行。

在这里插入图片描述
w= 4.0
1.0 2.0 4.0 4.0
2.0 4.0 8.0 16.0
3.0 6.0 12.0 36.0
MSE= 18.666666666666668
0.0
上面每一步的作用我都有注释,有助于各位理解。

学习心得
概括一下就是,学习深度学习的时候,无非就是下面几步
1 准备数据集(生成或者导入)

2 根据数据的情况构建模型

3 定义前向传播和反向传播

4 代入训练模型

5 可视化训练结果

注意:后面学习的是通过epoch作为横坐标,本实验用的是w(权重)作为横坐标,是不一样的,因为在训练的时候,如果模型比较负责,权重就不会是线性的,可能是一个平面的。因此后面就会通过训练的轮数作为训练的结果可视化的横坐标,这样就可以根据每一轮训练的损失作为纵坐标,从而进行展示。


推荐阅读
  • 机器学习(ML)三之多层感知机
    深度学习主要关注多层模型,现在以多层感知机(multilayerperceptron,MLP)为例,介绍多层神经网络的概念。隐藏层多层感知机在单层神经网络的基础上引入了一到多个隐藏 ... [详细]
  • 本文介绍了多维缩放(MDS)技术,这是一种将高维数据映射到低维空间的方法,通过保持原始数据间的关系,以便于可视化和分析。文章详细描述了MDS的原理和实现过程,并提供了Python代码示例。 ... [详细]
  • 计算机学报精选论文概览(2020-2022)
    本文汇总了2020年至2022年间《计算机学报》上发表的若干重要论文,旨在为即将投稿的研究者提供参考。 ... [详细]
  • 关于进程的复习:#管道#数据的共享Managerdictlist#进程池#cpu个数1#retmap(func,iterable)#异步自带close和join#所有 ... [详细]
  • 1、编写一个Java程序在屏幕上输出“你好!”。programmenameHelloworld.javapublicclassHelloworld{publicst ... [详细]
  • 本文详细探讨了 TensorFlow 中 `tf.identity` 函数的作用及其应用场景,通过对比直接赋值与使用 `tf.identity` 的差异,帮助读者更好地理解和运用这一函数。 ... [详细]
  • AI炼金术:KNN分类器的构建与应用
    本文介绍了如何使用Python及其相关库(如NumPy、scikit-learn和matplotlib)构建KNN分类器模型。通过详细的数据准备、模型训练及新样本预测的过程,展示KNN算法的实际操作步骤。 ... [详细]
  • 分层学习率衰减在NLP预训练模型中的应用
    本文探讨了如何通过分层学习率衰减技术来优化NLP预训练模型的微调过程,特别是针对BERT模型。通过调整不同层的学习率,可以有效提高模型性能。 ... [详细]
  • 高级缩放示例.就像谷歌地图一样.它仅缩放图块,但不缩放整个图像.因此,缩放的瓷砖占据了恒定的记忆,并且不会为大型缩放图像调整大小的图像.对于简化的缩放示例lookhere.在Win ... [详细]
  • 本文探讨了在UIScrollView上嵌入Webview时遇到的一个常见问题:点击图片放大并返回后,Webview无法立即滑动。我们将分析问题原因,并提供有效的解决方案。 ... [详细]
  • 本文详细介绍了HashSet类,它是Set接口的一个实现,底层使用哈希表(实际上是HashMap实例)。HashSet不保证元素的迭代顺序,并且是非线程安全的。 ... [详细]
  • pypy 真的能让 Python 比 C 还快么?
    作者:肖恩顿来源:游戏不存在最近“pypy为什么能让python比c还快”刷屏了,原文讲的内容偏理论,干货比较少。我们可以再深入一点点,了解pypy的真相。正式开始之前,多唠叨两句 ... [详细]
  • GreenPlum采纳ShareNothing的架构,良好的施展了便宜PC的作用。自此IO不在是DW(datawarehouse)的瓶颈,相同网络的压力会大很多。然而GreenPlum的查问优化策略可能防止尽量少的网络替换。对于首次接触GreenPlum的人来说,必定耳目一新。 ... [详细]
  • LeetCode 实战:寻找三数之和为零的组合
    给定一个包含 n 个整数的数组,判断该数组中是否存在三个元素 a、b、c,使得 a + b + c = 0。找出所有满足条件且不重复的三元组。 ... [详细]
  • 本文详细探讨了在Java中如何将图像对象转换为文件和字节数组(Byte[])的技术。虽然网络上存在大量相关资料,但实际操作时仍需注意细节。本文通过使用JMSL 4.0库中的图表对象作为示例,提供了一种实用的方法。 ... [详细]
author-avatar
郭原雪2865
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有