深度学习的一些概念理解(共享权重,最大池化,激活函数,残差网络):深度学习中有一个概念,叫共享权重,就是一个层中是共享权重的,这样做的好处有两个: a 能够减少参数的数量,加速训练 b 由于共享权重,使得整幅图对应的这个权重下求的的特征具有平移不变性 个人对于共享权重的理解:其实所谓的共享权重,比如对于一个5X5的卷积,不管图像多大,全部使用这样的5X5的卷积核去做卷积,由于卷积大小的5X5
一.引言函数式 API 的重要特性是能够多次重复使用一个层实例,如果对一个层实例调用两次,而不是每次调用都实例化一个新层,那么每次调用就可以重复使用相同的权重。这样可以构建具有共享分支的模型。二.共享层权重1.模型结构假设模型判断两个句子的相似度,模型有两个输入,分别为句子A,句子B,并输出一个 0-1 的分数代表相似度。在这种前提下,句子AB是具备交换性的,即A与B的相似性应该与B与A的相似性是
因为R-CNN到Fast R-CNN再到Faster R-CNN是一个递进的改进过程,所以对前两个不清楚的还是要先去读一读这两篇文章,我在下面提出自己的读书笔记(私以为还是写的很全面的,对很多其他博客里面没有提到的坑都有涉及)。 一文详解R-CNN: 一文详解Fast R-CNN:有一篇Faster R-CNN的文章写的着实不错,重点推荐:https://zhuanlan.zhihu.com/p/
1. CNN卷积网络-初识2. CNN卷积网络-前向传播算法3. CNN卷积网络-反向更新1. 前言如果读者详细的了解了DNN神经网络的反向更新,那对我们今天的学习会有很大的帮助。我们的CNN卷机网络中有3种网络结构。1. 卷积层,2.池化层,3.全连接层。全连接层的反向传播的方式和DNN的反向传播的方式是一样的,因为DNN的所有层都是全连接的结构。卷机层和池化层下文会继续讲解。2. 全连接反向更
这部分许多内容要类比CNN来进行理解和解释,所以需要对CNN比较熟悉。 RNN的特点1. 权值共享CNN权值共享,RNN也有权值共享,在入门篇可以看到RNN结构图中,权重使用的是同样的字母为什么要权值共享a. 减少weight,减少计算量,这点其实比较好理解。试想10X10的输入,全连接隐藏层如果是1000个神经元,那就有100000个weight要计算;如果是卷积神经网络,5X5的感受
1. RNNRNN被称为循环,因为它们对序列中的每个元素执行相同的任务,并且输出元素依赖于以前的元素或状态,RNN的输入和输出是可变的,并且在不停循环同样操作。循环公式有助于处理序列数据,因此RNN常用于处理序列数据。上述W权重共享,L是每一层/时间步的损失L,将所有损失相加得到整体损失。由于共享权重。每一步的误差梯度也取决于前一步的损失。上述例子中,为了计算第4步的梯度,需要将前3步的损失和第4
1. GCN公式,where 2. 拆解公式可将公式拆成2部分,normal = ,权重更新 wx = 权重更新很容易理解,将X特征进行线性变换。为简单起见,设结点数为6,每个结点的特征数为5,且值均为1。即 矩阵X为 X[6,5],注:斜体代表矩阵的shape另外设权重W为w为1,bias为0的线性模型 ,输入层为5个神经元输出
本文的论文来自: Notes on Convolutional Neural Networks, Jake Bouvrie。 这个主要是CNN的推导和实现的一些笔记,再看懂这个笔记之前,最好具有CNN的一些基础。这里也先列出一个资料供参考:[1] Deep L
人工神经网络 神经元 神经网络由大量的神经元相互连接而成。每个神经元接受线性组合的输入后,最开始只是简单的线性加权,后来给每个神经元加上了非线性的激活函数,从而进行非线性变换后输出。每两个神经元之间的连接代表加权值,称之为权重(weight)。不同的权重和激活函数,则会导致神经网络不同的输出。 举个手写识别的例子,给定一
CNN是深度学习在图像领域的一个应用。那么它相对于原来的神经网络方法有什么不同?为什么它适用于图像领域?原来:全连接神经网络需要的参数过多,例如1000*1000的图像,则输入层有10^6个节点,若隐藏层也有10^6个节点,则输入层到隐藏层的参数有10^12个。CNN:局部感知、权值共享CNN用局部感知和权值共享大大减少了参数,同时还具备其它优点。它们与自然图像自身具有的特性:特征的局部性与重复性
import tensorflow as tf
import helper
import numpy as np
import matplotlib as mpl
from tensorflow.examples.tutorials.mnist import input_data
# 设置字符集,防止中文乱码
mpl.rcParams['font.sans-serif'] = [u'simHei'
深层网络需要一个优良的权重初始化方案,目的是降低发生梯度爆炸和梯度消失的风险。先解释下梯度爆炸和梯度消失的原因,假设我们有如下前向传播路径: a1 = w1x + b1 z1 = σ(a1) a2 = w2z1 + b2 z2 = σ(a2) ... an = wnzn-1 + bn zn&nbs
VGG模型的升级回顾CNN卷积核池化原理使用2个3x3卷积核可以来代替5*5卷积核计算参数量VGG网络结构注意点:1*1的卷积核作用一:减少了参数量作用二:增加非线性作用三:从fully-connected layers的角度来理解1*1卷积核作用四:解决了需要固定输入图像尺寸的问题 模型的升级AlexNet(2012),VGG(2014),GoogleNet(2014),ResNet残差网络(
CNN结构特点1.局部连接使网络可以提取数据的局部特征 2.首先权值共享就是滤波器共享,即是用相同的滤波器去扫一遍图像,提取一次特征,得到feature map。在卷积网络中,学好了一个滤波器,就相当于掌握了一种特征,这个滤波器在图像中滑动,进行特征提取,然后所有进行这样操作的区域都会被采集到这种特征,权值共享大大降低了网络的训练难度,一个滤波器只提取一个特征,在整个图片(或者语音/文本) 中进行
KNN邻近算法KNN的自述原理参数K值确定K和weights对模型的影响KNN在不同数据集的表现 KNN的自述Km模型仍为有监督的学习算法。它属于一种惰性学习算法,即不会预先生成一个分类或预测模型,用于新样本的预测,而是将模型的构建与未知数据的预测同时进行,该算法与决策术功能类似既可以针对离散性变量作出分类,又可以对于连续型变量作出预测,其核心思想就是比较已知y值的样本与未知y值样本的相似度,然
1. 权重初始化1.1 相同的初始化权重神经网络中的所有权重都能通过梯度下降和反向传播来优化和更新。现在问题来了,如果每一层的权重全部初始化为同一个常数,不同层的常数可以不一样,会发生什么呢。这样会导致同一层的所有神经元前向传播和反向传播完全相同。如下图,前向传播过程中,每一个隐层接收到的输入是一样的(x1,x2,...),每个隐层神经元对应每个输入神经元的权重又是相同的,那么每个隐层神经元的输出
NH菜鸟笔记Ⅰ 本文是看了"京哥"的NH系列后写的随笔,感谢京哥,感谢,感谢WZMC的实验室给我这次写笔记的机会。 从一个简单的NH控制台程序出发 1. NHibernate的环境 我使用的开发环境:Microsoft Visual Studio 2008 SP1+SQL Server 200
学习记录一级目录二级目录1.CNN(Convolutional Neural Networks,卷积神经网络)1.1神经元1.2激活函数1.3神经网络1.4卷积神经网络1.5什么是卷积2.RNN(Recurrent Neural Networks,循环神经网络)3.LSTM(Long Short Term Memory,长时间记忆网络)4.GRU(Gated Recurrent Unit)5.L
参数的更新有许多方法;1.Vanilla update 最简单的更新形式。假定x是参数矢量,dx是梯度。更新形式为:# Vanilla update
x+=-leaning_rate*dx其中learning_rate是学习率。2Mumentum update 在深度网络中,通常能够得到更好的收敛速率。这种更新方法来源于优化问题的物理学上的观点。特别的,损失函数可以解释为山丘的高(也可以说成是
Docker 是一个开源的应用容器引擎,它允许开发者将应用程序打包到一个可移植的容器中,然后发布到任何支持 Docker 的平台上。Docker 容器运行时,都需要依托于内核。下面我们来了解一下 Docker 内核的相关知识。Docker 内核模式Docker 容器运行在内核空间,内核模式(Linux 内核模式)是 Docker 容器运行的基本环境。当 Docker 容器启动时,内核会在宿主机上创