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'
传统的神经网络存在的问题:权值太多,计算量太大权值太多,需要大量样本进行训练 CNN通过感受野和权值共享减少了神经网络需要训练的参数个数 感受野:后面的神经元只能接到前面图片的一部分权值共享:权值个数相同,相同颜色的  权值值也相同 卷积核的定义:   池化层:  卷积操作   same&
  本文的论文来自: Notes on Convolutional Neural Networks, Jake Bouvrie。         这个主要是CNN的推导和实现的一些笔记,再看懂这个笔记之前,最好具有CNN的一些基础。这里也先列出一个资料供参考:[1] Deep L
因为R-CNN到Fast R-CNN再到Faster R-CNN是一个递进的改进过程,所以对前两个不清楚的还是要先去读一读这两篇文章,我在下面提出自己的读书笔记(私以为还是写的很全面的,对很多其他博客里面没有提到的坑都有涉及)。 一文详解R-CNN: 一文详解Fast R-CNN:有一篇Faster R-CNN的文章写的着实不错,重点推荐:https://zhuanlan.zhihu.com/p/
  深层网络需要一个优良的权重初始化方案,目的是降低发生梯度爆炸和梯度消失的风险。先解释下梯度爆炸和梯度消失的原因,假设我们有如下前向传播路径:  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残差网络
 人工神经网络  神经元     神经网络由大量的神经元相互连接而成。每个神经元接受线性组合的输入后,最开始只是简单的线性加权,后来给每个神经元加上了非线性的激活函数,从而进行非线性变换后输出。每两个神经元之间的连接代表加权值,称之为权重(weight)。不同的权重和激活函数,则会导致神经网络不同的输出。    举个手写识别的例子,给定一
1. 权重初始化1.1 相同的初始化权重神经网络中的所有权重都能通过梯度下降和反向传播来优化和更新。现在问题来了,如果每一层的权重全部初始化为同一个常数,不同层的常数可以不一样,会发生什么呢。这样会导致同一层的所有神经元前向传播和反向传播完全相同。如下图,前向传播过程中,每一个隐层接收到的输入是一样的(x1,x2,...),每个隐层神经元对应每个输入神经元的权重又是相同的,那么每个隐层神经元的输出
KNN邻近算法KNN的自述原理参数K值确定K和weights对模型的影响KNN在不同数据集的表现 KNN的自述Km模型仍为有监督的学习算法。它属于一种惰性学习算法,即不会预先生成一个分类或预测模型,用于新样本的预测,而是将模型的构建与未知数据的预测同时进行,该算法与决策术功能类似既可以针对离散性变量作出分类,又可以对于连续型变量作出预测,其核心思想就是比较已知y值的样本与未知y值样本的相似度,然
CNN结构特点1.局部连接使网络可以提取数据的局部特征 2.首先权值共享就是滤波器共享,即是用相同的滤波器去扫一遍图像,提取一次特征,得到feature map。在卷积网络中,学好了一个滤波器,就相当于掌握了一种特征,这个滤波器在图像中滑动,进行特征提取,然后所有进行这样操作的区域都会被采集到这种特征,权值共享大大降低了网络的训练难度,一个滤波器只提取一个特征,在整个图片(或者语音/文本) 中进行
一.引言函数式 API 的重要特性是能够多次重复使用一个层实例,如果对一个层实例调用两次,而不是每次调用都实例化一个新层,那么每次调用就可以重复使用相同的权重。这样可以构建具有共享分支的模型。二.共享层权重1.模型结构假设模型判断两个句子的相似度,模型有两个输入,分别为句子A,句子B,并输出一个 0-1 的分数代表相似度。在这种前提下,句子AB是具备交换性的,即A与B的相似性应该与B与A的相似性是
学习记录一级目录二级目录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
深度学习的一些概念理解(共享权重,最大池化,激活函数,残差网络):深度学习中有一个概念,叫共享权重,就是一个层中是共享权重的,这样做的好处有两个: a 能够减少参数的数量,加速训练 b 由于共享权重,使得整幅图对应的这个权重下求的的特征具有平移不变性 个人对于共享权重的理解:其实所谓的共享权重,比如对于一个5X5的卷积,不管图像多大,全部使用这样的5X5的卷积核去做卷积,由于卷积大小的5X5
CupCnn是一个用java写的卷积神经网络。支持L1、L2正则化正则化的理论非常复杂,推导过程也比较繁琐,但是实现确实异常的容易,主要体现在权重的衰减。通俗的讲,就是我们每次在更新权重w的时候,可以的让他比应该的大小减小一点。// TODO Auto-generated method stub float[] wData = w.getData(); float[] gradData
神经网络中的权重(weight)初始化是个常常被忽略的问题。最近在手写一个Python的神经网络库,刚开始为了测试代码是否写对,搭建了一个2->4->2的单隐层神经网络来拟合异或运算,拟合结果十分完美。但是在做MNIST手写数字识别,将网络扩展到了784->100->10时,发现损失函数一直不下降,训练准确率一直停留在10%左右(和随机猜的命中概率一样嘛)。一直以为是bac
1. CNN卷积网络-初识2. CNN卷积网络-前向传播算法3. CNN卷积网络-反向更新1. 前言如果读者详细的了解了DNN神经网络的反向更新,那对我们今天的学习会有很大的帮助。我们的CNN卷机网络中有3种网络结构。1. 卷积层,2.池化层,3.全连接层。全连接层的反向传播的方式和DNN的反向传播的方式是一样的,因为DNN的所有层都是全连接的结构。卷机层和池化层下文会继续讲解。2. 全连接反向更
双边滤波很有名,使用广泛,简单的说就是一种同时考虑了像素空间差异与强度差异的滤波器,因此具有保持图像边缘的特性。先看看我们熟悉的高斯滤波器其中W是权重,i和j是像素索引,K是归一化常量。公式中可以看出,权重只和像素之间的空间距离有关系,无论图像的内容是什么,都有相同的滤波效果。再来看看双边滤波器,它只是在原有高斯函数的基础上加了一项,如下其中 I 是像素的强度值,所以在强度差距大的地方(边缘),权
参数的更新有许多方法;1.Vanilla update 最简单的更新形式。假定x是参数矢量,dx是梯度。更新形式为:# Vanilla update x+=-leaning_rate*dx其中learning_rate是学习率。2Mumentum update 在深度网络中,通常能够得到更好的收敛速率。这种更新方法来源于优化问题的物理学上的观点。特别的,损失函数可以解释为山丘的高(也可以说成是
目录什么是神经元?激活函数的作用?什么是神经网络? CNN怎么进行识别?计算机如何识别图像?CNN如何更准确人性化的对比图像?什么是卷积操作?感谢作者:CNN笔记:通俗理解卷积神经网络_v_JULY_v的博客_卷积神经网络通俗理解什么是神经元?神经网络由大量的神经元相互连接而成。每个神经元接受线性组合的输入后,最开始只是简单的线性加权,后来给每个神经元加上了非线性的激活函数,从而进行非线
卷积神经网络(CNN)的基础介绍见,这里主要以代码实现为主。         CNN是一个多层的神经网络,每层由多个二维平面组成,而每个平面由多个独立神经元组成。        以MNIST作为数据库,仿照LeNet-5和tiny-cnn
  • 1
  • 2
  • 3
  • 4
  • 5