| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> PyTorch深度学习实践——线性模型 -> 正文阅读 |
|
[人工智能]PyTorch深度学习实践——线性模型 |
学习总结:? ? ??初入深度学习,在B站上学习了线性模型,对于其中认识总结如下: ? ? ?深度学习作为机器学习的一个分支,起源于生物神经科学,通过数学,工程学发展实现运用到了机器学习中,在机器学习中最重要的就是模型的构建,在我看来这个模型其实就是求得y=f(x)关系,给定一个输入,模型根据输入自动得到一个输出,这其实就是简单的AI ? ? ?对于模型给定的输入可以是图片,例如输入一张猫或狗的图片,让模型根据根据输入判断是否是猫或者狗,也可以是房价信息,要求模型根据以往的输入对未来房价信息给定预测,这两大基本任务便引申出了机器学习的两大任务,分类于回归(预测) ? ? 那么如何构建出y=f(x)呢?这是模型的关键,越复杂的模型y与x之间越参数复杂,但无论是复杂模型或是简单的模型,我们都是通过给定数据,让模型通过给定的数据进行学习,最终成功得到y=f(x)(这一点参照人类学习方式,我们所做出的推断都是对以往经验进行总结最终根据实际情况进行推测,因此再高大上的AI也好,其实也得通过学习后最终才能实现仿人) ? ?给定的数据可以称为数据集,分为训练集和测试集,测试集用于模型训练,测试集对模型进行测试,而验证集则可以对模型进行运用,在kaggle竞赛中,由于测试集(测试模型好坏)参加者不可看结果,因此常常又会把训练集自己分为训练集和测试集从而让模型不会过拟合,泛化能力可以提高 简单线性模型实现? ? ?在模型搭建我们通常会先使用一个线性模型进行训练,不行在换一个模型进行训练?假定本次线性模型y = wx +b,我们需要通过给定的数据求得 w 和 b(越复杂的模型y与x之间越参数复杂),对于w 和 b,本次实践利用算法里面的穷举法,将w与b进行穷举赋值,然后输入x_data,得到模型预测结果y_pred ,对于每次x_data得到的y_pred与y_data真实值做损失,当损失最小时候,便得到最终的模型,也就是y = f (x)? 代码实现:下面是线性模型的简单构建: 带入numpy库和matplotlib库,使用Axes3D的库绘制3D的Loss曲线:
假定本次任务是实现最简单的房价预测 第一年 房价2元,第二年 4元,第三年 6元 汇总成数据集x_data? y_data:
模型搭建:
Loss函数:
模型训练(计算Loss):w_list,b_list,mse_list存储对应的w、b以及平均平方损失值(MSE)
3D绘图:使用numpy的meshgrid函数将w_list和b_list组成二维的numpy类型的数组,以及将mse_list转换为numpy类型的数组
绘制Loss曲线:
结果展示,当w = 2.0 、b =0 时候损失最低(为什么出现这么多小数估计是精度损失问题) ?3D绘图展示: 本人小白一枚,刚入深度学习坑,有问题请大佬指出!不胜感激 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年11日历 | -2024/11/27 18:23:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |