自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (5)
  • 收藏
  • 关注

原创 对标签噪声鲁棒的广义交叉熵损失 (Generalized Cross Entropy)

在人工智能算法的实际应用场景中,不可避免地会出现训练数据误标现象,即训练数据集上存在标签噪声。这会降低所训模型的泛化能力。尤其是对于深度神经网络这种描述能力极强的模型,标签噪声对推理精度的影响甚或是灾难性的。论文证实了一个简单的两层网络就能记住所有随机分配的标签。本篇博文将介绍一种对标签噪声鲁棒的损失函数,即General Cross Entropy (GCE)。这种损失函数在2018年的NIPS会议论文中被提出,其集成了Mean Absolute Error (MAE)损失函数的噪声鲁棒性,以及传统的C

2021-02-01 20:11:01 5051

原创 学习速率搜索

学习速率是训练DNN模型的一个关键参数。过大的学习速率设置会导致训练过程不收敛,过小的学习速率会导致收敛速度缓慢。本篇博客将介绍一种现有论文中的学习速率的选取方法。这种方法作为一种最佳实践,也被Fast AI库所采纳。博主的初衷是使用Fast AI所提供的API,便捷地实现这种搜索方法。但在实践过程中却发现Fast AI已经从1.0版本升级到了2.0版本,其很多功能的实现方式发生了变化。之前博主基于Fast AI 1.0所探讨的一些扩展技能都不再适用。有鉴于此,为避免Fast AI版本变更导致的技能点失效

2021-01-30 17:23:30 617

原创 第七篇 FastAI模型训练

前面一篇博客介绍了在Fast AI框架下训练模型所需的轮子——回调系统,本篇博客将介绍网络训练的方方面面,包括并不限于基础的训练方法(fit系列方法),指标(metrics)监控、网络推理与性能评估、模型保存等。一、Learner对象的fit()与fit_one_cycle()(文档链接)其中fit_one_cycle()函数已在前一篇博客中介绍过,实际上,该函数就是在基础的训练流程上添加了O...

2020-02-10 21:20:47 4890 4

原创 第六篇 FastAI的回调系统

