python常用库学习
图像相关
10个Python图像处理工具,非常全了!
图像的RGB 色彩模式
RGB 三个颜色通道的变化和叠加得到各种颜色,其中
R 红色,取值范围,0-255
G 绿色,取值范围,0-255
B 蓝色,取值范围,0-255
一幅图像上的所有像素点的信息就完全可以采用矩阵来表示,通过矩阵的运算实现更加复杂的操作
网络图片读取
12345678def get_url_img_io(url: str) -> BytesIO: """ 获取网络图片的io流 """ return BytesIO(requests.get(url).content)def get_url_img(url: str): """ 获取网络图片,并转为np.array """ return np.asarray(bytearray(get_url_img_io(url).read()), dtype="uint8")
plt.imsho ...
深度学习在图像领域的应用
必读!计算机视觉四大基本任务(分类、定位、检测、分割)
模型介绍
模型可视化netron工具库
pytorch模型转onnx模型的方法详解
图像分类
计算机视觉中图像分类任务脉络梳理
An Analysis of Deep Neural Network Models for Practical Applications
经典网络:
LeNet-5: 早期卷积神经网络中最有代表性的架构,是Yann LeCun在1998年设计的,用于手写数字识别的卷积神经网络
AlexNet: 2012年ILSVRC冠军,6千万参数。由于准确率远超传统方法的第二名(top5错误率为15.3%,第二名为26.2%),引起了很大的轰动。自此之后,CNN成为在图像识别分类的核心算法模型,带来了深度学习的大爆发
ZF-Net: 2013年ILSVRC冠军,结构和AlexNet区别不大,分类效果也差不多。这篇文章的贡献在于,提出了一种CNN特征可视化方法:反池化、反激活、反卷积,从而成为CNN特征可视化的开山之作
GoogLeNet: 2014年ILSVRC冠军网络。同样也是5+3的模式(以池化层 ...
transformer学习
Attention Is All You Need
论文解读:Attention is All you need
模型介绍Attention机制最早在视觉领域提出,2014年Google Mind发表了《Recurrent Models of Visual Attention》,使Attention机制流行起来,这篇论文采用了RNN模型,并加入了Attention机制来进行图像的分类
205年,Bahdanau等人在论文《Neural Machine Translation by Jointly Learning to Align and Translate》中,将attention机制首次应用在nlp领域,其采用Seq2Seq+Attention模型来进行机器翻译,并且得到了效果的提升,Seq2Seq With Attention中进行了介绍
2017 年,Google 机器翻译团队发表的《Attention is All You Need》中,完全抛弃了RNN和CNN等网络结构,而仅仅采用自注意力(self-attention)机制来学习文本表示来进行机器翻译任务,并且取得了 ...
图论算法
图结构基本概念
图论基础和表示
图的基本介绍和表示方式
定义图论(Graph Theory)是离散数学的一个分支,是一门研究图(Graph)的学问
图的分类
有无方向
有向图
无向图
有无权重
无权图
有权图
连通性
图论中,连通图基于连通的概念,在一个无向图G中,若从顶点i到顶点j有路径相连(当然从j到i也一定有路径),则称i和j是连通的
如果图中任意两点都是连通的,那么图被称作连通图,如果此图是有向图,则称为强连通图
完全图
完全图是一个简单的无向图,其中每对不同的顶点之间都恰连有一条边相连
图的表示图的表示方式有两种:二维数组表示(邻接矩阵)、链表表示(邻接表)
邻接矩阵
邻接表
十字链表[有向图]
图的类型欧拉图
欧拉通路、欧拉回路、欧拉图和半欧拉图以及 Hierholzer 算法
回路与通路的定义:
欧拉通路(欧拉路径): 通过图中所有边恰好一次且行遍所有顶点的通路
欧拉回路: 通过图中所有边恰好一次且行遍所有顶点的回路
欧拉图与半欧拉图:
欧拉图(Eulerian graph): 具有欧拉回路的图称
半欧拉图(semi ...
树算法
树结构概念
排序算法
排序算法
十大经典排序算法_动图演示
常见的10种排序算法
十大经典排序算法动画,看我就够了
十大经典排序算法
分类十种常见排序算法可以分为两大类:
比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破$O(n)$,因此也称为非线性时间比较类排序
非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序
排序算法
比较类
交换排序
冒泡排序(稳定)
快速排序[分治]
插入排序
简单插入排序(稳定)[打扑克]
希尔排序(插入排序的改进)
选择排序
简单选择排序[选最值]
堆排序
归并排序(稳定)[递归]
二路归并排序
多路归并排序
非比较类
计数排序(稳定)
桶排序(稳定)
基数排序(稳定)
算法复杂度
排序方法
时间复杂度(均)
时间复杂度(最坏)
时间复杂度(最好)
空间复杂度
稳定性
本地排序
插入排序
$O(n^2)$
$O(n^2)$
$O(n)$
$O(1)$
稳定
都可
希尔排序
$O(n^{1.3})$
$O(n^2)$
...
机器学习_最优化方法
写在前面,本系列主要是对下面这本书做的学习笔记
常用数学符号的 LaTeX 表示方法
Markdown 常用数学符号和公式
基本概念
前言
最优化方法在机器学习领域处于中心地位,绝大多数算法最后都归结于求解最优化问题,从而确定模型参数,或直接获得预测结果
有监督学习,通过最小化损失函数或优化其他类型的目标函数确定模型的参数
数据降维算法,通过优化某种目标函数,确定降维后的结果,如主成分分析
按照优化变量的类型,可以将优化问题分为连续型优化问题与离散型优化问题
连续型优化问题的优化变量是连续变量,一般可借助导数求解
离散型优化问题的优化变量则为离散值
连续型优化问题又可分为凸优化问题与非凸优化问题,凸优化问题可以保证求得全局最优解
按照目标函数的数量
单目标优化:只有一个目标函数,
多目标优化:有多个目标函数
按照是否带有约束条件
不带约束的优化
带约束的优化
按照求解方式可分为
数值优化:求问题的近似解
解析解:求精确的公式解
基于概率的优化算法是优化算法家族中一种特殊的存在,典型的是遗传算法与贝叶斯优化
通常情况下最优化问题是求函数的极值,其优化变量是整 ...
高斯分布相关算法
学派对概率的诠释有两大学派,一种是频率派另一种是贝叶斯派,后面我们对观测集采用下面记号:
X_{N\times p}=(x_{1},x_{2},\cdots,x_{N})^{T},x_{i}=(x_{i1},x_{i2},\cdots,x_{ip})^{T}$X$这个矩阵展开如下
X=\left(\begin{array}{cccc}x_{11} & x_{12} & \cdots & x_{1 p} \\ x_{21} & x_{22} & \cdots & x_{2 p} \\ \vdots & & & \\ x_{N 1} & x_{N 22} & \cdots & x_{N p}\end{array}\right)_{N \times p}表示有$N$个样本,每个样本都是$p$维向量,其中假设每个观测都是由 $p(x|\theta)$生成的
频率派频率派认为$p(x|\theta)$中的$\theta$是一个未知的常量,而数据是一个随机变量,关心的是数据,目标是估计未知的的常量$\theta$
常用的方法是最大似然估计
\theta_{MLE}=\mathop{arg ...
机器学习_概率论
写在前面,本系列主要是对下面这本书做的学习笔记
常用数学符号的 LaTeX 表示方法
Markdown 常用数学符号和公式
随机事件与概率概率论同样在机器学习和深度学习中有至关重要的作用。如果将机器学习算法的输入数据和输出数据看作随机变量,则可用概率论的方法对数据进行计算,以此对不确定性进行建模
使用概率模型,可以输出概率值而非确定性的值,这对某些应用是至关重要的
对于某些应用问题,需要对变量之间的概率依赖关系进行建模,也需要概率论的技术,概率图模型是典型代表
随机数生成算法,即采样算法,需要以概率论作为理论指导
某些随机算法,如蒙特卡洛算法、遗传算法,同样需要以概率论作为理论或实现依据。
随机事件和概率是概率论中基本的概念,也是理解随机变量的基础
随机事件概率随机事件是可能发生也可能不发生的事件,这种事件每次出现的结果具有不确定性
例如,天气可能是晴天、雨天、阴天;考试分数可能为0与100之间的整数;掷骰子,1到6这几种点数都可能出现
以集合论作为工具,给出随机事件的定义
对于一个随机试验,其所有可能结果组成的集合称为样本空间记为$\Omega$
随机试验可能的结果 ...
隐马尔可夫模型HMM
隐马尔可夫HMM定义
一站式解决:隐马尔可夫模型(HMM)全过程推导及实现
关于HMM、MEMM、CRF的一些知识整理整理
图解隐马尔可夫模型HMM_通俗易懂
隐马尔可夫模型(hidden Markov model, HMM)是可用于标注问题的统计学习模型
描述由隐藏的马尔可夫链随机生成观测序列的过程,属于生成模型
隐藏的马尔可夫链随机生成的状态的序列,称为状态序列(state sequence)每个状态生成一个观测
而由此产生的观测的随机序列,称为观测序列(observation sequence)
序列的每一个位置又可以看作是一个时刻
这里的$Z$就是状态序列,$x$是观测序列,设Q是所有可能的状态的集合,V是所有可能的观测的集合,$N$是可能的状态数,$M$是可能的观测数
Q = \{q_1,q_2, \cdots ,q_N \} \qquad V = \{v_1,v_2, \cdots ,v_M \}三要素
隐马尔可夫三要素
隐马尔可夫模型由初始状态概率$\pi$、状态转移矩阵$A$、观测概率矩阵(或者叫发射矩阵)$B$决定,记作
\lambda = (\pi, A ...