
神经网络
文章平均质量分 70
神经网络
李峻枫
这个作者很懒,什么都没留下…
展开
-
【pytorch】LSTM神经网络
在处理时序数据,已经有和两个比较经典的网络。当然还有一种LSTM神经网络,长短期记忆神经网络。从发展历史来看,是现有LSTM再有GRU的,但是从复杂度来看,LSTM比GRU更加复杂。先来回忆一下GRU,其有两个门(更新门和重置门),有一个记录历史信息的向量Ht。而LSTM就更加复杂了,无论是在门的数量上还是记录历史信息的向量上。...原创 2022-07-27 11:44:57 · 2889 阅读 · 2 评论 -
GRU神经网络
通过重置门与更新门,GRU神经网络能够更好地记录历史信息。原创 2022-07-26 11:36:04 · 2504 阅读 · 0 评论 -
RNN循环神经网络
RNN神经网络是一种处理时序数据的简单模型,其的应用十分广泛。原创 2022-07-25 21:34:39 · 518 阅读 · 0 评论 -
【pytorch】CNN实战-花朵种类识别
采用CNN神经网络中经典的resnet18模型,对Flowers数据集进行分类。运用了图像增广技术与微调技术,在5轮训练后正确率超过了90%,在经过15轮训练后,精度可以达到97%。原创 2022-07-25 20:37:14 · 3475 阅读 · 1 评论 -
多目标检测
这是最简单的情形,只需要判定一张图片是属于哪一个类别即可。这种图像往往有一个非常显著的特殊,就是图像主体清晰且突出。但是日常生活中这类图像并不多,更多的是一张图片中包含了多个主体,此时单纯的目标分类就无法满足了,需要使用多目标检测。...原创 2022-07-24 20:25:35 · 3745 阅读 · 0 评论 -
【pytorch】微调技术
训练神经网络是一件非常耗费时间的事情,其需要大量的算力以及大量的数据。显然从头开始训练并不是明智之选,利用好已有的资源才是明智之选。原创 2022-07-24 19:57:12 · 657 阅读 · 0 评论 -
【pytorch】图片增广
在神经网络的训练过程中,往往需要大量的图片,大量的数据,否则可能会造成过拟合与欠拟合。然而并非都能找到合适的数据,因为标注标签的成本太高了,因此非常有必要利用好手上现有的数据。...原创 2022-07-24 19:28:12 · 630 阅读 · 0 评论 -
从全连接到卷积
作为图像处理中的一大核心工具,卷积已经应用在各个方面。但是卷积是如何而来的呢?从某种意义上来说,我们可以认为卷积是一种特殊的全连接,它就是从全连接层,根据某些图片的特点,演变而来的。因为全连接网络在处理图片上存在着很多问题。......原创 2022-07-17 20:38:02 · 826 阅读 · 0 评论 -
神经网络中的数值稳定性问题
数值稳定性,这个说起来简单但真正碰到确实一个非常难的问题,而且它十分的重要。当神经网络在训练的过程中,碰到NAN和inf的时候,是最为恼火的,这严重地影响了训练。有的时候,模型不断训练但没有结果也可能是数值稳定性问题。...原创 2022-07-17 17:30:37 · 824 阅读 · 0 评论 -
【pytorch】线性神经网络
回归是一种能更加多个变量之间的关系进行建模的一种方法,其在机器学习中有着官方运用。线性回归是其中最最最最简单的一种,其假设自变量与因变量之间是线性关系。利用pytorch就可以简单地写出线性回归的代码。...原创 2022-07-14 20:00:41 · 401 阅读 · 0 评论 -
【pytorch】简单的线性回归模型
回归是一种能更加多个变量之间的关系进行建模的一种方法,其在机器学习中有着官方运用。线性回归是其中最最最最简单的一种,其假设自变量与因变量之间是线性关系。利用pytorch就可以简单地写出线性回归的代码。...原创 2022-07-14 19:46:07 · 908 阅读 · 1 评论 -
卷积神经网络——卷积层
卷积神经网络中,最重要的就是卷积层,它负责从图片中提取特征信息。原创 2022-07-03 16:33:08 · 2017 阅读 · 0 评论 -
卷积神经网络简介
卷积神经网络(Convolutional Neural Networks, CNN)原创 2022-07-03 10:54:13 · 800 阅读 · 0 评论 -
过拟合与正则化
过是一个神经网络训练过程中,经常会遇到的问题,简单来说,就是模型的表现了,学习能力太强了,以至于把训练集的所有细节都记录下来了。当遇到测试集,就是之前完全没有见过的数据的时候,就会出现明显的错误。...原创 2022-07-02 20:07:31 · 251 阅读 · 0 评论 -
常见的最优化方法
在神经网络的训练中,其本质就是找到合适的参数,使得loss function最小。然而这个最小值实在是太难求了,因为参数太多了。为了解决这个问题,目前有几种常见的最优化方法。这是最最最经典的一个算法,也是比较常用的方法。相比于随机搜素,这个方法已经非常优秀了,但是仍然存在着一些不足。由于梯度的性质,决定了其很难在部分地方能够改进,但是对于步长这个超参也可以有优化。...原创 2022-07-02 11:37:50 · 1069 阅读 · 0 评论 -
随机梯度下降法
在学习此方法前,请先了解一下微积分(高数)的相关知识。梯度下降法一个十分困难的问题对于一个复杂的函数,有没有办法高效地求出它的一个最值?对于这个问题,不少数学家冥思苦想,但最终仍然行之有效的办法,那这个问题是不是无解了?其实也不一定,如果对于单峰函数,还是有解的。一个退而求其次的问题对于一个复杂的函数,有没有办法高效地求出它的一个极值?相比刚刚的那个问题,这个问题只需要求极值,而非最值,而且只需要求出一个即可。这样一来问题就有解了。先考虑极值有什么特征,梯度为0!因此,我们就可以利用梯度原创 2021-08-14 10:27:59 · 223 阅读 · 0 评论 -
计算图——一种快速求偏导数的方法
概述计算题,顾名思义,就是用一张图来表示一个算式,通过图上的一些操作来完成算式的计算。但是计算题有一个非常厉害的地方在于它不仅仅能正向计算(计算表达式的结果)也可以反向计算(求出导数,利用函数求导的链式法则)。今天我们就来见识一下这个计算图。计算图的表示在计算图上,用结点来表示符号,此处的符号应该理解为广义的符号,即计算操作,不仅仅包括=,-,*,/,还有个包括次幂,对数等运算。用有向边来表示计算的顺序,可知计算图是一个有向无环图,其计算顺序就是拓扑序。每个结点的入边边权表示其的输入,出边边权原创 2021-08-15 11:32:01 · 1052 阅读 · 0 评论 -
多层感知机
引入我们知道单层的感知机存在着局限性,比如说无法表示异或门(详细请看神经网络的基础——朴素的感知机)。而多层感知机就可以解决这个问题。先来考虑一下如何利用AND,OR,NAND来表示出XOR。可以发现(x1NANDx2)AND(x1ORx2)=x1XORx2(x_1 NAND x_2)AND(x_1 OR x_2)=x_1XORx_2(x1NANDx2)AND(x1ORx2)=x1XORx2因此我们就可以用前面的已知感知机来表示出XOR感知机。多层感知机观察XOR感知机,可以发现前原创 2021-08-04 10:38:48 · 702 阅读 · 0 评论 -
神经网络的基础——朴素的感知机
概述感知机(perceptron)是美国人在1957年提出来的一个算法,是神经网络的起源算法。它能接受多个信号(输入),输入一个信号。对于感知机而言,信号只有两种0或者1。通过设置合理的权重与偏置,感知机就可以达到我们想要的目的。一个简单的例子有输入源x1,x2,x3x_1,x_2,x_3x1,x2,x3,其对于的权重是w1,w2,w3w_1,w_2,w_3w1,w2,w3,感知机的偏置为bbb,其中x1,x2,x3x_1,x_2,x_3x1,x2,x3为0或者1。则当x1×原创 2021-08-03 23:12:37 · 619 阅读 · 0 评论 -
神经网络输出层的设计
通过优美的矩阵乘法,我们成功将信息从输入层传递到输出层,那么现在就应该要考虑如何从输出层或许我们想要的信息。两大类问题在运用神经网络所解决的问题中,一般可以大致分为两类:一类是分类问题,另一类是预测问题。由于这两类问题的性质不同,输出层的设计也有所不同。分类问题这是个非常常见的问题,即通过神经网络来判读一个物品是属于什么。举个最简单的例子,手机上的手写输入法就是一个分类问题,根据你手写的字来判断它属于哪一个字(一个字就是一类)。最常见的输出层就是有多少类就有多少个结点,每一个结点代表一类。最原创 2021-08-14 09:46:20 · 841 阅读 · 0 评论 -
信息在神经网络中的传递
了解完神经网络的基本结构之后,就应该来看看信息是如何在神经网络中传递的。以简单的三层神经网络为例在这个简单的神经网络中,隐藏层只有一层。先看输入层与隐藏层,不妨假设输入层有nnn个结点,隐藏层有mmm个结点,这样结点之间就有n×mn\times mn×m条边了。利用图论中的邻接矩阵,将所有的边权记录下来。用wi,jw_{i,j}wi,j表示从输入层的第iii号结点,到隐藏层的第jjj号结点的边权。用viv_ivi表示输入层的第iii个结点的权值,uiu_iui表示隐藏层第iii个结点的原创 2021-08-11 10:50:27 · 1006 阅读 · 0 评论 -
神经网络的训练
在了解了信息是如何在神经网络中的传递,并知道了如何设计输出层之后,那么神经网络的询问操作就已经基本上学习完了。但是,训练该如何进行呢?神经网络训练的基本思路单个数据独立训练具体步骤:1.将训练的数据输入神经网络,并得到一个输出的结果。2.将正确的结果与当前输出结果作比较,计算出误差。3.对这个误差进行学习。其实第一步就是神经网络的询问操作,而第二步在输出层的设计中也有所提及。当输出层的损失函数与激活函数为特定的函数,这里的误差就为输出结果与正确结果的差分,非常容易计算。一般情况下,我原创 2021-08-15 12:56:52 · 4808 阅读 · 0 评论 -
神经网络的训练——误差的反向传递
计算出输出层结点的误差非常容易,但是其他结点的误差该如何计算呢?一种简单粗暴的方法直接将当前结点的误差平均分给每一个与它相连的结点。这样做简单粗暴,非常好实现,但是这样子做符合逻辑吗?很显然非也!考虑两个与它相邻的结点,其中一个结点的边权为100000100000100000,另一个结点的边权为0.00000010.00000010.0000001,这里的权值有些夸张,只是为了更加凸显出这种问题。如果将误差平均分给这两个结点的话,那么边权非常小的那个结点所被分配到的误差就太大了。因为它边权那么小原创 2021-08-15 16:14:13 · 666 阅读 · 0 评论 -
神经网络的训练——边权的更新
训练的目的在更新边权之前,必须先要清晰地知道我们的目的是什么。显然,我们想要神经网络的结果与正确的结果一模一样(虽然真不太现实,但是理想总是要有的)。如果用严格一点的数学语言来表达,就是想办法使得输出层的损失函数趋于0!修改边权的核心思想——随机梯度下降法先来观察一下输出层的损失函数与什么有关,最直接的就是与输出层结点的权值有关,再进一步输出层的权值又与连接隐藏层和输出层直接的边权、隐藏层结点的权值有关。接着往下寻找,不难看出来,输出层的损失函数是一个关于所有边权的多元函数,其涉及到元的个数是非常原创 2021-08-16 09:00:49 · 543 阅读 · 0 评论 -
【神经网络实战】MNIST
经过一段时间的学习,终于要迎来这个激动人心的时刻了,我们要开始写我们自己的神经网络了!不过在此之前还是先回顾一下之前所学到的知识。回顾与复习Python是一门比较简单的语言,本次实战就是用Python来写的,因此先要在电脑上安装好Python。我们从最简单的感知机开始,渐渐地推广到多层的感知机。在引入了激活函数后,实现了从感知机到神经网络质的飞跃。然后我们开始了解神经网络的结构,深入地了解输出层是如何设计的,在此基础上又理解了信息是如何在神经网络中正向传递的。最后,我们了解了一些微积分的知识,学会了原创 2021-08-16 22:26:00 · 742 阅读 · 0 评论 -
从多层感知机到神经网络
前置知识神经网络的基础——朴素的感知机多层感知机神经网络生物大脑的一些特征大脑的功能十分强大,而且它的能耗非常小。一只果蝇大约只有10万个神经元,但是它却可以完成飞翔、觅食等相当复杂的任务。大脑的排除干扰能力也非常强大,比如说你可以在喧闹的人群中听到别人在喊你的名字。也就是说 ,大脑在受到干扰,或许接收到的信息以已经部分损坏的时候,依然能正确地得到相应的结果,这一点是非常强大的。能做到这一点也是因为大脑对信息处理是“模糊的”,并不是非黑即白的。让感知机变得“模糊”不难发现,朴素的感知机输出原创 2021-08-10 10:17:26 · 442 阅读 · 0 评论 -
【神经网络实战——MNIST】网络的设计
整体架构MNIST是一个比较简单的数据集,因此也无需设计过于复杂的神经网络。因此我们就选择最简单的三层神经网络,即输入层,输出层,隐藏层。现在就分别对每一层进行设计。输入层MNIST的图片大小是28×2828\times 2828×28,图片非常小,一共也就784像素,因此完全没有必须用到卷积神经网络来处理。输入层就设计有784个结点,每个结点代表一共像素。这样就可以很好地把整张照片的信息全部地记录下来,并全部传入神经网络。输出层这显然十分分类问题,一共有10类,即数字0到9。因此输出层只原创 2021-08-16 10:12:33 · 523 阅读 · 0 评论 -
神经网络的基本结构
在了解了什么是神经网络之后,我们就要来探讨神经网络的基本结构是什么了。基本的三层结构:输入层,隐藏层,输出层输入层顾名思义,就是信号输入的地方,这一层的节点上需要有足够的数量,来满足描述输入特征的需求。举个例子来说,如果需要识别一张像素为256×256256\times 256256×256的照片,那么输入层就需要用256×256256\times 256256×256个结点,每个结点描述对应的一个像素,这样输入层就可以将整张照片的信息传递到神经网络中去了。输出层顾名思义,就是运算结果输出的地方原创 2021-08-10 10:39:09 · 4101 阅读 · 0 评论