自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

郭耀华's Blog | 人工智能领域技术博客

记录 IT 成长路上的点点滴滴,分享人工智能领域最新技术。

  • 博客(143)
  • 收藏
  • 关注

原创 十大经典排序算法最强总结(含Java、Python码实现)

引言所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。排序算法在很多领域得到相当地重视,尤其是在大量数据的处理方面。一个优秀的算法可以节省大量的资源。在各个领域中考虑到数据的各种限制和规范,要得到一个符合实际的优秀算法,得经过大量的推理和分析。两年前,我曾在博客园发布过一篇《十大经典排序算法最强总结(...

2020-12-29 15:26:00 362

原创 【异常检测】孤立森林(Isolation Forest)算法简介

简介    工作的过程中经常会遇到这样一个问题,在构建模型训练数据时,我们很难保证训练数据的纯净度,数据中往往会参杂很多被错误标记的脏数据,而数据的质量决定了最终模型性能的好坏。如果进行人工二次标记,成本会很高,我们希望能使用一种无监督算法帮我们做这件事,异常检测算法可以在一定程度上解决这个问题。  异常检测分为离群点检测(outlier detection)以及奇异值检测(nove...

2020-05-20 18:49:00 1724

原创 深入理解决策树算法

引言决策树(Decision Tree)是机器学习中一种经典的分类与回归算法。本文主要讨论用于分类的决策树。决策树模型呈树形结构,在分类问题中,决策树模型可以认为是if-then规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。其主要优点是模型具有可读性,分类速度快。决策树学习通常包括3个步骤:特征选择、决策树的生成和决策树的剪枝。基本原理模型结构决策树由结点(No...

2019-11-07 17:19:00 367

原创 【机器学习】一文读懂分类算法常用评价指标

评价指标是针对将相同的数据,输入不同的算法模型,或者输入不同参数的同一种算法模型,而给出这个算法或者参数好坏的定量指标。在模型评估过程中,往往需要使用多种不同的指标进行评估,在诸多的评价指标中,大部分指标只能片面的反应模型的一部分性能,如果不能合理的运用评估指标,不仅不能发现模型本身的问题,而且会得出错误的结论。最近恰好在做文本分类的工作,所以把机器学习分类任务的评价指标又过了一遍。...

2019-08-27 14:52:00 519

原创 Git常用操作指南

目录前言Git简介安装之后第一步创建版本库本地仓库远程仓库创建SSH Key添加远程库关联新仓库关联已有仓库版本控制工作区和暂存区工作区(Working Directory)版本库(Repository)版本回退重置命令文件粒度操作Reset 常用示例撤销修改删除文件分支管理创建与合并分支解决冲突分支管理策略分支策略状态存储应用实例多人协作推送分支抓取分支Rebase解决冲突标签管理创建...

2019-07-21 17:24:00 240

原创 深度学习工作站攒机指南

目录引言配置清单配件选购指南主板芯片组对比CPUPCIe 通道对比内存频率SSDM.2接口容量机械硬盘显卡性能对比性价比分析整体建议(转载)选购电源散热器机箱风扇组装性能测试引言接触深度学习已经快两年了,之前一直使用Google Colab和Kaggle Kernel提供的免费GPU(Tesla K80)训练模型(最近Google将Colab的GPU升级为Tesla T4,计算速度...

2019-05-11 15:06:00 872

原创 一文看懂Transformer内部原理(含PyTorch实现)

Transformer注解及PyTorch实现 原文:http://nlp.seas.harvard.edu/2018/04/03/attention.html   作者:Alexander Rush  转载自机器之心:https://www.jiqizhixin.com/articles/2018-11-06-10?from=s...

2018-12-21 11:45:00 813

原创 【中文版 | 论文原文】BERT:语言理解的深度双向变换器预训练

BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding 谷歌AI语言组论文《BERT:语言理解的深度双向变换器预训练》,介绍一种新的语言表征模型BERT——来自变换器的双向编码器表征量。异于最新语言表征模型,BERT...

2018-12-20 14:47:00 886

原创 机器学习数学基础总结

目录线性代数一、基本知识概率论与随机过程一、概率与分布1.1 条件概率与独立事件二、期望三、方差3.1 方差3.2 协方差与相关系数4.3 中心极限定理五、不确定性来源六、常见概率分布6.1 均匀分布6.2 二项分布6.3.2 多维正态分布6.4 指数分布6.5 拉普拉斯分布6.6 狄拉克分布6.8 混合概率分布八、测度论数值计算一、数值稳定性1.1 近似误差1.2 softmax 函数...

2018-11-04 21:40:00 264

原创 平均精度均值(mAP)——目标检测模型性能统计量

  在机器学习领域,对于大多数常见问题,通常会有多个模型可供选择。当然,每个模型会有自己的特性,并会受到不同因素的影响而表现不同。   每个模型的好坏是通过评价它在某个数据集上的性能来判断的,这个数据集通常被叫做“验证/测试”数据集。这个性能由不同的统计量来度量,包括准确率( accuracy )、精确率( precision )、召回率( recall )等等。选...

2018-11-03 18:19:00 722

原创 【Java面试宝典】深入理解JAVA虚拟机

一、运行时数据区域   线程隔离:线程隔离的意思,就是给不同的线程多分配的资源用,以做到不争用。   线程共享:线程共享就是资源只有一个没有办法分配更多,只能共享。   Java虚拟机管理的内存包括几个运行时数据内存:方法区、虚拟机栈、本地方法栈、堆、程序计数器,其中方法区和堆是由线程共享的数据区,其他几个是线程隔离的数据区。程序计数器,虚拟机栈,本地方法栈...

2018-09-25 11:22:00 144

原创 Faster R-CNN:详解目标检测的实现过程

本文详细解释了 Faster R-CNN 的网络架构和工作流,一步步带领读者理解目标检测的工作原理,作者本人也提供了 Luminoth 实现,供大家参考。 Luminoth 实现:https://github.com/tryolabs/luminoth/tree/master/luminoth/models/fast...

2018-08-16 17:49:00 148

原创 TensorFlow 使用变量共享

参考: https://www.tensorflow.org/programmers_guide/variable_scope 举例说明 TensorFlow中的变量一般就是模型的参数。当模型复杂的时候共享变量会无比复杂。 官网给了一个case,当创建两层卷积的过滤器时,每输入一次图片就会创建一次过滤器对应的变量,但是我们...

2018-08-14 17:54:00 77

原创 各种卷积结构原理及优劣总结

卷积神经网络作为深度学习的典型网络,在图像处理和计算机视觉等多个领域都取得了很好的效果。 Paul-Louis Pröve在Medium上通过这篇文章快速地介绍了不同类型的卷积结构(Convolution)及优势。为了简单起见,本文仅探讨二维卷积结构。 卷积 首先,定义下卷积层的结构参数。 &#13...

2018-08-08 16:23:00 169

原创 SVM(支持向量机)之Hinge Loss解释

Hinge Loss解释   SVM 求解使通过建立二次规划原始问题,引入拉格朗日乘子法,然后转换成对偶的形式去求解,这是一种理论非常充实的解法。这里换一种角度来思考,在机器学习领域,一般的做法是经验风险最小化 ERM ,即构建假设函数为输入输出间的映射,然后采用损失函数来衡量模型的优劣。求得使损失最小化的模型即为最优的假设函数,采用不同的...

2018-08-07 12:23:00 512

原创 【NLP】Attention Model(注意力模型)学习总结

  最近一直在研究深度语义匹配算法,搭建了个模型,跑起来效果并不是很理想,在分析原因的过程中,发现注意力模型在解决这个问题上还是很有帮助的,所以花了两天研究了一下。   此文大部分参考深度学习中的注意力机制(2017版)张俊林的博客,不过添加了一些个人的思考与理解过程。在github上找到一份基于keras框架实现的可运行的注意模型代码:Attention_Net...

2018-08-06 21:55:00 203

原创 Win10 Anaconda下TensorFlow-GPU环境搭建详细教程(包含CUDA+cuDNN安装过程)

目录前言第一步:安装Anaconda1.下载和安装2.配置Anaconda环境变量第二步:安装TensorFlow-GPU1.创建conda环境2.激活环境3.安装tensorflow-gpu第三步:安装CUDA Toolkit + cuDNN1.查看需要安装的CUDA+cuDNN版本2.下载CUDA + cuDNN3.安装 CUDA Toolkit 9.0 和 cuDnn 7.0至关重...

2018-07-05 11:44:00 143

原创 NLP之——Word2Vec详解

2013年,Google开源了一款用于词向量计算的工具——word2vec,引起了工业界和学术界的关注。首先,word2vec可以在百万数量级的词典和上亿的数据集上进行高效地训练;其次,该工具得到的训练结果——词向量(word embedding),可以很好地度量词与词之间的相似性。随着深度学习(Deep Learning)在自然语言处理中应用的普及,很多人误以为word2vec是一种深...

2018-06-28 19:29:00 187

原创 NLP基础——词集模型(SOW)和词袋模型(BOW)

(1)词集模型(Set Of Words): 单词构成的集合,集合自然每个元素都只有一个,也即词集中的每个单词都只有一个。(2)词袋模型(Bag Of Words): 如果一个单词在文档中出现不止一次,并统计其出现的次数(频数)。为文档生成对应的词集模型和词袋模型考虑如下的文档:dataset = [['my', 'dog', 'has', 'flea', 'problems',...

2018-06-27 13:56:00 335

原创 DSSM:深度语义匹配模型(及其变体CLSM、LSTM-DSSM)

导语在NLP领域,语义相似度的计算一直是个难题:搜索场景下Query和Doc的语义相似度、feeds场景下Doc和Doc的语义相似度、机器翻译场景下A句子和B句子的语义相似度等等。本文通过介绍DSSM、CNN-DSSM、LSTM-DSSM等深度学习模型在计算语义相似度上的应用,希望给读者带来帮助。1. 背景以搜索引擎和搜索广告为例,最重要的也最难解决的问题是语义相似度,这里主要体现...

2018-06-26 15:06:00 286

原创 【深度学习】一文读懂机器学习常用损失函数(Loss Function)

最近太忙已经好久没有写博客了,今天整理分享一篇关于损失函数的文章吧,以前对损失函数的理解不够深入,没有真正理解每个损失函数的特点以及应用范围,如果文中有任何错误,请各位朋友指教,谢谢~   损失函数(loss function)是用来估量模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失函数越小,模...

2018-06-23 14:46:00 384

原创 知乎问题代码

# -*- coding: utf-8 -*- """ Created on Sat May 19 18:44:40 2018 @author: John Kwok """ # import import numpy as np import tensorflow as tf&#13...

2018-06-02 22:50:00 109

原创 TensorFlow 常用函数汇总

本文介绍了tensorflow的常用函数,源自网上整理。   TensorFlow 将图形定义转换成分布式执行的操作, 以充分利用可用的计算资源(如 CPU 或 GPU。一般你不需要显式指定使用 CPU 还是 GPU, TensorFlow 能自动检测。如果检测到 GPU, TensorFlow 会尽可能地利用找到的第一个 GPU 来执行操作.并行计算能...

2018-05-19 16:30:00 92

原创 Python 中的 if __name__ == '__main__' 该如何理解

程序入口   对于很多编程语言来说,程序都必须要有一个入口,比如 C,C++,以及完全面向对象的编程语言 Java,C# 等。如果你接触过这些语言,对于程序入口这个概念应该很好理解,C 和 C++ 都需要有一个 main 函数来作为程序的入口,也就是程序的运行会从 main 函数开始。同样,Java 和 C# 必须要有一个包含 Main 方法的主类来作为程序入口。&...

2018-05-19 10:08:00 89

原创 【深度学习】目标检测算法总结(R-CNN、Fast R-CNN、Faster R-CNN、FPN、YOLO、SSD、RetinaNet)...

目标检测是很多计算机视觉任务的基础,不论我们需要实现图像与文字的交互还是需要识别精细类别,它都提供了可靠的信息。本文对目标检测进行了整体回顾,第一部分从RCNN开始介绍基于候选区域的目标检测器,包括Fast R-CNN、Faster R-CNN 和 FPN等。第二部分则重点讨论了包括YOLO、SSD和RetinaNet等在内的单次检测器,它们都是目前最为优秀的方法。 ...

2018-05-05 15:51:00 409

原创 《剑指offer》全部题目-含Java实现

陆续刷了好久,算是刷完了《剑指offer》,以下全部AC代码,不一定性能最优,如有错误或更好解答,请留言区指出,大家共同交流,谢谢~1.二维数组中的查找在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。public class Solution { pub...

2018-04-26 22:24:00 124

原创 SCNN车道线检测--(SCNN)Spatial As Deep: Spatial CNN for Traffic Scene Understanding(论文解读)...

Spatial As Deep: Spatial CNN for Traffic Scene Understanding 收录:AAAI2018 (AAAI Conference on Artificial Intelligence) 原文地址:SCNN 论文提出了一个新颖网络Spatial CNN,在图片的行和列上做信息传递。可以有效的识别强先验结构的目标...

2018-04-25 10:52:00 269 1

原创 有效防止softmax计算时上溢出(overflow)和下溢出(underflow)的方法

《Deep Learning》(Ian Goodfellow & Yoshua Bengio & Aaron Courville)第四章「数值计算」中,谈到了上溢出(overflow)和下溢出(underflow)对数值计算的影响,并以softmax函数和log softmax函数为例进行了讲解。这里我再详细地把它总结一下。 『1』什么是...

2018-04-21 13:08:00 225

原创 【深度学习】数据降维方法总结

引言:   机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中。降维的本质是学习一个映射函数 f : x->y,其中x是原始数据点的表达,目前最多使用向量表达形式。 y是数据点映射后的低维向量表达,通常y的维度小于x的维度(当然提高维度也是可以的)。f可能是显式的或隐式的、线性的或非线性的。   目前大部分降维算法处理向量...

2018-04-16 15:18:00 1355 1

原创 【深度学习】深入理解优化器Optimizer算法(BGD、SGD、MBGD、Momentum、NAG、Adagrad、Adadelta、RMSprop、Adam)...

在机器学习、深度学习中使用的优化算法除了常见的梯度下降,还有 Adadelta,Adagrad,RMSProp 等几种优化器,都是什么呢,又该怎么选择呢? 在 Sebastian Ruder 的这篇论文中给出了常用优化器的比较,今天来学习一下:https://arxiv.org/pdf/1609.04747.pdf 本文将梳理: 每个算法的梯度更...

2018-04-10 16:59:00 143

原创 【深度学习】深入理解ReLU(Rectifie Linear Units)激活函数

论文参考:Deep Sparse Rectifier Neural Networks(很有趣的一篇paper) Part 0:传统激活函数、脑神经元激活频率研究、稀疏激活性 0.1 一般激活函数有如下一些性质: 非线性: 当激活函数是线性的,一个两层的神经网络就可以基本上逼近所有的函数。但如果激...

2018-04-06 13:17:00 566

原创 【深度学习】深入理解Batch Normalization批标准化

这几天面试经常被问到BN层的原理,虽然回答上来了,但还是感觉答得不是很好,今天仔细研究了一下Batch Normalization的原理,以下为参考网上几篇文章总结得出。   Batch Normalization作为最近一年来DL的重要成果,已经广泛被证明其有效性和重要性。虽然有些细节处理还解释不清其理论原因,但是实践证明好用才是真的好,别忘了DL从H...

2018-04-05 21:50:00 291 1

原创 2018年奇虎360春招笔试题--玫瑰花

这道题,第一感觉想用排列组合做,但是想了好久,没想到解决办法(刚刚考试的时候没有答出来)。后来想了一下应该使用动态规划来做。 我们首先分析一下情况: 1.当K>N的时候,countSum = 0; 2.当K=N的时候,countSum = N!(N的阶乘) 3.当K>N的时候,就要通过最优子结构来进...

2018-04-03 23:48:00 86

原创 MaxPooling的作用

maxpooling主要有两大作用 1. invariance(不变性),这种不变性包括translation(平移),rotation(旋转),scale(尺度)2. 保留主要的特征同时减少参数(降维,效果类似PCA)和计算量,防止过拟合,提高模型泛化能力 (1) translation invariance:&#13...

2018-03-30 08:04:00 325

原创 网易笔试编程题:被3整除

小Q得到一个神奇的数列: 1, 12, 123,...12345678910,1234567891011...。 并且小Q对于能否被3整除这个性质很感兴趣。 小Q现在希望你能帮他计算一下从数列的第l个到第r个(包含端点)有多少个数可以被3整除。 输入描述: 输入包括两个整数l和r(1 <= l <= r <= 1e9), 表示要求...

2018-03-28 23:45:00 88

原创 网易笔试编程题:牛牛找工作

为了找到自己满意的工作,牛牛收集了每种工作的难度和报酬。牛牛选工作的标准是在难度不超过自身能力值的情况下,牛牛选择报酬最高的工作。在牛牛选定了自己的工作后,牛牛的小伙伴们来找牛牛帮忙选工作,牛牛依然使用自己的标准来帮助小伙伴们。牛牛的小伙伴太多了,于是他只好把这个任务交给了你。 输入描述: 每个输入包含一个测试用例。每个测试用例的第一行包含两个正整数,分别表示工作的...

2018-03-28 23:19:00 86

原创 剑指offer 第十二天

58.对称的二叉树请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) {...

2018-03-22 17:28:00 64

原创 算法题:合并N个长度为L的有序数组为一个有序数组(JAVA实现)

昨天面试被问到这道算法题,一时没有回答上来,今天思考了一下,参阅了网上的教程,做了一个JAVA版本的实现。 方案一: 新建一个N*L的数组,将原始数组拼接存放在这个大数组中,再调用Arrays.sort()进行排序,或者使用其它排序方法即可。 此方法时间复杂度为o(N*Llog2N*L); 具体代码实现如下: import j...

2018-03-21 19:00:00 331

原创 十分钟看懂神经网络反向传输算法

昨天面试被问到如何推导BP(反向传输)算法,顿时蒙住了,大体是知道反向传输算法的过程的,但是用语言描述出来,确实有些困难。回来后看了些博文,发现有的博文中公式推导过于复杂,不易理解,遂综合了网络中其他博文和斯坦福大学CS231n课程中的内容,整理了一份反向传输算法的通俗解释,如有错误,请各位网友指出。 一、反向传输(BP)算法的作用是什么? 首...

2018-03-21 15:03:00 176

原创 十大经典排序算法最强总结(含JAVA代码实现)

最近几天在研究排序算法,看了很多博客,发现网上有的文章中对排序算法解释的并不是很透彻,而且有很多代码都是错误的,例如有的文章中在“桶排序”算法中对每个桶进行排序直接使用了Collection.sort()函数,这样虽然能达到效果,但对于算法研究来讲是不可以的。所以我根据这几天看的文章,整理了一个较为完整的排序算法总结,本文中的所有算法均有JAVA实现,经本人调试无误后才发出,...

2018-03-19 10:14:00 105

空空如也

空空如也

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

TA关注的人

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