机器学习
文章平均质量分 96
sooner高
DeepFaceLab作者, Tensorflow & PyTorch contributor,深度学习小学生
展开
-
[生成模型新方向]: score-based generative models
0.前言最近(2021.6)发现了生成模型的一种新的trending范式: score-based generative model, 用一句话来介绍这种结构,就是:通过在噪声扰动后的大规模数据集(noise-perturbed data distributions)上学习一种score functions (gradients of log probability density functions)(得分函数, 一种对梯度的对数似然估计),用朗之万进行采样得到符合训练集的样本. 这种新的生成模型,翻译 2021-06-19 18:48:22 · 20676 阅读 · 9 评论 -
[OPENAI2021力作][CLIP: Connecting Text and Images]
本文翻译自OpenAI官方博客[1], 于2021年1月5日发布.0. 前言本博客是openAI的大佬们的全新作品,其提出了可以用于从自然语言监督信号中有效提取视觉信息的,名为CLIP的神经网络. CLIP可以被用于任何视觉分类的benchmark(仅需提供其对应的视觉类别即可), 同GPT-2/3类似,有着强大的"zero-shot"能力。我认为,CLIP和DALLE这2篇论文,核心是将万能的预训练模型扩展到多模态领域(visual-natural language)。这真心非常强…1. 开篇.翻译 2021-01-30 16:44:36 · 5676 阅读 · 1 评论 -
Yolov5 系列2--- 如何使用Yolov5训练你自己的数据集
上一篇《Yolov5 系列1— Yolo发展史以及Yolov5模型详解》讲了Yolo的发展历史,这一篇的目的是讲述如何使用Yolo v5训练自定的数据集,并会分析一些常见的选项以及背后的故事。相比第一部分《Yolov5 系列1— Yolo发展史以及Yolov5模型详解》的内容,本篇文章主要聚焦于使用代码进行训练,并对一些需要关注的点进行了说明。目的是让读者能够非常快的上手代码,训练其自己的目标检测任务。3. 配置Yolo v5的环境+准备数据集+训练[1]这部分主要参照Yolo v5作者Glenn.原创 2020-09-29 20:23:20 · 16496 阅读 · 11 评论 -
2017 LARS:LARGE BATCH TRAINING OF CONVOLUTIONAL NETWORKS (训练大Batch的卷积神经网络)
0. 写在前面前一段时间调研AI芯片在尽量保证准确率的情况下,如何快速训练大规模数据集并分析其可行性。UC Berkeley的大佬尤洋[1]的这篇<LARS:LARGE BATCH TRAINING OF CONVOLUTIONAL NETWORKS> 提供了一个很好的保证在大Batch Size的分布式训练情况下,精度损失很小的策略。下面, 让我们开始~1. 摘要 (Abstra...原创 2020-01-26 14:24:06 · 2484 阅读 · 0 评论 -
如何构建一个大脑---为工程师们介绍神经生理学.
日期: 2019.11.25 星期一 晚作者: Julius Kunze (这个小伙是UCL博士, 我是看他写了基于Jax的神经网络框架而关注他的, 他的这个项目是属于刚刚起步阶段, 只有他自己1个人提交代码.)译者: Samuel Ko(即本人)1. 为什么想要翻译这篇文章?因为我看到这篇文章的中段, 里面以生物学的角度阐述了membrane potential的变化情况, 这在之前...转载 2019-12-02 18:20:09 · 1105 阅读 · 1 评论 -
2018 Iterative Visual Reasoning Beyond Convolutions 论文梳理
18年是GNN开始初出茅庐也是大放异彩的一年, 这篇论文是李飞飞团队的关于GNN在CV领域中的一个开拓性的应用.甚至作者陈鑫磊称, 通过结合CNN和GNN, 本文发明了&amp;quot;下一代的视觉识别系统&amp;quot;. 这个观点是不是很让人瑟瑟发抖? 好了, 下面开始分析论文结构和代码组成.0. 论文简述近年来, 由于卷积神经网络的大放异彩, 我们在如图像分类, 图像分割等经典的CV任务中取得了很大的进展. 但是...原创 2019-01-12 11:52:37 · 2497 阅读 · 2 评论 -
Tensorflow③ Keras的LSTM和TF的LSTM实现的源码剖析
最近在做可以转成pb模型的RNN/LSTM层的实现细节分析。经过一些分析,发现了在Keras里面常见的keras.layers.LSTM和Tensorflow的tf.contrib.rnn.LSTMCell有一些实现上面的区别。本文将立足于Keras和Tensorflow源码,分别搭建两个简单的一层LSTM的神经网络,验证权重的解析顺序及计算逻辑的正确性。Let’s roll~0. 常见的L...原创 2018-12-19 13:00:18 · 8716 阅读 · 25 评论 -
PyTorch学习笔记(13)——强力的可视化工具visdom
今天,让我们来放松一下大脑,学习点轻松的东西————可视化工具Visdom,它可以让我们在使用PyTorch训练模型的时候,可视化中间的训练情况,无论是loss变化还是中间结果比较。相比干呆呆的瞪着命令行,Visdom让我们的调参之路变得更加生动和活泼了.~0. 前言对于一些任务,尤其是难以收敛以及情况复杂的,如果在训练过程中,实时可视化训练情况,将会让我们对训练手段进行及时调整,更好的达...原创 2018-11-27 18:47:24 · 5744 阅读 · 0 评论 -
Tensorflow② c++接口加载模型推理单张图片
tensorflow的官网上提供很详细的python教程,也确实很好用。但是,应用软件产品大多用c/c++写的。所以,大部分的应用都是用python来训练模型,得到训练好的模型后. 用c++调用tensorflow模型进行推理。通过收集资料,总结了方法.1. 使用python训练模型,并保存模型a.训练并保存模型sess = tf.Session(config=config) #sess...原创 2018-11-06 18:39:54 · 4267 阅读 · 11 评论 -
CNN概念之上采样,反卷积,Unpooling概念解释
前言 本文译自quora上对《What is the difference between Deconvolution, Upsampling, Unpooling, and Convolutional Sparse Coding?》的回答。个人觉得这位老哥的回答很简洁干练。所以转到这里。Upsampling(上采样)在FCN、U-net等网络结构中,我们见识到了上采样这个东西。...翻译 2018-09-03 16:54:29 · 22350 阅读 · 11 评论 -
2017 Deformable ConvNets V1介绍及分析(包括代码)
最近Deformable Conv V2比较火, Deformable Conv的概念是MSRA的戴季峰等人提出来的, 挺不错的一个东西, 对于有形变的物体的识别效果很好, 今天先把其前身Deformable ConvNets V1做个总结, 以便打好学习Deformable ConvNets V2的基础. 发现了一个特别好的博客 imperfect00——deformable convolut...原创 2019-01-23 15:25:33 · 3315 阅读 · 3 评论 -
Nevergrad: 一个Facebook发布的derivative-free的开源优化工具包
本文翻译自Olivier Teytaud等人于2018年底发布在code.fb.com上的一篇文章Nevergrad: An open source tool for derivative-free optimization . Nevergrad是一个新颖的东西, 按开发者的意思, 未来要将其纳入到对PyTorch等AI框架的支持中, 这引起了我的一点点兴趣, 下面开始贴正文.0. 前言...翻译 2019-02-28 13:45:53 · 1472 阅读 · 2 评论 -
2018 Additive Attention分析及代码
最近需要评估一些self-attention模块的效果, 除了简单好用的Squeeze-Excitation外, Additive Attention (AA) 是最近开始受到人们注意的一个新型self-attention的注意力机制, 来自犹他大学和亚马逊的作者们, 原意是将其用在BiLSTM的序列模型中的, 但是因为我是做CV方向的, 所以借由他的实现, 参考论文, 实现了精简版的(即可以...原创 2019-03-29 18:03:26 · 4825 阅读 · 5 评论 -
2017 如何训练一个GAN网络
GAN, 作为一种非常厉害的生成模型, 在近年来得到了广泛的应用. Soumith, PyTorch之父, 毕业于纽约大学的Facebook的VP, 在2015年发明了DCGAN: Deep Convolutional GAN. 它显式的使用卷积和转置卷积在判别器和生成器中使用. 他对GAN的理解相对深入, 特地总结了关于训练GAN的一些技巧和方式, 因为不同于一般任务, 像设置优化器, 计算l...翻译 2019-04-08 22:26:56 · 4825 阅读 · 0 评论 -
2018 轻量化网络Mobilnet v2
0. MobileNet介绍MobileNet是M为移动和嵌入式设备提出的高效模型。MobileNet基于流线型(streamlined) 架构,使用深度可分离卷积(depthwise separable convolutions, 即Xception变体结构, 详细请参考干巴他爹–Depthwise卷积与Pointwise卷积)来构建轻量级深度神经网络。论文验证了MobileNet在目标检测...原创 2019-05-13 14:20:17 · 1154 阅读 · 0 评论 -
基于TensorRT 5.x的网络推理加速(python)
本文目的主要在于如何使用TensorRT 5.x的python api来进行神经网络的推理。因为目前TensorRT只支持ONNX,Caffe和Uff (Universal Framework Format)这三种格式。这里以tensorflow的pb模型为例(可以无缝转换为uff)进行说明。0. TensoRT介绍TensorRT是英伟达(NVIDIA)开发的一个可以在NVIDIA旗下...原创 2019-06-15 10:30:02 · 8037 阅读 · 7 评论 -
ON-LSTM:用有序神经元表达层次结构
本文转载自 苏剑林[1]在科学空间上关于ON-LSTM非常好的解析, 中间加入一些细节的说明, 以期读者在理解原理之余, 对其实现也有概念. 下面开始…前言今天介绍一个有意思的LSTM变种:ON-LSTM,其中“ON”的全称是“Ordered Neurons”,即有序神经元,换句话说这种LSTM内部的神经元是经过特定排序的,从而能够表达更丰富的信息。ON-LSTM来自文章《Ordered ...转载 2019-08-20 11:18:58 · 2079 阅读 · 2 评论 -
反卷积的棋盘格效应
本文译自来自谷歌大脑的AUGUSTUS ODENA等人的文章: Deconvolution and Checkerboard Artifacts[1], 虽然是16年的博客了, 但是其对解释反卷积的棋盘效应已经如何规避都给出了非常好和到位的意见. 下面让我们开始~前言当我们分析由神经网络生成的图片的时候, 常常会发觉有一种奇怪的人造物 (artifacts) 的棋盘格效应 (checker...翻译 2019-09-30 19:12:01 · 9367 阅读 · 2 评论 -
PRML(一)如何根据贝叶斯理论推导多项式曲线拟合问题的cost function
马上要成为一个ML/DL方向的工程师,PRML作为经典教材,对于理解一些常用算法的intuition和motivation是非常有益的。虽然是2006年出版的一本书,但是有很多内容仍然值得学习和反思。加之本书有一些习题可以巩固思考,今天开始踏入PRML的学习。① 理论基础 如何根据贝叶斯理论推导多项式曲线拟合问题的损失函数,这个需要的基本概率论基础如下加法公式 p...原创 2018-05-26 22:19:54 · 3215 阅读 · 0 评论 -
机器学习算法——集成方法(Ensemble)之Stacking
本文是基于《kaggle比赛集成指南》来进行总结的概述什么是集成学习,以及目前较为常用的技术。这里主讲的集成学习技术用于分类任务,关于回归和预测这块不太了解,读者可自行查询相应博客或者论文。1 什么是模型的集成?集成方法是指由多个弱分类器模型组成的整体模型,我们需要研究的是:① 弱分类器模型的形式 ② 这些弱分类器是如何组合为一个强分类器学习过机器学习相关基础的童...原创 2018-05-06 17:13:52 · 26508 阅读 · 4 评论 -
Resnet学习和理解
一直以来,经常在各种复杂的结构中使用或者听说过Resnet的名字,但是一直也没有学习过这篇文章,现在趁着有时间,学习一下Resnet——何凯明等人于2015年年底发表的《Deep Residual Learning for Image Recognition》。一、Resnet的背景深度神经网络(DCNN)结构是很难训练的,这里我们提出一种叫做“residual learnin...原创 2018-03-28 15:00:23 · 3922 阅读 · 0 评论 -
机器学习基础——实现基本的决策树
一、决策树基本流程 决策树是常见的机器学习方法。我在学习周志华的机器学习的时候,用python实现了最基础的ID3算法,其基本思想是:基于信息论中的信息增益理论,首先找出判断样本的最高的信息增益的属性(或者说特征),然后依次对按该属性划分成的子集进行同样的选择信息增益最大的属性并进行划分的过程。这是一个典型的(divide-conquer)的过程。二、最基本的决策树实现原创 2017-03-20 10:39:26 · 651 阅读 · 0 评论 -
欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2017-04-08 09:08:36 · 302 阅读 · 0 评论 -
机器学习基础——RandomForest
随机森林(Random Forest): 随机森林是一个最近比较火的算法,它有很多的优点: 在数据集上表现良好 在当前的很多数据集上,相对其他算法有着很大的优势 它能够处理很高维度(feature很多)的数据,并且不用做特征选择 在训练完后,它能够给出哪些feature比较重要 在创建随机森林的时候,对generlization error使用的原创 2017-04-19 11:43:11 · 782 阅读 · 0 评论 -
机器学习基础——梯度下降
一、概述最近看了随机梯度下降算法,虽然比较基础简单,但是在机器学习领域里面有着广泛的运用。这里将随机梯度下降(Stochastic gradient descent)和 批量梯度下降(Batch gradient descent )进行对比。以便理解和记忆。 二、梯度下降梯度下降法: ①先随机给出参数的一组值,然后按代价函数(或者叫损失函数)的梯度方向更新参数。使得在每次更新后,结构都原创 2017-04-23 08:14:17 · 829 阅读 · 2 评论 -
python神经网络实现
前言最近实习单位在搞电网数据的清洗程序改写,用到了稀疏编码器,关于稀疏编码器的原理部分,可以参见下面的文档,这里可以这么简单理解:就是通过对代价函数设置交叉熵等误差项,使得输出层和输入层是基本一致的。 但是,实际上,Sparse AutoEncoder是来源于传统神经网络的。由于要在集群上跑,对速度要求很高,而且sklearn的包的神经网络api中没有稀疏编码器,有一些如同MLPclas原创 2017-05-10 08:06:21 · 2335 阅读 · 0 评论 -
理解 LSTM 网络
Recurrent Neural Networks本文在翻译自:Christopher Olah LSTM的基础上,做了一些增改。 人类并不是每时每刻都从一片空白的大脑开始他们的思考。在你阅读这篇文章时候,你都是基于自己已经拥有的对先前所见词的理解来推断当前词的真实含义。我们不会将所有的东西都全部丢弃,然后用空白的大脑进行思考。我们的思想拥有持久性。 传统的神经网络并不能做到这点,看起来也像是翻译 2017-05-21 09:01:53 · 779 阅读 · 0 评论 -
机器学习基础——Adaboost
一、前言最近吴恩达的机器学习课程已经快学习完了。作为一个转行人员,发现学习的算法还是有点少,加上这一阵看了不少同志的面试经验,发现Gradient Boosting以及相关的GBDT等算法是比较基础的。但是看了一下GB,发现这个没有具体实例,不太直观,加之看过不少人和书上的内容。Adaboost是Boosting族算法中最著名的,而且还是比较好懂的。特此总结一下。二、Adaboost原理和Boost原创 2017-04-08 09:44:25 · 648 阅读 · 0 评论 -
XGBoost-Python完全调参指南-参数解释篇
本文转自XGBoost-Python完全调参指南-参数解释篇。对XGBoost有需要小伙伴可以参看。并在此基础上,添加了一些内容。在analytics vidhya上看到一篇《Complete Guide to Parameter Tuning in XGBoost in Python》,写的很好。因此打算翻译一下这篇文章,也让自己有更深的印象。具体内容主要翻译文章的关键意思。这篇文章按照原文的分转载 2017-06-17 18:28:21 · 1316 阅读 · 0 评论 -
XGBoost原理
前言 之前接触并实现过Adaboost和Random Forest。作为去年开始很火爆的,对结构化数据效果极佳的XGBoost,当然也需要了解一下了。下面将分段叙述XGBoost原理,以及与GBDT的关系等等内容。①、XGBoost vs GBDT说到XGBoost,不得不说GBDT,两者都是boosting方法。GBDT可以看成是Adaboost的前向逐步递增推导形式(——因为直接找原创 2017-06-18 08:54:20 · 13950 阅读 · 11 评论 -
DeepLearning tutorial ①
前言: 最近需要使用LSTM做情感分析,看了一个基于Theano的实现,发现有很多内容需要自己写,不便于便捷开发。这篇文章先介绍几大常用深度学习框架(Caffe、Theano、TensorFlow、Torch及Mxnet),然后简单介绍基于Theano和TensorFlow的高级框架Keras。一、几种常见的深度学习框架下图是CS231n Deep Learning课程上的助教Justin原创 2017-06-03 16:19:42 · 731 阅读 · 0 评论 -
机器学习基础——支持向量机
前言 最开始接触SVM是在吴恩达的课程上,展示了一个例子:用SVM将人声从环境声中单独剥离出来。后来,在吴教授的Coursera机器学习课程中监督学习部分的末尾,讲述了SVM。但是他所讲述的SVM是基于逻辑回归修改而得来的。这个东西确实不太好明白,目前我也只是将自己的理解结合July的资料整理描述出来,在未来会继续的修正与更新这块内容,下面就开始我的粗浅的认识。一、转载 2017-03-24 09:42:56 · 2256 阅读 · 0 评论 -
关于深度学习优化器 optimizer 的选择,你需要了解这些
在很多机器学习和深度学习的应用中,我们发现用的最多的优化器是 Adam,为什么呢?下面是 TensorFlow 中的优化器, https://www.tensorflow.org/api_guides/python/train 在 keras 中也有 SGD,RMSprop,Adagrad,Adadelta,Adam 等: https://keras.io/optimizers/我们可以转载 2017-08-03 18:17:22 · 26263 阅读 · 4 评论 -
FM算法(Factorization Machine)
因子分解机(Factorization Machine, FM)是由Steffen Rendle提出的一种基于矩阵分解的机器学习算法。目前,被广泛的应用于广告预估模型中,相比LR而言,效果强了不少。一、FM背景FM(Factorization Machine)主要目标是:解决数据稀疏的情况下,特征怎样组合的问题。以一个广告分类的问题为例,根据用户画像、广告位以及一些其他的特征,来预测用户是否会点击原创 2017-08-20 17:31:23 · 33961 阅读 · 4 评论 -
数据(机器学习/深度学习)竞赛平台——Kaggle
这篇文章适合那些刚接触Kaggle、想尽快熟悉Kaggle并且了解项目情况的朋友。本文分为两部分介绍Kaggle,Part One简单介绍Kaggle,Part Two将简单介绍正规的竞赛的项目,大家可以针对性的解决感兴趣的题目。1、Kaggle简介Kaggle是一个数据分析的竞赛平台,网址:https://www.kaggle.com/企业或者研究者可以将数据、问题描述、期望的指标发布到Kagg原创 2017-08-14 19:03:13 · 31563 阅读 · 1 评论 -
Python Numpy Tutorial——CS231n
开始学习CS231n,在Notes里面看到关于Numpy等内容的预备知识,现翻译一下此教程里,个人认为比较重要的内容在开始前,此教程的地址为:Python Numpy Tutorial. 有需要的同学可以直接查阅。NumpyNumpy是Python用于科学计算的核心库。它提供了高性能的多维度数组对象及操作数据的工具。如果你已对MATLAB比较熟悉了,那么这个教程对你开始使用Numpy会很有益处。翻译 2017-12-19 17:23:07 · 2563 阅读 · 0 评论 -
机器学习基础——BP算法
BP后向传播算法前言昨天看到了一篇关于BP后向传播的论文,想着把这方面的知识彻底理解一下,本文将基于该论文和基本的BP算法。解释其基本概念和权值调整的运算过程。一、BP神经网络的基本原理 BP(Back Propagation)网络是1986年由Rinehart和McClelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习原创 2017-04-29 06:56:32 · 12372 阅读 · 2 评论 -
The Meltdown bug and the KPTI patch: How does it impact ML performance?
原文地址 https://medium.com/implodinggradients/meltdown-c24a9d5e254e 作者:Mikel Bober-Irizar前言 (备注:KPTI 在计算机中指 Kernel page-table isolation,是一种Linux内核功能,可以减弱安全漏洞带来的影响)2018年一开始,网上曝出了两个非常严重的新漏洞翻译 2018-01-08 17:35:13 · 610 阅读 · 0 评论 -
机器学习基础——PCA(主成分分析)
一、什么是PCA? 在数据挖掘或者图像处理等领域(大维度数据)经常会用到主成分分析(Principle Component Analysis),这样做的好处是使要分析的数据的维度降低了,在减小计算所需消耗的内存并提高运算速度的情况下,能够将数据的主要信息保留下来。PCA是最常见的降维算法,其定义,可以从两个方面来理解;①最大化投影后数据的方差(让数据更分散);②最小化投影造成的损失。原创 2017-03-26 12:41:00 · 1434 阅读 · 1 评论