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

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

神经网络

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

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

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

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

相关推荐
好大哥呀14 小时前
Java Web的学习路径
java·前端·学习
bryant_meng16 小时前
【DLNR】《High-frequency Stereo Matching Network》
人工智能·深度学习·计算机视觉·stereo matching·dlnr
梦雨羊16 小时前
Base-NLP学习
人工智能·学习·自然语言处理
丝斯201116 小时前
AI学习笔记整理(42)——NLP之大规模预训练模型Transformer
人工智能·笔记·学习
小猪佩奇TONY17 小时前
Linux 内核学习(14) --- linux x86-32 虚拟地址空间
linux·学习
副露のmagic17 小时前
更弱智的算法学习 day28
学习
ha204289419417 小时前
Linux操作系统学习记录之---TcpSocket
linux·网络·c++·学习
凉、介19 小时前
深入 QEMU Guest Agent:虚拟机内外通信的隐形纽带
c语言·笔记·学习·嵌入式·虚拟化
崇山峻岭之间19 小时前
Matlab学习记录31
开发语言·学习·matlab
mahtengdbb119 小时前
YOLOv10n-ADown改进实现路面裂缝与坑洼检测_计算机视觉_目标检测_道路维护_智能检测系统
yolo·目标检测·计算机视觉