随笔分类 - deep learning
摘要:半监督学习(Semi-Supervised Learning,SSL)的 SOTA 一次次被 Google 刷新,从 MixMatch 开始,到同期的 UDA、ReMixMatch,再到 2020 年的 FixMatch。
阅读全文
摘要:tf.keras 使用手册。记录使用 tf.keras 时遇到的各种问题。本手册内容包括 CUDA、cuDNN 的安装,数据集加载,tf.keras没有集成的优化器(如 AdamW)的使用,自行设计 metrics 如 F1、recall、precision,模型复现、预训练模型加载、循环训练模型OOM,以及一些TensorFlow API变化
阅读全文
摘要:Monte-Carlo Dropout(蒙特卡罗 dropout),简称 MC dropout。一种从贝叶斯理论出发的 Dropout 理解方式,将 Dropout 解释为高斯过程的贝叶斯近似。本文简单介绍 MC dropout,并说明神经网络模型如何表示 uncertainty。
阅读全文
摘要:在 cifar-10 上训练 AlexNet。将 32×32 的图片 resize 到 224×224 之后,数据将无法完全加载到 32G 内存中,会产生 OOM。那么此时的做法有:
1)将 resize 作为模型的一部分,如设置一个 layer 来对一个 batch 的图像进行 resize,这样 32×32 的 cifar-10 仍然可以完全加载到内存中;
2)一种通用的方法,每次只加载一部分数据到内存中,其余数据等到需要的时候再加载到内存。
阅读全文
摘要:本文简单介绍了 Adam 优化器,并讨论一个问题:Adam 这个自适应学习率的优化器还有必要使用学习率衰减(learning rate decay)吗?
阅读全文
摘要:本文介绍了如何将 PyTorch 中实现的 AlexNet 预训练模型加载到 tf.keras 中。tf.keras没有预训练好的AlexNet模型,如果我们想要在keras上用AlexNet来做迁移学习,要重新在ImageNet上跑一遍AlexNet代码?这是不现实的。其它深度学习框架,如 PyTorch,有在ImageNet上训练好的 AlexNet,我们将其它框架训练好的模型参数加载到keras中。但不同框架之间保存模型的文件有差异,需要进行一些操作。本文利用微软的开源工具 MMdnn,实现 AlexNet 模型的迁移。
阅读全文
摘要:keras 模型复现的要求
阅读全文
摘要:softmax 和 cross entropy 是机器学习中很常用的函数,softmax 常用来作为 DNN 分类网络最后一层的激活函数,而 cross entropy 也是一种常用的 loss function。熟悉两者的求导有助于理解为什么 tensorflow 会把这两个函数封装成一个 function 中。本文主要介绍 softmax 和 cross entropy 的求导过程。
阅读全文
摘要:学习卷积神经网络(CNN)过程中可能会遇到的问题,如 1×1 卷积核、感受野、global average pooling、深度可分离卷积。持续 update 中。。。
阅读全文
摘要:本文简单介绍了什么是贝叶斯深度学习,贝叶斯深度学习应该如何进行预测和训练,贝叶斯深度学习和非贝叶斯深度学习有什么区别,最后提醒注意贝叶斯神经网络和贝叶斯网络是两个不同概念。本文对如何训练贝叶斯深度学习没有进行过多阐述,具体可以参考引用资料。
阅读全文
摘要:在训练集上,神经网络越深,效果会越好吗?理论上是的,但传统神经网络做不到这一点。在神经网络的深度达到一定时,在训练集上,越深的网络效果可能越差,这就是退化问题。而ResNet可以处理这个问题。
阅读全文
摘要:现在提到“神经网络”和“深度神经网络”,会觉得两者没有什么区别,神经网络还能不是“深度”(deep)的吗?我们常用的 Logistic regression 就可以认为是一个不含隐含层的输出层激活函数用 sigmoid(logistic) 的神经网络,显然 Logistic regression 就不是 deep 的。不过,现在神经网络基本都是 deep 的,即包含多个隐含层。Why?
阅读全文
摘要:经典卷积神经网络的结构一般满足如下表达式:输出层 -> (卷积层+ -> 池化层?)+ -> 全连接层+。上述公式中,“+”表示一个或者多个,“?”表示一个或者零个,如“卷积层+”表示一个或者多个卷积层,“池化层?”表示一个或者零个池化层。“->”表示 forward 方向。本文将分别介绍 LeNet-5、AlexNet 和 VGG-16 结构。
阅读全文
摘要:为什么使用序列模型(sequence model)?标准的全连接神经网络(fully connected neural network)处理序列会有两个问题:1)全连接神经网络输入层和输出层长度固定,而不同序列的输入、输出可能有不同的长度,选择最大长度并对短序列进行填充(pad)不是一种很好的方式;2)全连接神经网络同一层的节点之间是无连接的,当需要用到序列之前时刻的信息时,全连接神经网络无法办到,一个序列的不同位置之间无法共享特征。而循环神经网络(Recurrent Neural Network,RNN)可以很好地解决问题。本文介绍了RNN的结构,对RNN前向传播过程进行了剖析。此外对GRU和LSTM也进行了简单介绍。
阅读全文
摘要:全连接神经网络(Fully connected neural network)处理图像最大的问题在于全连接层的参数太多。参数增多除了导致计算速度减慢,还很容易导致过拟合问题。所以需要一个更合理的神经网络结构来有效地减少神经网络中参数的数目。而卷积神经网络(Convolutional Neural Network,CNN)可以做到。CNN最重要的两个特征:1)局部连接;2)参数共享。
阅读全文
摘要:对滑动平均的直观理解,以及滑动平均在tensorflow中的使用。
阅读全文