islouishsu / islouishsu.github.io Goto Github PK
View Code? Open in Web Editor NEWMy Blog :-)
Home Page: https://louishsu.xyz/
My Blog :-)
Home Page: https://louishsu.xyz/
Tree1234567891011121314151617181920$ tree -L 1.├── cfg/├── data/├── examples/├── include/├── python/├── scripts/├── src/├── LICENSE├── LICENSE.fuck├── LICENSE.gen├── LICENSE.gpl├── LICENSE.meta├── LIC
https://louishsu.xyz/2018/10/18/Linear-Regression/
引言线性回归可以说是机器学习最基础的算法 模型\hat{y}^{(i)} = w^Tx^{(i)}其中 x^{(i)}=[x_0^{(i)}, x_1^{(i)}, ..., x_n^{(i)}]^T, x_0^{(i)}=1这里$x_0^{(i)}=1$表示偏置$b$,即$b=w_0$ \hat{y}^{(i)} = w^Tx^{(i)} + b 注:对于非线性的数据,可构造高次特征。 损失函
https://louishsu.xyz/2019/07/13/SphereFace-CosFace-ArcFace/
文中合成gif图不清晰,原图可在该页面下载获取 前言深度神经网络可将样本映射到超空间中的嵌入向量,然而若不在损失中增加几何约束,该超空间中的嵌入向量不具有几何意义。现对空间中嵌入向量间的余弦距离研究甚是火热,可用于open-set数据集的识别问题,特别是人脸验证问题。 所谓open-set与close-set,是指训练集中是否包含测试集中的类别,如人脸问题中,训练集不可能包含所有人的人脸数
https://louishsu.xyz/2019/01/04/Python%E6%9B%B4%E6%96%B0%E5%AE%89%E8%A3%85%E7%9A%84%E5%8C%85/
pip不提供升级全部已安装模块的方法,以下指令可查看更新信息1$ pip list --outdate 得到输出信息如下123456789101112131415161718192021222324Package Version Latest Type----------------- --------- ---------- -----absl-py
线性表数据结构定义:线性表(linear list)也称有序表(ordered list),他的每一个实例都是元素的一个有序集合。对于形如$(e_0, e_1, \dots, e_{n-1})$的实例,$n$为有穷自然数表示线性表的长度或大小,$e_i$为线性表的元素,$i$是元素$e_i$的索引。可以认为$e_0$先于$e_1, \cdots, e_{n-1}$,除了这种先后关系外,线性表不再有
https://louishsu.xyz/2019/07/21/%E4%BA%BA%E9%97%B4%E5%A4%B1%E6%A0%BC/
人类是群居的孤独者。 第一手札 尽管如此,他们却能够不死自杀,免于疯狂,纵谈政治,竟不绝望,不屈不挠,继续与生活搏斗。他们不是并不痛苦吗?他们使自己成为彻底的利己主义者,并虔信那一些里所担任,曾几何时怀疑过自己呢?这样一来,不是很轻松惬意吗? 太平洋战争爆发后,当时的许多作家纷纷创造起了激发人们战斗欲望的小说作品,唯独太宰治不一样,他从不去碰战争题材,相反的,太宰治为了让那些为了度过困难时期
https://louishsu.xyz/2019/08/21/Eigenface-and-Fisherface/markdown/main/
Contents Contents Introduction of Dataset Introduction of Methods Eigenface Fisherface Implementation Import modules PCA LDA Functions Experiments Load data Eigenface Fisherface Reference Imple
https://louishsu.xyz/2018/11/19/Non-parameter-Estimation/
前言若参数估计时我们不知道样本的分布形式,那么就无法确定需要估计的概率密度函数,无法用最大似然估计、贝叶斯估计等参数估计方法,应该用非参数估计方法。 需要知道的是,作为非参数方法的共同问题是对样本数量需求较大,只要样本数目足够大众可以保证收敛于任何复杂的位置密度,但是计算量和存储量都比较大。当样本数很少时,如果能够对密度函数有先验认识,则参数估计能取得更好的估计效果。 基本原理若有$M$个样本$x
https://louishsu.xyz/2019/02/19/Python%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%A0%BC%E5%BC%8F%E5%8C%96/
前言Python操作字符串行云流水,当然也支持格式化字符串。 通过格式符1print("我叫%s, 今年%d岁" % ('Louis Hsu', 18)) 或者使用字典进行值传递1print("我叫%(name), 今年%(age)岁" % {'name': 'Louis Hsu', &a
https://louishsu.xyz/2018/10/18/Logistic-Regression/
引言逻辑回归(Logistic Regression)是用于处理因变量为分类变量的回归问题,常见的是二分类或二项分布问题,也可以处理多分类问题,它实际上是属于一种分类方法。 模型先给出模型,推导过程稍后给出,逻辑回归包含Sigmoid函数 f(z) = \frac{1}{1+e^{-z}}其图像如下 定义 z = w^Tx其中$x=[x_0, x_1, …, x_n]^T, x_0=1$ h_w(
https://louishsu.xyz/2019/05/05/Face-Detection-MTCNN/
前言MTCNN即Multi-task Cascaded Convolutional Networks,利用深度学习方法进行人脸识别、检测与关键点定位,可谓结合机器视觉领域三大任务为一体。 该算法中,人脸检测与识别视作分类任务,即判别框内图像是否包含人脸;定位视作回归任务,共需确定7个坐标点,依次为:回归框左上、右下坐标,左眼、右眼、鼻尖、左嘴角、右嘴角坐标。 在设计损失函数时,分类任务采用交叉熵(
前言记录一下详细的MTCNN训练过程,之前损失函数的问题,训练得到网络效果一般,就拖到了最近。原理在之前写的博客Face Detection: MTCNN中已说明,本文不做详细介绍。详细代码可见本人代码仓库MTCNN_Darknet - Github。 数据集 数据集使用的是WIDER FACE: A Face Detection Benchmark与Deep Convolutional Net
https://louishsu.xyz/2019/08/10/%E6%8C%AA%E5%A8%81%E7%9A%84%E6%A3%AE%E6%9E%97/
前言Reference 没有人喜欢孤独,只是不愿失望。 时至今日,我才恍然领悟到直子之所以求我别忘掉她的原因。直子当然知道,知道她在我心目中的记忆迟早要被冲淡。也惟其如此,她才强调说:希望你能记住我,记住我曾这样存在过。 想到这里,我就悲哀得难以自禁。因为,直子连爱都没爱过我的。 死并非生的对立面,而作为生的一部分永存。 或许我的心包有一层硬壳,能破壳而入的东西是极其有限的。所以我才不能对人
https://louishsu.xyz/2019/12/04/gcc-g-%E7%89%88%E6%9C%AC%E5%88%87%E6%8D%A2/
前言gcc/g++为Linux下C/C++编译器,但版本差异较大,如CUDA编译时不支持gcc-6之后的版本,故需要安装多个版本适应开发任务。 详细Ubuntu 18.04预装gcc/g++ 7.3,若需要安装gcc/g++-5,详细操作步骤如下 1234567891011121314151617181920212223242526272829303132333435363738394041424
https://louishsu.xyz/2019/08/09/Locally-Linear-Embedding/
前言12345678910111213141516171819 ________< LLE很靠谱 > ----------- \ / \ //\ \ |_/| / // \ /0 0 _ / // | \ \ / /
https://louishsu.xyz/2019/09/01/YOLO-v1-v2-v3/
前言YOLO是You Only Look Once的简称,是one-stage检测算法,在2016年刚提出时风靡一时,现在看可能存在一些缺点,后续有许多one-stage检测算法都参考YOLO的思路,如SSD。目前位置,YOLO共发布了3代,论文链接在Reference中。 YOLOv1YOLO的一个关键点是,将目标检测作为回归任务,将分离的边界框回归和分类联合起来,可进行端到端的优化。 We
https://louishsu.xyz/2018/10/25/TF-IDF/
引言正在做LintCode上的垃圾邮件分类,使用朴素贝叶斯方法解决,涉及到文本特征的提取。TF-IDF(词频-逆文档频率)算法是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。 计算步骤词频(TF)Term Frequency,就是某个关键字出现的频率,具体来讲,就是词库
https://louishsu.xyz/2019/04/22/LDA/
前言在PCA中,介绍了无监督降维方法,主成分分析(Principal Components Analysis)。从投影后数据方差最大的角度出发,选取主轴。下面介绍一种有监督的降维方法,线性判别分析(Linear Discriminant Analysis)。 原理设有$n$维样本集$D={x^{(1)}, …, x^{(i)}, …, x^{(m)}}$,所属类别数目为$C$,现求其第一投影轴
https://louishsu.xyz/2019/05/27/Support-Vector-Machine/
前言Github: isLouisHsu/Basic-Machine-Learning-Algorithm/algorithm/p97_svm.py 补一补支持向量机的笔记。 支持向量机(SVM)为有监督学习算法,可用于回归、分类甚至聚类(支持向量聚类),其主要特点为 将样本表示为超空间中的点; 求取支持向量,其余样本点对超平面无影响; 对于线性不可分问题,利用核函数映射到高维空间,使其线性可分
https://louishsu.xyz/2019/10/09/CenterNet-Objects-as-Points/
前言目前大多检测算法将物体视作边界框进行检测,并采用锚框(Anchor),能很大程度提升检测算法的表现,但是Anchor难以确定参数,且增加大量网络运算量。目前的物体检测算法开始向无Anchor的方向发展,如本文的CenterNet,是把物体所在包围框作为点,并结合热图的形式进行。除物体检测外,此算法还可用于人体姿态识别、3D物体检测等。 论文阅读Introduction In this pape
前言前一节介绍了如何调用函数进行网络的训练,本节扒一扒源码,详细介绍前向、反向、更新部分。查看本节内容要有BP算法的基础,以全连接网络为例,详细查看全连接网络BP算法推导【矩阵形式】。 Dataflow运算过程中最重要的是数据的传递,在整个过程中,向系统申请的内存资源(部分)列表如下| 内存地址指针 | 类型 | 功能 || :———————— | :—- | :—- || dat
https://louishsu.xyz/2019/08/20/Eigenface-and-Fisherface/
前言在众多人脸图像中,能否找到特一组特征脸,用于表征其他人脸呢?在PCA和LDA中分别介绍了两种线性降维方法,本文介绍一种使用以上两种算法的特征提取方法。 原理EigenfaceEigenface由Sirovich与Kirby在1987年提出,认为人脸图像可由一系列特征图加权组合重构而成,即 F = F_m + \sum_i w_i F_i \tag{1}Eigenface可通过PCA生成,在大量
https://louishsu.xyz/2018/10/23/SVD/
引言奇异值分解Singular Value Decomposition是线性代数中一种重要的矩阵分解,奇异值分解则是特征分解在任意矩阵上的推广。在信号处理、统计学等领域有重要应用。 原理从特征值分解(EVD)讲起我们知道对于一个$n$阶方阵$A_{n×n}$,有 A\alpha_i = \lambda_i \alpha_i i = 1, ..., n取 P = \left[\alpha_1,
一个无趣的工科男说, 总想写点什么东西, 内心肿胀,却无从下笔。 所以我们 —— 推公式吧!:-) 的确是孤独的过程, 但并非受人之托在写, 不能带着抱怨。 也许什么时候, 就开始写写, 再写写, 再写写。 致 —— 未落笔的鸡汤文。
前言本节以YOLO为例,介绍如何调用darknet函数来进行网络训练和测试,对框架有一个整体的认识。 Main主函数入口在examples/darknet.c/main,命令行指定参数yolo即可进入yolo的运行函数段12$ ./darknet yolousage: ./darknet yolo [train/test/valid] [cfg] [weights (optional)] 由以下代
https://louishsu.xyz/2019/05/26/NMS-softer-NMS/
前言在目标检测中,若多个回归框(Bounding Box)重叠内容较多,则可以保留其中几个,删除其余冗余的框,非极大值抑制(Non-Maximum Suppression, NMS)算法可实现该功能。 那么用什么指标评价两个回归框重叠过多呢,以下介绍图像的交并比IoU(Intersection over Union)。 IoU原理IoU的思路非常简单,即计算两个回归框交集部分面积与并集面积的比值,
论文可从Recent Advances in Deep Learning for Object Detection - arXiv.org下载。 Content Abstract Object detection is a fundamental visual recognition problem in computer vision and has been widely studied in
https://louishsu.xyz/2019/08/09/Python%E7%94%9F%E6%88%90Markdown%E8%A1%A8%E6%A0%BC/
前言Reference前言Markdown中编辑表格比较繁琐,如编辑下表时,需要按字符输入 姓名\科目 A B C D 小妖 3 4 5 3 小怪 4 5 3 4 小兽 5 3 4 5 12345| 姓名\科目 | A | B | C | D || :------: | - | - | - | - || 小妖 | 3 | 4 | 5 | 3 || 小怪
前言在Feedforward Neural Network/5. 梯度推导中介绍了前馈神经网络的BP算法,但是推导结果为对元素的梯度,不便于编程且影响计算效率。本节以3层前馈全连接神经网络为例,介绍矩阵形式的BP算法推导。 网络定义定义多层全连接网络:【输入(input)】 -> 全连接层 -> sigmoid -> 【隐藏层(hidden)】-> 全连接层 -> 【
简介《教父》三部曲每一部都很精彩,第二部主角是个活生生的反例,可能稍逊一筹。 第一部《教父》介绍的是柯里昂家族反对毒品交易而引起的大风波,是三部曲中唯一一部被拍成电影的书(电影《教父Ⅰ》完美还原,表现力很强,但缺少细节导致剧情不太连续)。个人认为,维托·唐·柯里昂是三部曲中唯一一位称得上是教父的人,其度量、耐心、冷静与智慧让人折服。教父因拒绝毒品交易被枪击,随后小儿子迈克·柯里昂替父报仇潜逃西西
https://louishsu.xyz/2019/08/12/Neighborhood-Preserving-Embedding/
前言Reference前言在Locally Linear Embedding一节中介绍了非线性降维方法LLE,原数据到低维数据没有指定映射方法,故不适用于新数据点。本文介绍的NPE是在其基础上的改进。 原理设有$M$个$N$维数据,构成矩阵$X$ X_{N \times M} = \left[ \begin{matrix} | & | &
https://louishsu.xyz/2018/10/22/PCA/
引言PCA全称Principal Component Analysis,即主成分分析,是一种常用的数据降维方法。它可以通过线性变换将原始数据变换为一组各维度线性无关的表示,以此来提取数据的主要线性分量。 向量的投影现有两个任意不共线向量$\vec{u}, \vec{v}$,将$\vec{u}$投射到$\vec{v}$上 投影后,可以得到两个正交向量 \vec{u}' · (\vec{u} - \
https://louishsu.xyz/2019/01/05/Cmake%E7%BC%96%E8%AF%91%E5%BA%93%E6%96%87%E4%BB%B6/
前言库文件即源代码的二进制文件,我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库;动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。 编译以DarkNet为例,我们将其源代码编译成.a静态库文件。 下载源码 YOLO: Real-Time
https://louishsu.xyz/2019/09/02/SSD-Single-Shot-MultiBox-Detector/
IntroductionSSD主要做了以下工作 设计了one-stage检测算法,比同样是one-stage的YOLOv1更快更准确,相比较Faster R-CNN等two-stage检测算法,在不降低准确率的情况下速度更快; 其核心是用小卷积核,对特征图进行卷积运算,通过一系列的固定回归框进行预测; 用不同尺度的特征图产生不同尺度的预测,并且明确指定多种纵横比; 可进行端到端训练,即使是低分辨
前言C/C++的参数传递我们知道C/C++主函数形式如下12345int main(int argc,char * argv[],char * envp[]){ // do something return 0;} 其中各参数含义如下 argc:argument count,表示参数数量 argv:argument value,表示参数值 最后一个元素存放了一个
https://louishsu.xyz/2019/01/05/makefile%E7%AE%80%E5%8D%95%E6%95%99%E7%A8%8B/
前言准备源文件新建目录demo/,其结构如下123456789demo├─bin # 二进制文件,即可执行文件├─include # 头文件.h
│ hello.h│├─obj # 目标文件.o
└─src # 源文件.c
hello.c test.c 编辑hello.h12345678#ifndef __HELLO_H#defi
树定义:一棵树$t$是一个非空的有限元素的集合,其中一个元素为根(root),其余元素组成$t$的子树。根据树的形态,有如下术语:孩子(child)、父母(parent)、兄弟(sibling)、孙子(grandchild)、祖父(grandparent)、祖先(ancestor)、后代(descendent)等等。树中没有孩子的元素称作叶子(leaf)。 树的另一常用术语为级(level)。树根
栈定义及抽象数据描述定义:栈(stack)是一种特殊的线性表,其插入(aka. 入栈、压栈)和删除(aka. 出栈、弹栈)操作在表的同一端进行,即后进先出(last-in-first-out, LIFO)。两端称作栈顶(top)、栈底(bottom)。 抽象数据描述:1234567891011抽象数据类型 stack{ 实例: linearList; 操作:
https://louishsu.xyz/2018/10/20/Feedforward-Neural-Network/
前言前馈神经网络是一种最简单的神经网络,各神经元分层排列。每个神经元只与前一层的神经元相连。接收前一层的输出,并输出给下一层.各层间没有反馈。是目前应用最广泛、发展最迅速的人工神经网络之一,既可以用于解决分类问题,也可以用于解决回归问题。 简介前馈神经网络也叫作多层感知机,包含输入层,隐含层和输出层三个部分。它的目的是为了实现输入到输出的映射。 y = f(x;W)由于各层采用了非线性激活函数,
前言目前可用于深度学习的著名框架有 tensorflow pytorch keras theano caffe … 这些给广大调参狗带来便利,但不利于学生党理解底层实现,例如神经网络的BP算法。 darknet是C语言实现的深度学习开源代码,细细品读,收获颇丰,开源**! 附上官网链接和Github地址 YOLO: Real-Time Object Detection pjreddie/d
https://louishsu.xyz/2019/05/26/mAP/
前言本文介绍一种目标检测任务的评价指标mean Average Precison(mAP),有以下几个重点 如何绘制Precision-Recall曲线; 如何用插值方法计算Average Precison; 理解目标检测中mAP的计算; Precision, Recall, Average Precision计算方法以上定义查看Metrics/分类(classification)评估指标,计
https://louishsu.xyz/2019/08/27/Batch-Normalization/
前言深度学习网络可通过mini-batch随机梯度下降的方式进行优化,然而在优化过程中,存在梯度消失、收敛不稳定的问题。 原理机器学习中,假定训练数据与测试数据独立同分布(independent and identical independent),当输入数据进行白化操作后,可使模型收敛速度加快,这被称作Covariate Shift。 而在神经网络内部,各层的特征图数据分布不均匀,称为Inter
https://louishsu.xyz/2019/09/05/PCA-and-LDA-with-Kernel/
前言核函数可将数据进行升维,在更高维度的空间进行数据分析,可以将线性不可分问题转换为线性可分问题,关于核函数,详细可查看Support Vector Machine 2.2核技巧。在PCA与LDA中分别介绍了主成分分析与线性鉴别分析,但这两种均为线性方法,本文利用核技巧将数据映射到高维空间,然后再用两种降维方法进行降维。 先升维再降维! 原理假设有$M$个$N$维样本组成数据矩阵$X_{N \ti
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.