
深度学习
Miss_yuki
由希要努力变强
展开
-
caffe+linux平台——运行最初的mnist手写识别
大家好,我最近在caffe上学习深度学习,跑了一个mnist手写识别的例子,但是当时在网上搜索,只有告诉你步骤该怎么做,但具体的caffe执行程序的编写没有一步步告诉你是什么意思,我现在来总结一下,还在学习,有误欢迎指正。总体框架如下:首先我们需要下载数据库,下载好后,用create_mnist.sh将格式转换为lmdb格式并生成mnist_test_lmdb和mnist_train_lmdb两个...原创 2017-11-13 21:52:59 · 521 阅读 · 0 评论 -
深度学习理论——P-R曲线&原始数据类别不平衡问题
大家好,继续理论学习日记。本次简要介绍一些基本概念,不涉及公式推导。1.P-R曲线首先介绍四个概念精度:分类正确的样本数/样本总数错误率:分类错误的样本数/样本总数查准率P:TP/(TP + FP) 判对的 正例样本数/判为正例的总样本数查全率R:TP/(TP + FN) 判对的正例样本数/真实为正例的总样本数P-R曲线就是以查准率为纵轴,查全率为横轴得到的可以反映模型分类性能的曲线。我们可以粗略...原创 2018-07-04 10:39:57 · 1768 阅读 · 0 评论 -
深度学习理论——AdaBoost算法
大家好,继续理论学习,今天进入了集成学习这一章,首先介绍AdaBoost算法。集成学习分为Boosting和Bagging两种,其中Boosting算法是使用同质的弱分类器集成为强分类其,bagging为使用异质的弱分类器集成为强分类器,而Boosting的经典算法就是AdaBoost算法。AdaBoost算法有使用循环迭代的方法更新两个权重:一个是每次迭代所训练的滤波器在最后的总结果中所...原创 2018-07-23 16:09:31 · 2520 阅读 · 0 评论 -
深度学习理论——决策树划分属性的选择
大家好,继续理论学习日记,开始学习决策树了,今天先总结一下划分属性的选择,本博客主要参考了周志华的西瓜书和其他博客加上自己的理解。决策树就是把一个问题分成很多小问题不断进行子决策最终得出结论的过程,每个测试的结果或是导出最终结论或是导出进一步的判定过程,且其考虑范围是在上一次决策结果的限定范围之内的。决策树一般包含一个根节点,若干内部节点和叶节点,根节点对应总的数据集,每个内部节点对应一个属性测试...原创 2018-07-05 11:46:39 · 2964 阅读 · 0 评论 -
深度学习理论——简述Bagging & Stacking
大家好,这次来简单记录一下剩下这几种集成学习的概念,就不推公式了,比较简单。1.BaggingBagging是并行式学习的典型代表,各种基学习器并行对对应的子数据集进行学习后,将学习结果进行汇总得出最后的结论。为了增加数据集的多样性,我们让每个基学习器学习数据集的一个子集,但是害怕子集选取的类型不完备,可能每个检测器检测出来的结果会大相径庭,所以我们采取又放回的抽样,在数据集中抽取数据后再...原创 2018-07-24 10:04:12 · 2304 阅读 · 0 评论 -
深度学习理论——感受野的计算&防过拟合总结
大家好,继续理论学习,今天是总结的一天,没有推导!开心!1.感受野感受野简单来说就是最后输出的一个像素映射到原图包含了原图多少像素的信息。有一个简单的公式可以从top到down的推算出感受野!感受野 = (后一层感受野 - 1) * stride +kenel_size其中,stride为卷积步长,kenel_size为卷积核尺寸,padding不影响感受野。2.防过拟合总...原创 2018-07-12 16:45:45 · 923 阅读 · 1 评论 -
深度学习理论——朴素贝叶斯分类器
大家好,继续理论学习,终于开始学习贝叶斯啦!本文主要参考周志华的西瓜书和众多博客加上自己的理解。拉普拉斯修正避免了因训练集样本不充分造成的概率估值为零的问题,并且在训练集变大时,修正引入的先验的影响也会减小,概率趋近于真实概率。贝叶斯应该还没有完结,可能会有下一篇博客,我们下期见!...原创 2018-07-19 11:40:53 · 910 阅读 · 2 评论 -
深度学习理论——残差神经网络
大家好,继续理论学习,今天学习了何凯明大神的又一力作,残差神经网络。我们知道,网络层数越深,其表达能力越强,但之前人们并不敢把网络设计的太深,因为会有梯度衰减等各种问题让网络的性能大幅度下滑,用一些正则化,RELU等激活函数也不能完全避免。但有了残差网络,人们可以把网络的层数设计的很深,比如几百层。其基本思想如下:在传统的平网络(Plain Network)中,一层的网络的数据来源只能是前...原创 2018-08-16 22:26:03 · 14523 阅读 · 1 评论 -
深度学习理论——信息量,信息熵,交叉熵,相对熵及其在机器学习中的应用
大家好,继续理论学习,在我当年的一篇讲softmax和LR回归的博客里就是这篇博客!还有这篇!在里面只是简单地讲了交叉熵的公式,但是为什么深度学习当时要取最小的交叉熵来优化参数,其实我没太明白,今天搞明白了,来记录一下。1.信息量信息量的大小可以衡量事件的不确定性或发生的惊讶程度。一个事件发生的概率越小则其所含的信息量越大。设事件发生的概率为P(x),则其信息量表示为:...原创 2018-08-22 22:29:50 · 2989 阅读 · 1 评论 -
深度学习理论——判别式模型/生成式模型 && GBDT
大家好,继续理论学习,最近开始找工作了,非常忙,只能找零碎时间学习,记录也慢了一点。1.生成式模型&&判别式模型判别式模型(Discriminative Model)是直接对条件概率p(y|x;θ)建模。常见的判别式模型有 线性回归模型、线性判别分析、支持向量机SVM、神经网络等。生成式模型(Generative Model)则会对x和y的联合分布p(x,y)建模,然后...原创 2018-09-06 17:04:36 · 2704 阅读 · 0 评论 -
深度学习理论——SSD批量测试自己的图片
大家猴!这篇是针对我自己实验室的一个硬件配置情况的一个教程,其他人看的话可能不太符合。批量测试首先需要的是st_ssd中的ssd_detect_image.py。点开以后发现要配置的地址信息为1. labelmap_file:需要把里面修改成自己的标签种类信息2. model_def:放置deploy文件,记得改一下deploy文件中的两个地址和一个测试图像的数量3. mode...原创 2018-11-15 16:05:03 · 2275 阅读 · 2 评论 -
深度学习理论——yolov3计算map
大家好,继续备忘,这次是记录yolov3跑完测试以后如何计算map的简单方法。1.生成检测文件上一篇博客写的是批量测试生成图像结果,要想计算map,需要首先生成检测文件,在darknet文件下运行:./darknet detector valid cfg/voc.data cfg/yolov3-voc.cfg backup/yolov3-voc_final.weights-out "...原创 2018-11-29 22:43:49 · 2314 阅读 · 0 评论 -
深度学习理论——Softmax
大家好,继续理论的学习,虽然前面的博客已经简略介绍了目标函数和Softmax,但最近又更深入学习了一些,因此再为Softmax单独开一篇博客,介绍Softmax是如何配合Loss函数求偏导,根据梯度下降法反向传播的。学到很多,我们下期见!...原创 2018-06-28 10:48:41 · 553 阅读 · 0 评论 -
caffe+linux平台——日常运行小tips(码给自己)
大家好,本次小博客用来码一些自己平时做项目常用的tips。1.输入cd可以直接进入用户目录2.输入pwd可以查看当前目录3.写绝对路径的时候不要忘记最前面的/4.如果GPU out of momery了,可以输入nvidia-smi进行查看5.想查看matlab,python等接口地址的配置,可以输入vi ~/.bashrc进行查看6.如果地址不对了,可以一步步cd查看哪一步出的错7.如果代码出错...原创 2018-07-09 20:22:28 · 208 阅读 · 0 评论 -
caffe+linux平台——绘制训练时的loss曲线
大家好,最近一直在学深度学习,本来想彻底调通一个网络后来一篇系统的总结博客,但是现在获得了一个小技能点,怕不赶快记录下来会忘记,所以就先写下来了。一.要想绘制loss曲线,需要先在训练时输出日志。原本的train.sh为:#!/usr/bin/env shTOOLS=./build/tools$TOOLS/caffe train --solver=examples/mytest/solver...原创 2017-12-13 11:51:33 · 1089 阅读 · 2 评论 -
caffe+linux平台——跑深度学习的流程
大家好,放假在即,来整理一波在Linux上用caffe跑深度学习的流程,免得开学回来忘记。以下地址均为我自己电脑上的地址,大家要照着跑请自行修改地址哦!1.将训练和测试的图像放入examples-->images.训练图像放入train文件夹中,测试图像放入test文件夹中。2.在自己创建的examples-->mytest中,创建creat_filelist.sh来生成对应标签tra...原创 2018-01-25 10:43:24 · 1810 阅读 · 0 评论 -
caffe+linux平台——运行ssd流程和排雷
大家好,最近我在搞SSD,遇到了很多很多问题,一度觉得自己和科研八字不合,但还是坚持下来了,现在把这些问题都记录一下。1.第一步,下载ssd源代码,好多博客介绍的经验是直接在linux下下载,但是我的linux电脑没有联网,只是在服务器上跑的ssd,所以无法下载,这里介绍拷贝的方法。首先下载好ssd源代码和预训练文件VGG16.ssd下载地址 https://github.com/weiliu89...原创 2018-03-14 10:21:34 · 1580 阅读 · 3 评论 -
caffe+linux平台——实现ssd单幅图像检测
大家好呀,经过两天的挣扎,我终于实现了ssd的单独图像检测,这篇博客的基础是已经训练出了ssd的caffemodel,如何训练,请移步我的上一篇博客:在linux上用caffe运行ssd流程和排雷在home/caffe-ssd/examples/里我们需要ssd_detect.ipynb文件,要打开它需要确定自己的平台上安装了jupyter notebook。在安装后,cd home/caffe-...原创 2018-03-20 22:29:12 · 619 阅读 · 0 评论 -
深度学习理论——数据预处理(逐样本减去均值)
大家好,继续深度学习的理论日记,本次介绍数据预处理相关内容。在深度学习中,大家都会发现训练集,验证集合测试集划分好之后会有减去均值的一步操作,但很多人都是只跟着做,并没有探究为什么要做这一步处理。其主要原理是我们默认自然图像是一类平稳的数据分布(即数据每一维的统计都服从相同分布),此时,在每个样本上减去数据的统计平均值可以移除共同的部分,凸显个体差异。其效果如下所示:可以看到天空的纹理被移除了,凸...原创 2018-06-12 15:26:15 · 11971 阅读 · 4 评论 -
深度学习理论——目标函数(损失函数)&正则化&交叉验证
大家好,继续理论学习,网络的设置接近了尾声,本次学习目标函数和正则化。1.目标函数(1)分类问题中的目标函数这类问题中最常用的就是交叉熵函数了,也即softmax。假设共有N个训练样本,针对网络最后分类层第i个样本的输入特征为xi,其对应的真实标记为yi,hi为其网络对应的最终输出,C为分类任务的类别数。有了如上定义,其形式可写为:(2)回归问题中的目标函数在分类任务中,最后的样本真实标记实际上是...原创 2018-06-13 17:17:22 · 5944 阅读 · 0 评论 -
深度学习理论——随机梯度下降法(SGD) & 反向传播
大家好,一直在用深度学习,但是感觉理论并不扎实,打算开始补点理论基础,在优快云上记录下来。今天介绍随机梯度下降法和反向传播,首先介绍梯度下降法。1.梯度下降法梯度下降法是从初始值开始,向函数上当前点对应梯度的反方向的规定步长的距离点进行迭代搜索,最终得到最小值的过程。公式简易推导如下:更直观的图像表示如图所示:这是学习率为0.001,迭代两百次的示意图,当学习率设的更...原创 2018-06-08 11:07:21 · 10659 阅读 · 1 评论 -
深度学习理论——基本结构(池化层&激活函数&全连接层)
大家好,继续深度学习理论学习。记录一下自己觉得有用的关于深度学习基本结构的相关知识。1.池化层池化层不包含需要学习的参数,使用时仅需指定池化类型,池化核大小和池化步长。池化类型一般都取平均池化(average-pooling)或最大值池化(max-pooling),即取池化矩阵覆盖的输入中的平均值或最大值。池化层存在的意义一般有以下三点:(1)特征不变性 池化使模型更关注是否存在...原创 2018-06-09 21:10:28 · 7200 阅读 · 0 评论 -
深度学习理论——logistic回归算法
大家好,继续理论学习日记,今天介绍很基础的logistic回归的公式推导,很多书上只是写了公式,并没有推导过程,我这次全都写出来了,还加了注释,希望对大家有帮助。首先介绍一下logistic回归算法的思路:1.首先构造或选取一个预测函数,比如Sigmod,RELU这种,用来进行最后的分类。(即下文中h函数)2.构造一个代价函数(或称为损失函数)来表示输出和真实值之间的损失值(即下文中l函数)3.我...原创 2018-06-25 16:48:49 · 1161 阅读 · 0 评论 -
caffe+linux平台——SRCNN实现
大家好,来久违的写一篇操作博客记录一下SRCNN的实现过程,避免半年后忘记。SRCNN本身结构就非常简单,实现起来也比SSD简单多了,下面描述具体操作。1.下载作者上传的代码点击下载代码分为train和test两部分,都下载下来。然后解压复制到caffe-master\examples/SRCNN的文件夹里。2.转换数据格式分别运行generate_train.m和generate_test.m来...原创 2018-07-01 15:09:46 · 1660 阅读 · 1 评论 -
深度学习理论——SVM(支持向量机)
大家好,今天学习了SVM相关知识,真的很难,看了很久,依旧手推公式,总结出来,希望能帮到大家。SVM是一种二分类模型,在特征空间中寻求间隔最大化的分离超平面。具体推导如图:对了我发现前面那个y为什么取1不影响忘记说了。。。手打公式不方便,简言之就是就算公式里有y也不影响结果,因为是对w和b求偏导。有不懂得欢迎问我,我们下期见。...原创 2018-06-26 21:14:25 · 1908 阅读 · 0 评论 -
深度学习理论——ssd从之前的网络断点接着训练
大家好,今天完成了新一小步的学习,想要接着上次训练的模型训练。步骤如下:1.把上次训练好的caffemodel和solvestate文件复制到model里本次训练新建的文件夹中2.在ssd_pycal.py文件中,修改snapshot和model_name为本次的地址和name3.运行py文件即可。记录一下备忘,我们下期见。...原创 2018-12-15 17:51:30 · 1826 阅读 · 1 评论