随笔分类 - 深度学习
摘要:在学习某个深度学习框架时,掌握其基本知识和接口固然重要,但如何合理组织代码,使得代码具有良好的可读性和可扩展性也必不可少。本文不会深入讲解过多知识性的东西,更多的则是传授一些经验,这些内容可能有些争议,因其受我个人喜好和coding风格影响较大,**你可以将这部分当成是一种参考或提议,而不是作为必须
阅读全文
摘要:在训练神经网络过程中,需要用到很多工具,其中最重要的三部分是:数据、可视化和GPU加速。本章主要介绍Pytorch在这几方面的工具模块,合理使用这些工具能够极大地提高编码效率。 1.1 数据处理 在解决深度学习问题的过程中,往往需要花费大量的精力去处理数据,包括图像、文本、语音或其它二进制数据等。数
阅读全文
摘要:使用autograd可实现深度学习模型,但其抽象程度较低,如果用其来实现深度学习模型,则需要编写的代码量极大。在这种情况下,torch.nn应运而生,其是专门为深度学习而设计的模块。torch.nn的核心数据结构是Module,它是一个抽象概念,既可以表示神经网络中的某个层(layer),也可以表示
阅读全文
摘要:1、Tensor Tensor,又名张量,是Theano、TensorFlow、 Torch和MxNet中重要的数据结构。从工程角度来讲,可简单地认为它就是一个数组,且支持高效的科学计算。它可以是一个数(标量)、一维数组(向量)、二维数组(矩阵)和更高维的数组(高阶数据)。Tensor和Numpy的
阅读全文
摘要:1、快捷命令 2、Tensor Tensor是PyTorch中重要的数据结构,可认为是一个高维数组。它可以是一个数(标量)、一维数组(向量)、二维数组(矩阵)以及更高维的数组。Tensor和Numpy的ndarrays类似,但Tensor可以使用GPU进行加速。 Tensor的基本使用: from
阅读全文
摘要:1、One-Shot学习(One-shot learning) 人脸识别所面临的一个挑战就是需要解决一次学习问题(one-shot learning problem),这意味着在大多数人脸识别应用中,你需要通过单单一张图片或者单单一个人脸样例就能去识别这个人。而历史上,当深度学习只有一个训练样例时,
阅读全文
摘要:1、目标定位(Object localization) 目标定位旨在识别图像或视频中的特定目标,并确定其在图像中的具体位置。目标定位的输出通常包括目标所属的类别(如果是分类任务)和一个边界框(Bounding Box),该边界框用于精确地描述目标在图像中的位置。因此先从分类和定位(classific
阅读全文
摘要:1、残差网络—Residual Networks (ResNets) 非常非常深的神经网络是很难训练的,因为存在梯度消失和梯度爆炸问题。这节课我们学习跳跃连接(Skip connection),它可以从某一层网络层获取激活,然后迅速反馈给另外一层,甚至是神经网络的更深层。利用跳跃连接构建能够训练深度
阅读全文
摘要:1、边缘检测示例(Edge Detection Example) 卷积运算(convolutional operation)是卷积神经网络最基本的组成部分,使用边缘检测(edge detection)作为入门样例。接下来,你会看到卷积是如何进行运算的。 在之前的人脸例子中,我们知道神经网络的前几层是
阅读全文
摘要:1、调整过程 在训练神经网络时,超参数的调试十分重要,下面分享一些指导原则。 通常来说,①学习因子α是最重要的超参数,也是需要重点调试的超参数。②动量梯度下降因子beta、各隐藏层神经元个数hidden units和mini-batch size的重要性仅次于alpha。③然后就是神经网络层数lay
阅读全文
摘要:1、Mini—batch梯度下降法(Mini-batch gradient descent) Mini-batch梯度下降是梯度下降的一种变体,广泛应用于机器学习中,特别是在神经网络的训练中。它在批量梯度下降(Batch Gradient Descent)和随机梯度下降(Stochastic Gra
阅读全文
摘要:1、训练集、验证集、测试集(Train/Dev/Test sets) 在配置训练(train)、验证(devlopment)和测试(test)数据集的过程中做出正确决策在很大程度上会帮助大家创建高效的神经网络。训练神经网络时我们需要做很多决策,如神经网络的层数、每个隐藏层包含的隐藏单元、学习因子(学
阅读全文
摘要:1、深层神经网络 深层神经网络其实就是包含更多的隐藏层神经网络。注意,神经网络的层数是从左到右,由0开始定义。 对于任何给定的问题很难去提前预测到底需要多深的神经网络,所以先去尝试逻辑回归,尝试一层然后两层隐含层,然后把隐含层的数量看做是另一个可以自由选择大小的超参数,然后再保留交叉验证数据上评估,
阅读全文
摘要:1、神经网络概览 什么是神经网络?如下图: 神经网络的结构与逻辑回归类似,只是神经网络的层数比逻辑回归多一层,多出来的中间那层称为隐藏层或中间层。从计算上来看,神经网络的正向传播和反向传播比logistic回归多了一次重复的计算。引入新的标签:方括号上标[i]表示当前所处的层数;圆括号上标(i)表示
阅读全文
摘要:1、二分类 logistic回归是一个用于二分类(Binary Classification)的算法。二分类就是输出结果y只有0和1两个标签(也有-1和1的情况)。以一个图像识别为例,例如识别猫,1代表猫,0代表不是猫。用y表示输出的结果标签。 在二分类问题中,目标是训练一个分类器,它以图片的特征向
阅读全文
摘要:1、什么是神经网络 简单来说,深度学习(Deep Learning)就是更复杂的神经网络(Neural Network) eg:从预测房价开始,自变量x:size of house,因变量y:price,根据这些输入输出来建立房价预测模型,来预测房价:y=f(x)。也许可以把这个房屋价格加一个拟合函
阅读全文