随笔分类 - 0200.面试题:深度学习
主要讲述常见的深度学习理论和高频面试题
摘要:目录 回顾简单RNN的梯度消失问题 LSTM如何解决梯度消失 遗忘门对梯度消失的影响 遗忘门的初始化技巧 参考资料 回顾简单RNN的梯度消失问题 在简单RNN的前向传播过程中,输入的数据循环地与隐藏层里的权重W(都是很小的数)做乘法运算,那么损失函数对较长时间步前的W的梯度就会很小(因为W会累乘,激
阅读全文
摘要:目录 LSTMs网络架构 LSTM的核心思想 遗忘门(Forget gate) 输入门(Input gate) 输出门(Output gate) LSTMs是如何解决长程依赖问题的? Peephole是啥 多层LSTM 参考资料 长短期记忆网络通常称为LSTMs,是一种特殊的RNN,能够学习长期依赖
阅读全文
摘要:目录 长程依赖关系的解释 为什么传统RNN不能解决长程依赖问题 如何解决长程依赖问题 参考资料 长程依赖关系的解释 句子1:the clouds are in the (). 对语言模型而言,这里的()很容易就能被确定为sky,因为它刚“读过”的单词是“clouds are in the”,语言模型
阅读全文
摘要:目录 梯度消失原因之一:激活函数 梯度消失原因之二:初始化权重 不同损失函数下RNN的梯度消失程度对比 实践中遇到梯度消失怎么办? 参考资料 在实践过程中,RNN的一个缺点是在训练的过程中容易梯度消失。 梯度消失原因之一:激活函数 sigmod的导函数峰值为0.25,由于反向传播的距离越长,连乘的小
阅读全文
摘要:目录 随机初始化 使用预训练模型 参考资料 可以随机初始化、也可以使用预训练好的,这里我们分类讨论 随机初始化 从上图可以看到,pytorch的embedding可以是用一个正态分布随机初始化的 对应代码 from io import open import unicodedata import s
阅读全文
摘要:目录 定义网络 梯度反向传播 梯度更新 面试时的变相问法 参考资料 BPTT(back-propagation through time)算法是常用的训练RNN的方法,其实本质还是BP算法,只不过RNN处理时间序列数据,所以要基于时间反向传播,故叫随时间反向传播。 BPTT算法在吴恩达和李宏毅等教授
阅读全文
摘要:目录 单层神经网络 RNN原理 经典RNN结构 N VS 1 RNN结构 1 VS N RNN结构 Pytorch文本分类实践 参考资料 RNN 的英文全称是 Recurrent Neural Networks ,即循环神经网络,他是一种对序列型数据进行建模的深度模型。在学习之前,先来复习基本的单层
阅读全文
摘要:目录 平均池化 最大值池化 参考资料 平均池化 x和卷积核K做卷积运算,得到σ,对σ的做平均池化,得到S,然后S与GT计算MSE损失。 对应代码 # -*- coding: utf-8 -*- import torch import torch.nn as nn import torch.nn.fu
阅读全文
摘要:目录 基础概念 自定义一个网络为例 初始化模型参数 计算卷积核上的梯度 梯度更新 PyTorch实战 参考资料 在很多机器学习的资料中,对梯度反向传播在全连接神经网络的应用介绍的比较多;但是较少有介绍过卷积网络的梯度是如何反向传播的,这也是知乎公司算法部门的一道面试题。 其实这个题目并不难,我们举一
阅读全文
摘要:目录 使用非对称卷积分解大filters 重新设计pooling层 辅助构造器 使用标签平滑 参考资料 在《深度学习面试题20:GoogLeNet(Inception V1)》和《深度学习面试题26:GoogLeNet(Inception V2)》中对前两个Inception版本做了介绍,下面主要阐
阅读全文
摘要:目录 产生背景 工作原理 参考资料 产生背景 假设选用softmax交叉熵训练一个三分类模型,某样本经过网络最后一层的输出为向量x=(1.0, 5.0, 4.0),对x进行softmax转换输出为: 假设该样本y=[0, 1, 0],那损失loss: 按softmax交叉熵优化时,针对这个样本而言,
阅读全文
摘要:目录 产生背景 举例 参考资料 产生背景 之前在深度学习面试题16:小卷积核级联卷积VS大卷积核卷积中介绍过小卷积核的三个优势: ①整合了三个非线性激活层,代替单一非线性激活层,增加了判别能力。 ②减少了网络参数。 ③减少了计算量 在《Rethinking the Inception Archite
阅读全文
摘要:目录 第一层卷积换为分离卷积 一些层的卷积核的个数发生了变化 多个小卷积核代替大卷积核 一些最大值池化换为了平均值池化 完整代码 参考资料 第一层卷积换为分离卷积 net = slim.separable_conv2d( inputs, depth(64), [7, 7], depth_multip
阅读全文
摘要:目录 举例 单个张量与多个卷积核的分离卷积 参考资料 举例 分离卷积就是先在深度上分别卷积,然后再进行卷积,对应代码为: import tensorflow as tf # [batch, in_height, in_width, in_channels] input =tf.reshape(tf.
阅读全文
摘要:目录 举例 单个张量与多个卷积核在深度上分别卷积 参考资料 举例 如下张量x和卷积核K进行depthwise_conv2d卷积 结果为: depthwise_conv2d和conv2d的不同之处在于conv2d在每一深度上卷积,然后求和,depthwise_conv2d没有求和这一步,对应代码为:
阅读全文
摘要:目录 直接定义的缺点 简易定义的方式 参考资料 直接定义的缺点 在tensorflow中假设有一批输入为: 其定义如下: tf.constant([ [ [ [3, 1, -3], [1, -1, 7] ], [ [-2, 2, -5], [2, 7, 3] ] ], [ [ [-1, 3, 1],
阅读全文
摘要:目录 指数移动平均 BN在卷积网络中的使用 参考资料 假设已经训练好一个带有BN操作的卷积神经网络,但是在使用它预测时,往往每次只输入一个样本,那么经过该网络时,计算平均值和方差的意义就不大了,常采用的策略是计算训练阶段的平均值和方差的指数移动平均,然后在预测阶段使用它们作为BN操作时的平均值和方差
阅读全文
摘要:目录 BN的由来 BN的作用 BN的操作阶段 BN的操作流程 BN可以防止梯度消失吗 为什么归一化后还要放缩和平移 BN在GoogLeNet中的应用 参考资料 BN的由来 BN是由Google于2015年提出,论文是《Batch Normalization_ Accelerating Deep Ne
阅读全文
摘要:目录 简介 网络结构 对应代码 网络说明 参考资料 简介 2014年,GoogLeNet和VGG是当年ImageNet挑战赛(ILSVRC14)的双雄,GoogLeNet获得了第一名、VGG获得了第二名,这两类模型结构的共同特点是层次更深了。VGG继承了LeNet以及AlexNet的一些框架结构,而
阅读全文
摘要:目录 举例 在Inception module上的应用 参考资料 可以减少计算量,可以增加非线性判别能力 举例 假设有1个高为30、宽为40,深度为200的三维张量与55个高为5、宽为5、深度为200的卷积核same卷积,步长=1,则结果是高为30、宽为40、深度为55的三维张量,如图所示: 该卷积
阅读全文