深度学习原理与框架-神经网络架构 1.神经网络构架 2.激活函数(sigmoid和relu) 3.图片预处理(减去均值和除标准差) 4.dropout(防止过拟合操作)

时间:2022-10-27 21:56:11

神经网络构架:主要时表示神经网络的组成,即中间隐藏层的结构

对图片进行说明:我们可以看出图中的层数分布:

input layer表示输入层,维度(N_num, input_dim)  N_num表示输入层的样本个数, input_dim表示输入层的维度, 即变量的个数

hidden layer1 表示第一个隐藏层,维度(input_dim, hidden_dim1input_dim表示输入层的维度,hidden_dim1示隐藏层的维度

hidden layer2 表示第二个隐藏层,维度(hidden_dim1, num_classes) hidden_dim1表示隐藏层的维度, num_classes表示输出的样本的类别数

output layer 表示输出结果层, 维度(N_num, num_classes) N_num 表示输入层的样本个数, num_classes表示类别数,即每个样本对于的类别得分值

代码:对于隐藏层的参数w和b的初始化

        self.params['W1'] = weight_scale * np.random.randn(input_dim, hidden_dim)
self.params['b1'] = np.zeros((1, hidden_dim))
self.params['W2'] = weight_scale * np.random.randn(hidden_dim, num_classes)
self.params['b2'] = np.zeros((1, num_classes))

深度学习原理与框架-神经网络架构  1.神经网络构架 2.激活函数(sigmoid和relu) 3.图片预处理(减去均值和除标准差)  4.dropout(防止过拟合操作)

2.激活函数讨论, 加入激活函数的目的是为了在分类过程中,使得分类的判别式是非线性的方程即: f = σ(w*x+b) , σ表示非线性激活函数

深度学习原理与框架-神经网络架构  1.神经网络构架 2.激活函数(sigmoid和relu) 3.图片预处理(减去均值和除标准差)  4.dropout(防止过拟合操作)

但是对于sigmoid激活函数存在一个问题,即在进行梯度回传时,存在一个问题,即容易发生梯度消失的问题, (1-σ(x)) * σ(x) σ(x) 表示经过sigmoid变化后的输入结果

当x值较大时, dσ / dx 的梯度值较小,即根据链式法则,每次都乘以较小的梯度值,因此到最后就容易出现梯度消失的情况

深度学习原理与框架-神经网络架构  1.神经网络构架 2.激活函数(sigmoid和relu) 3.图片预处理(减去均值和除标准差)  4.dropout(防止过拟合操作)

对于ReLU激活函数的梯度回传,进行求导时,当输入值X小于0时,回传值为0, 当输入值大于等于0时,回传值即是本身,因此激活函数本身不会造成梯度消失问题

代码:

x = cache
dout[x < 0] = 0

3. 数据预处理, 即对输入的图片,对每张图片减去均值,在除以标准差的操作

深度学习原理与框架-神经网络架构  1.神经网络构架 2.激活函数(sigmoid和relu) 3.图片预处理(减去均值和除标准差)  4.dropout(防止过拟合操作)

代码:

   # 对图片做平均操作
mean_img = np.mean(X_train, axis=0, keepdims=True) X_train -= mean_img
X_val -= mean_img
X_test -= mean_img

4. dropout,关闭中间的几个隐藏层表示不进行参数的更新操作

深度学习原理与框架-神经网络架构  1.神经网络构架 2.激活函数(sigmoid和relu) 3.图片预处理(减去均值和除标准差)  4.dropout(防止过拟合操作)

深度学习原理与框架-神经网络架构 1.神经网络构架 2.激活函数(sigmoid和relu) 3.图片预处理(减去均值和除标准差) 4.dropout(防止过拟合操作)的更多相关文章

  1. 深度学习原理与框架-猫狗图像识别-卷积神经网络&lpar;代码&rpar; 1&period;cv2&period;resize&lpar;图片压缩&rpar; 2&period;&period;get&lowbar;shape&lpar;&rpar;&lbrack;1&colon;4&rsqb;&period;num&lowbar;elements&lpar;获得最后三维度之和&rpar; 3&period;saver&period;save&lpar;训练参数的保存&rpar; 4&period;tf&period;train&period;import&lowbar;meta&lowbar;graph&lpar;加载模型结构&rpar; 5&period;saver&period;restore&lpar;训练参数载入&rpar;

    1.cv2.resize(image, (image_size, image_size), 0, 0, cv2.INTER_LINEAR) 参数说明:image表示输入图片,image_size表示变 ...

  2. 深度学习原理与框架-Tensorflow卷积神经网络-cifar10图片分类&lpar;代码&rpar; 1&period;tf&period;nn&period;lrn&lpar;局部响应归一化操作&rpar; 2&period;random&period;sample&lpar;在列表中随机选值&rpar; 3&period;tf&period;one&lowbar;hot&lpar;对标签进行one&lowbar;hot编码&rpar;

    1.tf.nn.lrn(pool_h1, 4, bias=1.0, alpha=0.001/9.0, beta=0.75) # 局部响应归一化,使用相同位置的前后的filter进行响应归一化操作 参数 ...

  3. 深度学习原理与框架-Tensorflow卷积神经网络-卷积神经网络mnist分类 1&period;tf&period;nn&period;conv2d&lpar;卷积操作&rpar; 2&period;tf&period;nn&period;max&lowbar;pool&lpar;最大池化操作&rpar; 3&period;tf&period;nn&period;dropout&lpar;执行dropout操作&rpar; 4&period;tf&period;nn&period;softmax&lowbar;cross&lowbar;entropy&lowbar;with&lowbar;logits&lpar;交叉熵损失&rpar; 5&period;tf&period;truncated&lowbar;normal&lpar;两个标准差内的正态分布&rpar;

    1. tf.nn.conv2d(x, w, strides=[1, 1, 1, 1], padding='SAME')  # 对数据进行卷积操作 参数说明:x表示输入数据,w表示卷积核, stride ...

  4. 深度学习原理与框架-卷积网络细节-经典网络架构 1&period;AlexNet 2&period;VGG

    1.AlexNet是2012年最早的第一代神经网络,整个神经网络的构架是8层的网络结构.网络刚开始使用11*11获得较大的感受野,随后使用5*5和3*3做特征的提取,最后使用3个全连接层做得分值得运算 ...

  5. 深度学习原理与框架-神经网络-cifar10分类&lpar;代码&rpar; 1&period;np&period;concatenate&lpar;进行数据串接&rpar; 2&period;np&period;hstack&lpar;将数据横着排列&rpar; 3&period;hasattr&lpar;判断&period;py文件的函数是否存在&rpar; 4&period;reshape&lpar;维度重构&rpar; 5&period;tanspose&lpar;维度位置变化&rpar; 6&period;pickle&period;load&lpar;f文件读入&rpar; 7&period;np&period;argmax&lpar;获得最大值索引&rpar; 8&period;np&period;maximum&lpar;阈值比较&rpar;

    横1. np.concatenate(list, axis=0) 将数据进行串接,这里主要是可以将列表进行x轴获得y轴的串接 参数说明:list表示需要串接的列表,axis=0,表示从上到下进行串接 ...

  6. 深度学习原理与框架-Tensorflow卷积神经网络-神经网络mnist分类

    使用tensorflow构造神经网络用来进行mnist数据集的分类 相比与上一节讲到的逻辑回归,神经网络比逻辑回归多了隐藏层,同时在每一个线性变化后添加了relu作为激活函数, 神经网络使用的损失值为 ...

  7. 深度学习原理与框架-RNN网络架构-RNN网络 1&period;RNN的前向传播 2&period;RNN的反向传播

    对于神经网络而言,每一个样本的输入与输入直接都是独立的,即预测的结果之间并没有联系 而对于RNN而言:不仅仅是有当前的输入,而且上一层的隐藏层也将进行输入,用于进行结果的预测.因此每一个输入都与之前的 ...

  8. 深度学习原理与框架-卷积神经网络-cifar10分类&lpar;图片分类代码&rpar; 1&period;数据读入 2&period;模型构建 3&period;模型参数训练

    卷积神经网络:下面要说的这个网络,由下面三层所组成 卷积网络:卷积层 + 激活层relu+ 池化层max_pool组成 神经网络:线性变化 + 激活层relu 神经网络: 线性变化(获得得分值) 代码 ...

  9. 深度学习原理与框架-卷积神经网络基本原理 1&period;卷积层的前向传播 2&period;卷积参数共享 3&period; 卷积后的维度计算 4&period; max池化操作 5&period;卷积流程图 6&period;卷积层的反向传播 7&period;池化层的反向传播

    卷积神经网络的应用:卷积神经网络使用卷积提取图像的特征来进行图像的分类和识别       分类                        相似图像搜索                        ...

随机推荐

  1. WPF仿360卫士9&period;0界面设计

    Chrome插件——一键保存网页为PDF1.0 http://blog.csdn.net/bdstjk/article/details/9208313 仿照网上的一个代码写的,地址找不到了. 将窗体, ...

  2. Linux设备驱动——内核定时器

    内核定时器使用 内核定时器是内核用来控制在未来某个时间点(基于jiffies)调度执行某个函数的一种机制,其实现位于 <Linux/timer.h> 和 kernel/timer.c 文件 ...

  3. putty 中使用git

    提交git pwd 查看当前目录 进入目录cd /home/gongfu/tripb/master 修改代码目录 git status 查看 修改的文件(新增的,删除的) git commit -m ...

  4. Core Animation 文档翻译(第三篇)

    Core Animation 文档翻译(第三篇) 设置Layer对象 当我们使用核心动画时,Layer对象是一切的核心.Layers 管理我们APP的可视化content,Layer也提供了conte ...

  5. CF962F Simple Cycles Edges

    CF962F Simple Cycles Edges 给定一个连通无向图,求有多少条边仅被包含在一个简单环内并输出 \(n,\ m\leq10^5\) tarjan 首先,一个连通块是一个环,当且仅当 ...

  6. VS web&period;config&sol;app&period;conifg配置文件自定义类型使用智能感知功能

    大家使用VS编辑web.config或app.config时可以使用智能感知功能的,像下面这样很是方便 当然如果是我们自定义的类型也是可以使用智能感知的,因为智能感知的内容是来自你或其他公司(MS)提 ...

  7. r语言 工作空间内的对象

    objects.size() objects() 脚本举例 #将以下代码粘贴到编辑器中,另存为regression.r文件. rate<-c(20, 22, 24, 26, 28, 30, 32 ...

  8. 【JavaScript】10个重要知识点

    1. 立即执行函数 立即执行函数,即Immediately Invoked Function Expression (IIFE),正如它的名字,就是创建函数的同时立即执行.它没有绑定任何事件,也无需等 ...

  9. 体验SpringBoot

    体验SpringBoot 1.介绍 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开 ...

  10. HDU 1394Minimum Inversion Number

    The inversion number of a given number sequence a1, a2, ..., an is the number of pairs (ai, aj) that ...