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

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

神经网络

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

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

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

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

相关推荐
爱隐身的官人2 小时前
爬虫基础学习-爬取网页项目(二)
前端·爬虫·python·学习
Ysn07194 小时前
pytorch_grad_cam 库学习笔记—— Ablation-CAM 算法的基类 AblationCAM 和 AblationLayer
pytorch·笔记·学习
小清兔4 小时前
c#基础知识
开发语言·数据库·学习·unity·c#·游戏引擎·.net
霜绛4 小时前
Unity笔记(七)——四元数、延迟函数、协同程序
笔记·学习·unity·游戏引擎
2006yu5 小时前
从零开始学习单片机13
单片机·嵌入式硬件·学习
风和日丽 随波逐流5 小时前
java18学习笔记
笔记·学习·java18
幽络源小助理5 小时前
如何从零开始学习黑客技术?网络安全入门指南
网络·学习·web安全
2006yu7 小时前
从零开始学习单片机12
学习
★YUI★8 小时前
学习游戏制作记录(保存装备物品技能树和删除存档文件)8.26
学习·游戏·unity·c#
神齐的小马9 小时前
计算机网络学习笔记
笔记·学习·计算机网络