从0开始学习计算机视觉--Day07--神经网络

当我们输入的变量是一个比较大的向量(比如有4096项),函数是求返回输入的最大值,要求的权重矩阵的梯度就是4096 * 4096的大小,而实际上我们的输入往往都不只有一个向量,那如果向量有一百个的话,是否就意味着要求的矩阵达到了409600 * 409600的大小呢?其实不然,从梯度里求偏导的角度出发,求的第一个值的自变量实际上是输出的第一个元素(即最大的那个元素),其他的元素都算做无关变量,可以当做是常数来对待,所以在实际的应用中的计算量依然只是4096 * 4096的计算量,也就是只需要写出每个元素的偏导即可。

神经网络

简单来说,神经网络是由简单函数构成的一组函数,只是以层次化的方式将他们堆叠起来,从俄日选哪个策划那个一个更复杂的非线性函数。以之前的分类函数为例,第一层是,第二层是

我们在第一层根据输入的向量,得到了这张图片在各个类别的初始得分,然后通过第二个我们根据梯度下降得到的权重矩阵加权后,选择各个类别中最大的得分作为输出,从而判断输入图片的类别。这里只有简单的两层,在实际应用中可以根据需求堆叠多层网络去迭代、优化输出值。

从概念上来理解就是,我们想对一张图片进行识别分类,为了让模型可以理解它,用第一层线性层对图片的数据进行降维,变成了向量,在第二层非线性层用激活函数(在这个例子里是max函数)来对值进行变换,使得整体函数形式变为任意的目标函数,例子中这种我们叫做单隐藏层神经网络(在实际应用中我们通常比较关注的是有多少层隐藏层,而不是做了多少次矩阵乘法,即多少个线性层或全连接层)

学习来自斯坦福教程:Stanford University CS231n: Deep Learning for Computer Vision

相关推荐
Pandora_41717 小时前
cursor学习
学习
Coding茶水间17 小时前
基于深度学习的非机动车头盔检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
图像处理·人工智能·深度学习·yolo·目标检测·机器学习·计算机视觉
崇山峻岭之间17 小时前
Matlab学习笔记02
笔记·学习·matlab
Kiri霧18 小时前
Range循环和切片
前端·后端·学习·golang
hssfscv19 小时前
Javaweb 学习笔记——html+css
前端·笔记·学习
Mr.Jessy19 小时前
JavaScript高级:深浅拷贝、异常处理、防抖及节流
开发语言·前端·javascript·学习
博客胡20 小时前
Python-fastAPI的学习与使用
学习·fastapi·ai编程
HyperAI超神经20 小时前
【Triton 教程】triton_language.load
人工智能·学习·大语言模型·cpu·gpu·编程语言·triton
知识分享小能手20 小时前
Ubuntu入门学习教程,从入门到精通,Linux操作系统概述(1)
linux·学习·ubuntu
roman_日积跬步-终至千里21 小时前
【计算机视觉(16)】语义理解-训练神经网络1_激活_预处理_初始化_BN
人工智能·神经网络·计算机视觉