
人工智能深度学习
文章平均质量分 83
qian99
这个作者很懒,什么都没留下…
展开
-
简单易懂的主成分分析(PCA)
PCA(Principal Component Analysis)是一种矩阵压缩的算法,在数据分析和机器学习等很多方向都有着应用。这篇文章的主要目的是将这个算法的原理讲的简单易懂,网上很多讲PCA的文章,但是大部分讲的并不够朴素,用了很多公式,很多图解和专有名词,但是在我看来,这些东西并不一定能降低理解这个算法的门槛。所以,这篇文章可能不会有特别严谨的数学推导,我会尽量使用符合人类直观理解的方式来...原创 2020-03-29 15:57:41 · 1179 阅读 · 0 评论 -
关于Faster-Rcnn中的AnchorBox的一些理解
最近在看faster-rcnn的源码,写一写笔记~之前看论文的时候,anchorbox这个东西,虽然大概意思是理解了,但是还是有很多细节没想明白,之前读代码的时候又有了更深的理解。首先,faster-rcnn在计算anchorbox之前大概是下面这几步: 为了更方便理解,我列出了实际情况中一个图片的输入对应的过程中的各个输出结果的size,而实际情况中,输入的size是不确定的,re...原创 2018-04-14 17:53:59 · 20776 阅读 · 24 评论 -
FasterRcnn中boundingbox regression的一些理解
在fasterrcnn中,做框的回归,有三个输入,anchor,预测的框,groundtruth的框。一个框的表示,使用中心点(x,y)(x,y)(x, y),和框的宽高(w,h)(w,h)(w,h)表示。那么这个回归的loss怎么算呢?首先看下图: 其中: 绿框:ground truth box 红框:predict box 蓝框:anchor box首先我们需要明白下面两个...原创 2018-08-30 11:39:38 · 2454 阅读 · 8 评论 -
目标检测——细读YOLO V1
Yolo(You Only Look Once)是一个end-to-end的目标检测算法。作者在论文中提出,人类的视觉系统是快速和准确的, 人们瞥一眼图像,立即知道图像中的物体是什么,它们在哪里以及它们如何相互作用。而对于Rcnn系列的方法,都是需要先找到有可能有物体的框(anchor box),然后进行前背景分类,nms消除重叠框,重新进行坐标回归和分类,这个流程就比较复杂,并且每个步骤的组件的...原创 2018-09-08 14:11:13 · 863 阅读 · 0 评论 -
随笔——关于贝叶斯定理
贝叶斯定理是一个很经典的定理,虽然公式很简单,套用起来也很方便,但是还是缺乏一个直观的sense, 似乎很有道理却说不出来,这是一件很难受的事情,今天打算好好聊一聊贝叶斯定理,看看是否可以建立一个直观的感觉。其实,画图是一个很好理解数学公式的方法,如果各种公式都能变成一个简单的图像存在人的大脑里,那数学学起来应该会轻松很多。既有数字能够入微的计算细节,又有图像能让人把握方向,就很完美了。所以,...原创 2018-09-23 17:53:40 · 1253 阅读 · 1 评论 -
TextRank学习笔记
TextRank起源与PageRankTextRank的灵感来源于大名鼎鼎的PageRank算法,这是一个用作网页重要度排序的算法。并且,这个算法也是基于图的,每个网页可以看作是一个图中的结点,如果网页A能够跳转到网页B,那么则有一条A->B的有向边。这样,我们就可以构造出一个有向图了。然后,利用公式:经过多次迭代就可以获得每个网页对应的权重。下面解释公式每个元素的含义:S(V...原创 2018-11-04 10:38:41 · 8007 阅读 · 0 评论 -
使用mkldnn为cpu运行网络加速
最近要在用crnn,跑的pytorch模型,本来在gpu跑的好好的,但是后来由于各种原因,需要在cpu上跑,才发现cpu上跑的是真的慢,后来发现了mkldnn这个东西,这是intel开发的开源项目,就是针对cpu上运行神经网络做了一些并行优化。用了以后,大概速度快了7,8倍吧,效果还是比较明显的。mkldnn的github链接: https://github.com/intel/mkl-dnn...原创 2018-11-22 09:01:14 · 15849 阅读 · 22 评论 -
Unet学习笔记
最近在看Unet,记录一下。论文地址https://arxiv.org/pdf/1505.04597.pdf网络结构图上画的还是很清晰的,但是对于不了解Unet结构的人来说,可能还是有一些不清楚的地方。我这里结合我看的时候的疑问,来讲一下Unet的结构的一些问题。可以看到,输入是572x572的,但是输出变成了388x388,这说明经过网络以后,输出的结果和原图不是完全对应的,这在计...原创 2018-12-18 23:22:35 · 25340 阅读 · 28 评论 -
简单理解信息量、散度、交叉熵
信息论顾名思义,信息论是研究信息的一门学科,不过在这篇文章里,只讨论一些简单的概念。信息量这里的信息量和“这句话信息量很大啊”的信息量有些像,但还是有区别的。信息论顾名思义,信息论是研究信息的一门学科,不过在这篇文章里,只讨论一些简单的概念。信息量这里的信息量和“这句话信息量很大啊”的信息量有些像,但还是有区别的。我们常说的信息量很大,基本上的意思是表达某句话或者某个场面(较少见)...原创 2019-01-05 12:47:52 · 1028 阅读 · 0 评论 -
GAN——生成对抗网络详解
GAN的诞生在讲GAN的内容之前想先讲一下GAN诞生的故事。GAN的创造者是Ian Goodfellow,有一天为了庆祝一个朋友Razvan Pascanu获得了博士学位,他和一些朋友在蒙特利尔一家酒吧嗨。他们开始讨论一个新的研究方向,通过数学的方法确定图片内容,大概意思是把图片都喂给机器,通过统计之类的方法,机器可以自己生成图片。我们的主角Goodfellow也喝高了,表示这种方法不会work...原创 2019-01-27 15:23:52 · 1145 阅读 · 0 评论 -
LSTM 详解
这篇文章打算讲一下LSTM,虽然这类文章已经很多了,但以前刚开始看的时候还是一知半解,有一些细节没有搞清楚,我打算借这篇文章好好梳理一下。前言在许多讲LSTM的文章中,都会出现下面这个图。Alt text说实话,这个图确实很清晰明了(对于懂的人来说)。在很多文章中我都发现了这样的问题,有的时候,对于已经明白的人,一些很“显然”的问题就被忽略了,但是对于刚入门的人来说,一些基础的问题却要搞...原创 2019-03-17 22:10:57 · 105638 阅读 · 26 评论 -
pytorch如何在测试的时候启用dropout
我们知道,dropout一般都在训练的时候使用,那么测试的时候如何也开启dropout呢?在pytorch中,网络有train和eval两种模式,在train模式下,dropout和batch normalization会生效,而val模式下,dropout不生效,bn固定参数。想要在测试的时候使用dropout,可以把dropout单独设为train模式,这里可以使用apply函数:def...原创 2019-04-06 09:51:23 · 14541 阅读 · 7 评论 -
对 Spatial Transformer Networks(空间变换网络) 的思考
论文地址: https://arxiv.org/abs/1506.02025这几天看了下stn,大概写一写吧。说实话,这个东西思想倒是蛮有意思的,但是实际用起来效果不好说,至少在我想要应用的场景下效果不怎么样。这里先写论文的思路,再写一下我做的一些实验与相应的思考。STN 目标我们知道,CNN推动了计算机视觉的发展,但是还是有一些缺陷。在“Visualizing and Understan...原创 2019-05-07 14:55:57 · 1837 阅读 · 6 评论 -
tfrecord读写数据
tfrecord 的读写数据是真的麻烦,各种不方便,而且还有些坑,不太想讲这个东西,所以这里就打算写个简单的读写模板,可以作为参考。其实写tfrecord本质只有三个类型: bytes,int64,float。所以我们要保存的数据就转成这三种类型就行了。另外,这几种类型的数据都是一个list的形式,并且不支持多维数组,如果想要的数据是多维的,那就要转成1维,再读进来以后再转回去。还有一点是变...原创 2019-05-17 15:12:49 · 1326 阅读 · 0 评论 -
论文阅读: Character Region Awareness for Text Detection (CRAFT)
简介论文链接:https://arxiv.org/abs/1904.01941这篇论文的主要是解决文本检测的问题,思路是利用分割的方法,与图像分割有些不同的是,CRAFT不是对整个图像进行像素级分类,而是做了回归,它有两个分支,一个是目标是字符的中心的概率(这里用概率可能不是很准确,或许说是距离字符中心的距离更好一些),另一个是字符之间的连接关系,然后经过一步后处理,得到文本的边界框。网络结...原创 2019-06-02 16:28:16 · 7203 阅读 · 8 评论 -
图片转tfrecord格式的优化
前两天在用一个开源代码的时候,发现他把数据转tfrecord以后特别大,本来硬盘空间就有些紧张,这下更不够了。看了一下转完以后的大小,是原始数据的9、10倍,这就有些夸张了。之前用tfrecord的时候没有特别注意这个事情,这次看到了还是研究一下。方案1:这是原来代码里的写法,为了简便,就只挑重要部分的写了:import tensorflow as tfimport numpy as...原创 2018-04-14 13:37:30 · 4264 阅读 · 2 评论 -
卷积神经网络的参数计算
前言这篇文章会简单写一下卷积神经网络上参数的计算方法,然后计算各个常见神经网络的参数。一个是加强对网络结构的了解,另一方面对网络参数的量级有一个大概的认识,也可以当作备忘录,免得想知道的时候还要再算。参数计算方法全连接的参数计算就不说了,比较简单。 首先,简单说一下卷积网络的参数计算。下图中是一个32x32x3的输入,然后用一个5x5x3的卷积对其中某个位置的计算,这里算的是一个原创 2018-01-08 22:39:12 · 88304 阅读 · 33 评论 -
神经网络入门
神经网络的学习还是比较麻烦的,首先你要理解它的原理,虽然我现在还觉得挺玄幻的,不过各种公式就够推一张纸了。第二点,神经网络是需要数据进行训练的,如果没有大量的数据,那么你的代码也就没有针对性也不能看到效果。我也是刚开始学,书的话就看了Neural Network and Deep Learning,网上能下到中文版吧,这里面还是讲的很清晰的,看这书的时候最好把基础和细节都好好过一遍,公式也原创 2017-03-12 17:45:57 · 463 阅读 · 0 评论 -
Tensorflow常用函数
虽然用tensorflow来实现一个神经网络是非常简单的,但掌握tensorflow的API还是有些麻烦的,主要原因是中文社区里的API有很多都是过时的,不带翻译看起来也比较麻烦,而且没有一个查询的功能,所以还是记一记吧。暂时写一部分,等把常用的写差不多了再整理一下吧。tf.Variable()创建一个变量def test_tf_Variable(): w = tf.V原创 2017-03-18 20:10:45 · 458 阅读 · 0 评论 -
AlphaGo是如何实现的
前言最近看了AlphaGo的论文:Mastering then Game of Go with Deep Nerual Networks and Tree Search。惊异于这些人的创造力和神经网络的强大,能够把围棋这种游戏做到这种地步。写一写论文里的方法和自己的思考吧,这篇文章基本都是论文中的观点,只是以我的视角去解读,有错误的地方欢迎指出。关于棋盘对弈游戏还记得在大学的时候,学校举办了一个人原创 2017-04-03 22:08:04 · 9037 阅读 · 0 评论 -
关于Tensorflow计算图与Tensor的理解
关于Tensorflow计算模型tensorflow的编程和我以往接触的编程方式有很大差异。以前的编程,无论是编译类型的语言还是脚本语言,都是一步一步的,变量计算后,就会得到结果,比如c=a+b,当执行完语句后,就会得到c的值。但tensorflow不是,它首先要通过编程,构建一个计算图出来,然后启用一个会话来把数据作为输入,通过这个图规定的计算步骤计算,最后得到结果。 普通的命令式编程容易理解和原创 2017-04-23 14:51:20 · 11329 阅读 · 1 评论 -
kaggle 邮箱验证的时候提示 You did not enter the correct captcha response. Please try again
听一个朋友说的kaggle这个东西,打算借此好好学习一下,注册的时候邮箱验证总显示You did not enter the correct captcha response. Please try again没有输入正确的验证码是什么鬼,老子根本没输验证码好么。。。后来发现这个验证码是用google提供的api,google被和谐了,所以加载不出来……翻个墙就能出来验证信原创 2017-09-07 22:12:22 · 47173 阅读 · 15 评论 -
[kaggle系列 二] 使用决策树判断是否能从泰坦尼克号生还
题目连接:https://www.kaggle.com/c/titanic简析上一篇用了贝叶斯分类器,这次用决策树和随机森林试一试,不过最终的得分没有贝叶斯分类器高,好吧,说实话,感觉再用几个不同的机器学习方法应该结果也差不多,现在主要是试水,先搞懂基础的算法,然后再通过数据的处理与分析去优化结果。决策树我个人认为,决策树应该是比较好理解的机器学习算法了。其中心思想就是ifelse,存在很多个条件的原创 2017-09-16 15:56:25 · 1240 阅读 · 0 评论 -
[kaggle系列 一] 使用贝叶斯分类器判断是否能从泰坦尼克号生还
前两天有个朋友给我推荐了kaggle这个网站,感觉对于我这种想要学习却不太清楚如何实践的新手来说是个很有效的学习方式。 之前学的东西都比较乱,这边学一点,那边学一点,这次要一步一步的,从简到难好好搞一搞~ 做这个的目的呢,主要是学习机器学习人工智能这方面的东西,通过具体的问题,把不同的算法放上去尝试,同时,也可以给想要学习的同学提供一些比较简单的方式~ 之前看教程,感觉都是没有例子或者没有理论原创 2017-09-09 18:00:20 · 2462 阅读 · 2 评论 -
简单易懂的softmax交叉熵损失函数求导
来写一个softmax求导的推导过程,不仅可以给自己理清思路,还可以造福大众,岂不美哉~ softmax经常被添加在分类任务的神经网络中的输出层,神经网络的反向传播中关键的步骤就是求导,从这个过程也可以更深刻地理解反向传播的过程,还可以对梯度传播的问题有更多的思考。softmax 函数softmax(柔性最大值)函数,一般在神经网络中, softmax可以作为分类任务的输出层。其实可...原创 2017-09-20 22:23:33 · 78995 阅读 · 79 评论 -
[kaggle系列 三] 使用SVM判断是否能从泰坦尼克号生还
题目连接:https://www.kaggle.com/c/titanic前言和前几篇差不多,这次换成svm,实际上,对于svm的理解是有了,知道是怎么做的了,但具体公式如何推导,还是不会,但是,这不影响写代码,使用现成的库函数就可以搞定,有时候,这些工具大大简化了我们的学习成本,知道基本原理,然后去使用就行了,具体的细节也不用去关心。用陶渊明的话来说,就是,“好读书,不求甚解;每有会意,便欣然忘食原创 2017-09-20 22:40:08 · 2294 阅读 · 1 评论 -
[kaggle系列 四] 通过mnist来研究神经网络的一些细节(1)
题目https://www.kaggle.com/c/digit-recognizer前言前面玩泰坦尼克号花费了一些时间,想要把分数刷的高一些,但是没有成功,感觉再搞下去意义不大,毕竟只是拿来熟悉kaggle和一些机器学习算法的,目的已经达到了,没必要纠缠下去。所以就开新坑啦~ 其实我重点是想要搞神经网络深度学习的,mnist是一个比较简单的数据集,是Yann LeCun大神搞出来的,收集了6,7原创 2017-10-11 21:46:24 · 789 阅读 · 0 评论 -
[kaggle系列 五] 通过mnist来研究神经网络的一些细节(3)
题目https://www.kaggle.com/c/digit-recognizer前言上一篇用了个简单的神经网络来解决mnist的问题,介绍了一下权重初始化的技巧,防止训练梯度到最后一层的时候变为nan,还使用了bn算法,取得了一些成效。这一章里,我会介绍一下训练中使用的更新梯度的优化算法,还有对神经网络进行正则化和dropout的操作。SGD的问题使用随机梯度下降算法,虽然能够使得梯度不断下降原创 2017-10-21 15:24:06 · 1142 阅读 · 2 评论 -
[kaggle系列 四] 通过mnist来研究神经网络的一些细节(2)
题目https://www.kaggle.com/c/digit-recognizer前言上一篇写了一些基础的代码,用一个最简单的神经元来写了一个手写数字的识别。在这一篇里,首先扩展了神经网络的深度,并且处理了深度所带来的权重初始化的问题,另外,还尝试用了batch normalization算法进行了优化。增加网络层数把网络层数加深并不难,只要处理好输入输出就可以了,这里直接贴个代码好了。这里有两原创 2017-10-16 22:26:40 · 735 阅读 · 0 评论 -
CTC算法论文阅读笔记:Connectionist Temporal Classification: Labelling Unsegmented Sequence Data with Recurren
前言最近在看这个论文,本来想要写一个翻译,但是鉴于本人英语的渣水平,再加上论文本身一些说明,虽然能够看懂,但是很难翻译过来,所以还是写个阅读笔记好了。在这篇文章,我会跟着论文的思路大致说明论文的内容和自己的理解。CTC解决什么问题在许多的训练任务中,我们需要输入一个序列,这个序列有可能有噪声,并不是我们需要的信息都连续存在。比如声音的识别之类的,对于一个语音,假设我们要翻译成文字,但是声音中的信息并原创 2017-12-31 14:09:30 · 4207 阅读 · 4 评论 -
如何生成FSNS数据集结构的tfrecord数据
想要用一下attention ocr,github如下: https://github.com/tensorflow/models/tree/master/research/attention_ocr发现这里面并没有生成数据的样例代码,只能用fsns的格式,如果想要用自己的数据集要生成一个和FSNS一样结构的tfrecord数据,但是这部分没有仔细说,只给了一个stackoverflow的链原创 2018-01-13 15:38:28 · 1959 阅读 · 1 评论 -
Tensorflow学习小记
接触工作要用,就要学喽,不过就看了几天,还是比较懵的状态,所以这里把一些遇到的坑说一下,希望能对新人有帮助吧。简介还是介绍一下吧,随便扯扯。Tensorflow是Google的产品,是一个人工智能和深度学习的框架。感觉好屌啊,Google是厉害啊,什么都能搞出来,貌似AlphaGo就是用这东西开发的?还有很多地方可以应用,如语音识别,自然语言理解,计算机视觉……对于某些公司或个人来说,减少了成本,有原创 2017-03-11 22:15:34 · 1017 阅读 · 0 评论