前一篇博文介绍了如何在Fast AI框架下构建学习器。那么接下来就是训练模型。在训练过程中,往往需要在一些特定的阶段做一些特殊的操作,如在每训练一定数目的batch后,对学习速率进行调整;或是每训练一个epoch后,需要记录网络在验证(validation)数据集上的某些输出,如在validation上的loss,或者一些其他想观察的指标(metrics)。这些都是通过Fast AI的回调(Cal...

2020-01-22 21:00:54 2047 4

原创 第五篇 FastAI构建学习器

前面的几篇博客都是在介绍如何准备数据。实际上,在Fast AI框架下,数据准备好后,构建深度神经网络学习器的任务已经完成了80%(手动狗头)。其余的10%是构建网络,并将网络和数据封装成学习器(即Fast AI中的Learner对象);还有10%是对训练过程和结果的分析。后面的10%主要依赖于Fast AI中的回调系统(各种Callbacks),这部分会在后续博文中涉及。而本篇博文主要介绍如何构建...

2019-12-07 18:30:34 2332

原创 第四篇 FastAI中的数据增强

上一篇博客介绍了如何使用Fast AI数据模块(Data Block),便捷地构建Fast AI模型所需的数据包(Data Bunch)。在将图像数据灌入模型之前,往往需要对之进行随机变换,即做数据增强(Data Augmentation)。这可以视为一种在数据层面的正则化(也就是人为地引入一些随机扰动,避免学习器过分关注训练集的特有性质,以免产生过拟合)。本篇博客将介绍Fast AI中的数据增强...

2019-11-24 19:55:26 2229

原创 第三篇 FastAI数据构造API

上一篇博客介绍了如何调用ImageDataBunch的工厂类方法,生成Fast AI的模型所需的数据包(Data Bunch)。事实上,Fast AI提供了一系列函数接口,使得构建数据包的流程更符合逻辑且更灵活,而前述博客所示的工厂类方法其实也是基于这些API进行构建的。本篇博客将介绍相关的数据类型以及API。一、Fast AI的数据积木(Data Block)API (文档链接)DataBu...

2019-09-21 12:54:37 2113

原创 第二篇 FastAI数据准备

一、Fast AI代码组织结构 (文档链接)Fast AI库主要涉及神经网络在如下四个领域的应用:collab(协同滤波问题)、tabular(结构化数据或者说表格数据处理)、text(自然语言处理)、vision(机器视觉)。对每一领域(除了collab),其下又会按照如下结构组织代码:(1) data:定义了模型所需的数据集类。(2) transform:数据预处理(如对图像数据的图像...

2019-08-25 21:18:47 3635

原创 第一篇 从PyTorch到FastAI

一、使用PyTorch的ResNet18网络,在MNIST数据集上实现手写数字的分类MNIST数据集下载地址。数据读取代码如下:import pickle, gzipimport numpy as npdef load_data(data_pkl): with gzip.open(data_pkl, "rb") as fp: training_data, vali...

2019-07-16 08:33:15 3458 4

原创 第14篇 Fast AI深度学习课程——超分辨与图像分割

一、超分辨超分辨指的是由低分辨率的图片获得高分辨率的图片。1. 准备数据集数据集无需标注,将图像进行降采样即可获得配对的高低分辨率的图像。同样不需数据标注的应用场景还有:图像旋转、图像去噪、黑白图像着色等。为定义合适的Dataset,我们去fastai.dataset.py中找到一个和需求相接近的。其中有一个FilesDataset,其接受文件名,数据集的输入x为图像。我们继承该类,并覆写...

2019-01-05 08:31:32 4191 2

原创 第13篇 Fast AI深度学习课程——风格迁移

一、阶梯化学习速率在前述课程中,我们使用了重启学习速率、三角化学习速率等技巧,以实现更快的收敛、更稳定的泛化。上述技巧均是通过设置相应参数,来实现整个训练过程的学习速率的变化。事实上,一个更通用的方法,是在不同的训练阶段(训练阶段由epoch序列指明)使用指定的学习速率。(这一想法可通过调用多次fit()函数,每次使用不同的学习速率来达到;但更便捷的方式是提供一套API。)Fast.AI提供了实...

2019-01-05 08:31:03 1449

原创 第12篇 Fast AI深度学习课程——DarkNet、GAN

本节课程将介绍很火的对抗生成网络。由于这一网络结构很新,目前(课程发布时,18年4月份)Fast.AI尚未提供相应的封装,因此需要使用Pytorch的数据结构来构建。在构建GAN之前,我们将在CIFAR10数据上,仅使用Pytorch的数据结构,构建结构较简单的Darknet,以展示利用Pytorch搭建网络的思路。一、Darknet1. 数据准备下载后解压。由于train文件夹下各类数据都...

2019-01-05 08:30:25 1902 2

原创 第10篇 Fast AI深度学习课程——构建语言模型及文本情感分析

在学习了目标识别的网络构建与训练之后,我们总结一个模型的三元素为:数据、网络架构、损失函数。而采用的一般策略为迁移学习,即在已有的网络基础上,增加附加层;训练时首先冻结已有的网络的参数,训练附加层的系数;然后使用阶梯化的学习速率,训练整个网络。在本节及下节课程中,我们将学习神经网络在自然语言处理方面的应用,包括构建语言模型、文本的情感分析、机器翻译等。在这一部分,我们所使用的技术策略同目标识别的...

2019-01-05 08:29:52 2909 7

原创 第11篇 Fast AI深度学习课程——机器翻译

在上节课程中,我们使用语言模型对IMDB影评进行了情感分析。对于语言模型而言,使用的神经网络是一个seq2seq的网络,即输入和输出均为序列;每输入一个单词,就需输出一个单词,因此输入输出的序列长度是一致的。对于影评分析,是一个由字词序列得到单一分类结果的网络,即为seq2one的网络。本节将介绍由法语到英语的机器翻译,该类型网络也是seq2seq,但与语言模型不同之处在于,其在读入整个字符序列后...

2019-01-05 08:28:50 1249

原创 第9篇 Fast AI深度学习课程——多目标识别与定位

一、一个模型同时实现单目标识别与定位在上一节中,我们先构建了一个分类网络,用于图片中最大目标的类别划分;然后构建了一个用于输出目标坐标的网络。我们尚未将两个网络联系起来。但事实上,两个网络的架构十分相似(都是基于resnet34)。那么能否去除这种冗余,使用一个网络同时实现目标分类与定位呢?本部分将按照:准备数据—构建网络—定义优化目标这一分解步骤,来展示针对应用场景进行建模的通用流程。1. ...

2018-12-05 22:57:50 7919 2

原创 第8篇 Fast AI深度学习课程——单目标识别与定位

一、前情回顾与课程展望本系列课程的第一部分——神经网络入门与实践已结束,在该部分的1-7课中,我们通过图像分类网络(包括多类别分类)、时间序列处理、影评数据情感分析(包括构建语言模型、协同滤波)等实例,学习了Fast.AI的API,熟悉了使用神经网络解决实际问题的流程,掌握了网络调参中的常用技巧,要点如下:1. 迁移学习要得到一个可用的模型,其实并不需要从零开始,可以利用已在其他数据集上训练...

2018-12-05 22:36:33 2288

原创 CS231n-2017 Assignment3 RNN、LSTM、风格迁移

一、RNN所需完成的步骤记录在RNN_Captioning.ipynb文件中。本例中所用的数据为Microsoft于2014年发布的COCO数据集。该数据集中和图像标注想拐的图片包含80000张训练图片和40000张验证图片。而这些图片的特征已通过VGG-16网络获得,存储在train2014_vgg16_fc7.h5和val2014_vgg16_fc7.h5文件中,每张图片由一个4096维的...

2018-11-09 23:34:31 2400

原创 CS231n-2017 Assignment2 NN、BP、SGD、BN、CNN

一、全连接神经网络在上一次作业中,已经实现了两层神经网络的架构。但该实现有个问题,即程序不够模块化,比如在loss()函数中,同时计算了损失函数和各参数的梯度。这种耦合,使得扩展网络深度时,需要做大量修改。另外,神经网络的层与层的结构也类似,这意味着朴素实现的方式中存在着代码重复。而本作业中,将要实现一种模块化的神经网路架构:将各个功能层封装为一个对象,如全连接层对象、ReLU层对象;在各层对象...

2018-11-07 22:13:53 1186 1

原创 CS231n-2017 Assignment1 k-近邻方法、SVM、Softmax、两层神经网络

一、k近邻方法1. 使用两层循环计算距离矩阵训练数据X_train和测试数据X中每一行是一个样本点。距离矩阵dists中每一行为X中的一点与X_train中各个点的距离。k_nearest_neighbor文件中的compute_distances_two_loops()函数:def compute_distances_two_loops(self, X): num_t...

2018-11-07 22:08:43 768 1

原创 CS231n-2017 第13讲 生成模型

一、监督学习与非监督学习、生成模型监督学习给定数据xxx,以及数据所对应的标签yyy,学习一个从xxx到yyy的映射。应用举例:分类、回归、目标识别、语义分割、图像标注等。非监督学习分析数据的隐藏结构特征。应用举例:聚类、降维、特征提取、数据分布估计等。生成模型给定训练数据,生成满足训练数据分布规律的新数据。这一问题和非监督学习中的数据分布估计问题...

2018-11-06 23:22:25 687

原创 CS231n-2017 第12讲 可视化与理解

一、卷积神经网络首层与末层输出的可视化与理解1. 首层的输出首层输出的可视化及解释已在第二课中阐述,概述而言,其反应了图像中的边、角、纹理等基础结构特征。2. 末层输出卷积神经网络的最后一层输出,为图像的最终用于分类的特征。对于这些特征的解读可从如下角度进行。按照最近邻方法,找出特征相互接近的图片,则可发现特征相近的图片的视觉感受也相近。(呃,这应该归在"显然可见"系列。)使用...

2018-11-06 23:15:09 696

原创 CS231n-2017 第11讲 目标检测与图像分割

一、语义分割将一张图片中的像素按类别区分。示例如下:图 1. 语义分割示例语义分割不区分同类事物的不同实例。语义分割的思路:使用滑动窗方法,每次取图像的一部分,使用神经网络判断此部分的中心像素属于哪一类。缺点:低效,未能复用重叠窗口之间的共有特征。使用全卷积(Fully Convolutional)网络:使用补零方法保证卷积的输出结果的尺寸与源图像尺寸一致,不使用...

2018-11-06 23:07:37 2290

原创 CS231n-2017 第10讲 循环神经网络

一、循环神经网络与应用场景考察一个输入序列x1,x2,⋯ ,xnx_1, x_2, \cdots, x_nx1​,x2​,⋯,xn​,循环神经网络每次会结合上一次的网络状态ht−1h_{t-1}ht−1​和本次输入xtx_txt​,更新网络状态为hth_tht​,并根据需要输出结果yty_tyt​。循环神经网络的前向传播的数学表达如下:ht=fW(ht−1,xt)...

2018-11-06 22:31:56 467

原创 CS231n-2017 第9讲 卷积神经网络的各种架构

1. LeNet-5: LeCun et al., 1998, 5层网络结构为(Conv为卷积层,Pool为池化层,FC为全连接层):Conv — Pool — Conv — Pool — FC — FC — FC卷积核尺寸为5x5,跨立间隔为1;池化层尺寸为2x2,跨立间隔为2。图 1. LeNet结构2. AlexNet: Krizhevsky et al., 2012, ...

2018-11-06 22:23:03 540

原创 CS231n-2017 第8讲 使用PyTorch

一. PyTorch文档连接Tutorial: https://pytorch.org/tutorials/beginner/former_torchies_tutorial.htmlLayers: https://pytorch.org/docs/nn.htmlActivations: https://pytorch.org/docs/nn.html#non-linear-activat...

2018-11-06 22:10:47 734

原创 CS231n-2017 第7讲 训练网络(下)

一. 优化算法1. 随机梯度下降法(SGD)表达式:xt+1=xt−α∇f(xt)x_{t+1} = x_t - \alpha\nabla f(x_t)xt+1​=xt​−α∇f(xt​)缺点:如果损失函数对某一维的参数敏感,而对另一维的参数不敏感,那么容易出现z-形优化路径。图 1. z-形优化路径会陷在局部最小值或鞍点附近。对于高维参数空间,出现鞍点的情形要...

2018-09-22 13:44:43 203

原创 CS231n-2017 第6讲 训练网络(上)

训练网络模型所需要做的功课有:训练过程能够正常启动前置条件:设定激活函数、数据预处理、权重系数初始化、网络正则化策略、梯度校验等。训练过程动态监测:学习曲线监测、参数更新、超参数的优化选择。模型评估与改进:模型集成。本节与下一节将描述如上内容。一. 激活函数1. sigmoid表达式为σ(x)=1/(1+e−x)\sigma(x) = 1/(1+e^{-x})σ(x)=1/(1...

2018-09-22 13:40:21 336

原创 CS231n-2017 第5讲 卷积神经网络简介

1. 神经网络发展历史1957, Frank Rosenblatt:神经元,其实就是简单的线性分类器,用于字母识别。1960,Widow & Hoff,Adaline/Madaline,多层感知器网络。1986,Rumelhart,反向传播算法。2006,Hinton & Salakhutdinov,深层神经网络可被高效训练:通过受限玻尔兹曼机来初始化网络参数,然后利用...

2018-09-02 22:36:57 297

原创 CS231n-2017 第4讲 反向传播算法与神经网络

一. 反向传播算法计算图模型设有算式f(W,x)=11+e−(ω0x0+ω1x1+ω2)f(W,x)=11+e−(ω0x0+ω1x1+ω2)f(W, x) = \frac{1}{1+e^{-(\omega_0 x_0 + \omega_1 x_1 + \omega_2)}} 使用计算图模型展示其前向计算过程,以及梯度的后向传播过程如下图所示:图 1. 计算图模型...

2018-09-02 22:34:26 509

原创 CS231n-2017 第3讲 损失函数与优化

一. 损失函数1. 基本概念为了评估现有的模型的好坏,需要一个定量指标。这就是损失函数起作用之处。 对于由NNN个样本组成的数据集{(xi,yi)}Ni=1{(xi,yi)}i=1N\{(x_i, y_i)\}_{i=1}^N,定义总体损失函数为各个样本造成的损失的平均L=1N∑iLi(f(xi,W),yi)L=1N∑iLi(f(xi,W),yi)L = \frac{1}{...

2018-08-30 19:27:50 637

原创 CS231n-2017 第2讲 图像分类:KNN与线性分类

一. 图像分类概述难点(1) ViewPoint Variation: 拍摄视角。(2) Illumination: 光照。(3) Deformation: 变形。(4) Occlusion: 遮挡。(5) Background Clutter: 背景干扰。(6) Intraclass Variation: 同类事物的差异化。上述困难导致无法通过硬编码规则对图像达到良好的...

2018-08-30 19:22:51 1182

原创 CS231n-2017 第1讲 课程简介

一. 一些前导和同步课程CS131:Computer Vision: Foundations and ApplicationsCS231a: Computer Vision, from 3D Reconstruction to RecognitionCS 224n: Natural Language Processing with Deep LearningCS 230: Deep L...

2018-08-30 19:17:40 776

原创 第7篇 Fast AI深度学习课程——卷积神经网络的实现与改进

本节将基于CIFAR-10数据,阐述卷积神经网络的构建过程。之所以选择CIFAR-10数据,是因为其数据集很小,而且其中的图片也很小,方便开发阶段的快捷测试。...

2018-08-17 23:23:08 1472

原创 第6篇 Fast AI深度学习课程——循环神经网络

本节将继续就前面课程中的应用实例介绍Fast.AI的具体实现,并深入介绍相关原理。主要内容包括:类型变量的内置矩阵含义分析。随机梯度算法的实现。循环神经网络(RNN)的原理与实现。一. 使用PCA对类型变量的内置矩阵进行分析前面课程讲述了如何将类型变量映射为连续型向量。那么这些连续型向量又都表征了数据的什么特征呢?这可通过可视化技术进行分析。但由于向量维度可能太高,而我...

2018-08-16 22:52:25 1474

原创 第5篇 Fast AI深度学习课程——推荐算法之协同滤波

本节课的主要内容是针对使用协同滤波算法进行电影评分预测的应用场景,分别使用Excel、Fast.AI、Pytorch、自主构建的网络,来实现相应功能。所用数据为MovieLens数据,其中中的评分表存储了用户id,电影id,以及5星制的评分。数据格式如下:图 1. 电影评分数据组织形式一. 使用Excel与矩阵分解算法实现推荐系统整理为以用户id为索引的评分表,格...

2018-08-14 22:00:29 1915

原创 第4篇 Fast AI深度学习课程——深度学习在回归预测、NLP等领域的应用

前面几节叙述了卷积神经网络在图像分类中的应用,本节将描述深度学习网络在诸如回归预测、自然语言处理等领域的应用。主要内容如下:Drop Out策略,以及Fast.AI附加层架构分析。结构化时间序列的处理与预测。IMDB影评倾向性分析。Drop Out策略,以及Fast.AI附加层架构分析Drop Out策略是一种避免过拟合的有效手段。在Fast.AI框架下,通过设置分类器构...

2018-08-13 23:35:26 8971 1

原创 第3篇 Fast AI深度学习课程——卷积神经网络结构概论与多标签图像分类

第二节课中,讲述了提高图像分类网络准确率的若干手段,如数据修饰、学习速率重置、参数微调等。本节课将介绍卷积神经网络的基本架构,多标签图像分类,并演示如何将结果提交到Kaggle上。主要内容如下:如何悄没声儿地把自己挂在Kaggle竞赛的leader board上。如何对单一图像进行分类。卷积网络基本结构。多标签卫星遥感图像分类。向Kaggle提交结果1. 生成测试集的各类...

2018-06-27 22:56:51 4049 1

原创 第2篇 Fast AI深度学习课程——图像分类网络调优

在第一节课中,在Dogs vs. Cats数据集上,设置了一个ResNet34的网络,并通过学习速率选取方法,以及设置数据遍历次数为2,获得了一个准确率如下的网络: Epoch trn_loss val_loss accuracy 0 0.052014 0.028396 0.99 1 0.049761 0.028705 0.9885...

2018-06-27 22:14:29 6852

原创 第1篇 Fast AI深度学习课程——快速构建图像分类网络

本节课程将针对Kaggle竞赛中的Dogs vs. Cats,利用Fast AI搭建一个图像分类器。视频课程对应的Notebook是lesson1.ipynb中的改变学习速率及之前的部分。主要内容是:利用Fast AI搭建图片分类网络。如何选择学习速率。事实上,利用Fast AI搭建网络,然后训练预测,是一件相对简单的事情,简单到只需要三行代码就可实现。data = ImageC...

2018-06-24 07:31:03 3823 1

原创 第0篇 Fast AI深度学习课程——搭建本地环境

接触深度学习已经接近1年,零零散散看了一些书目和教程。但真正面对实际问题时,心里还是很虚,总感觉无从下手。直到看到了一个公开教程Fast AI deep learning,才发现利用深度学习解决实际问题,并不需要多复杂的知识体系。仅需像搭积木一样把已有的轮子堆叠起来,再加上一些tricks,就能得到一个看得过去的解决方案。工程嘛,先解决有无问题,后面才是万恶之源——无穷无尽地优化。Fast AI的...

2018-06-19 23:50:12 11252 5

Java初学者网盘资源

适合新手练手的项目 java初学者 视频+源码+笔记都有度娘链接永久有效

2018-08-07

Win7内存清理

一款很好用的内存清理工具,实用、简单,解压后点击.EXE程序即可,占用空间小,不用安装就能完成内存清理 !

2018-08-07

OpenCV 3 Computer Vision Application Programming Cookbook

OpenCV计算机编程攻略第三版的英文版。这本书深入浅出,把OpenCV的编程技巧讲的非常透彻,适合新手入门。

2018-08-06

OpenCV计算机视觉编程攻略

这是OpenCV计算机视觉编程攻略的第二版的英文原版。这本书深入浅出,把OpenCV的编程讲的非常透彻,适合新手入门,也适合做工程人员的参考。

2018-08-06

Graph Cut图像分割算法——Python+Opencv实现

基于Opencv,使用python语言,以图割算法实现的图像分割。

2018-05-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除