Tips
智能系统设计-Part1-GeneticAlgorithm
引入GA简介遗传算法(Geneic Algorithm, GA)是基于“物竞天择,适者生存”而提出的。它首先确定参数和优化目标,然后经历以下步骤来模拟这些参数的自然演化过程:
随机地生成一些答案,称之为种群(Populaition)
对他们进行评价
选择较好的,作为parents(父母)
使得父母重新组合(交叉)
使得他们的孩子产生一些变异,随机地选择一些参数替代原有
对他们产生的孩子进行评价
剔除掉太差的,重复步骤3-7
直到满足优化目标,“物竞天择,适者生存”的优化结束。
这整个步骤可以被简略概括为:选种-交叉-变异
基于GA的工作原理,以下方面都可以影响GA结果:
Representation:对个体的表示,即,参数的选择(比如一个人,得有胳膊,有腿,有眼睛等等)
Evaluation function (fitness function):评价函数,用于“天择”
Population: 种群
Parent Selection Machanism: 父母选择机制
Variation operators: 变异算子(包含交叉(crossover)和变异(mutation)) ...
智能系统设计-Part2.2-图像压缩
引入图像的冗余信息编码冗余(encoding redundancy):下图这个图像中,只有4种颜色,如果采用8bit色深编码,则会有252种值从未被使用。
空间冗余(spatial redundancy):下图每一行都是一样的像素点,如果每一个像素都独立记录值,则会浪费很多空间。如果能记录256个像素的一条线,再记录这条线重复256次,那么将会剩下很多的空间。
无关信息(irrelevant information):下图的灰度值差异很小很小,肉眼不可查(下图左)。除非使用直方图均衡等算法(下图右),否则图像信息不可见。因此其为可压缩信息。
主流音视频压缩格式
图像编码的总体流程图像存储在设备上,可以总地分为如下几个步骤:
映射器(Mapper):将原图像的$f(x,…)$变换为减少空间和时间冗余的格式,这一操作是可逆的,但并不会减少数据量。在后续介绍JPEG压缩时会介绍DCT变换。
量化器(Quantizer):上一步中,mapper将图像转化到变换域,量化就是将变换域中的数根据存储的比特要求量化成特定值。这一过程会损失信息,如果是无损压缩,则需要舍弃这一步。
符号编码 ...
智能系统设计-Part1-模糊系统
引入在前面的ANN中,机器可以自己通过学习来找到“机器认为”的答案。
但是在现实世界中也有一群专家,他们解决问题靠的是“已有知识”,他们先学习并储备了一些知识库,在遇到对应问题的时候就调用对应的知识库。
将这种解决问题的方式在计算机中进行描述和调用,就是所谓模糊系统(Fuzzy System)。
但是专家在判断是什么问题时,通常接受的是模糊的描述。例如这个人非常高,那么你大可能觉得这个人在一米八往上接近一米九。说这个天很热按你大可能觉得现在有30度往上。这些描述都是基于人类语言的模糊描述,指明的是大概率的一个区间。同样地,在解决问题上,专家也是靠着不精确的输入,去猜测套用什么方法解决的可能性最大,然后去尝试。
但是这样就出现问题了,计算机使用的是布尔逻辑,即非黑即白的逻辑,它可以以180为一个界限,认为180以上的人算作高,180以下的人算作矮,但是如果有一个人有179,它其实也是算高的,但是会被传统的布尔逻辑和160判到一桌上去。
模糊逻辑,模糊集和隶属度模糊系统就是为了来解决这个问题的,它提出了“模糊逻辑(fuzzy logic)”的概念,在模糊逻辑下,事情不是非黑即白,而是具有一 ...
智能系统设计-Part2.3-图像增强和滤波
灰度变换-像素处理像素处理是最简单、理解最直观的。是对每个像素点的值直接进行变换。像素处理可以只对图像的一部分执行。
在像素处理中,变换函数被记为T,某个像素点变换前的值为r,后的值为S,$S=T(r)$。
熟悉PS的小伙伴会知道PS里面有个曲线,这个曲线其实就是变换函数的函数图像。当曲线是下图这样时,会增强对比度。
如果拖着曲线的中点朝左上或者右下移动(变成指数函数),则可以调整整体的曝光值($s=r^\gamma$)。这里的指数参数$\gamma$就是曝光值。
如果将曲线两头反向,则图片就会反相。
当然,你也可以只对一部分亮度的图像进行增强,其变换函数图像如下
灰度变换-直方图处理直方图用于统计一张图片中各值的像素点数量。其横轴为值,纵轴为数量。可以通过直方图看出来图像的整体亮度,直方图偏高代表图像中高亮度像素较多,偏低代表低亮度像素较多。
直方图均衡从上面可以知道,直方图偏高或者偏低都有问题,能让它均匀分布才能创造不死黑,不过曝,对比度正常的图像,如下图。因此需要进行直方图均衡。
归一化的直方图对于一个分辨率 ...
智能系统设计-Part2.1-Introduction
人类视觉系统
在自然界中,可见光只在全谱段中的非常小一段。但是图像处理是针对于全光谱而言的。
人眼系统感光细胞
人眼系统如上图所示,眼中视网膜上有视椎细胞(Cones)和视杆细胞(Rods)两种。视椎细胞对颜色和黑暗(Dark)敏感;视杆细胞对明光(Brightnes)敏感。
从上图可以看到,视椎细胞在中心分布较多,这就是为什么人眼在看东西时希望把东西放在眼中心,因为该处视椎细胞更多,可以更好地感知物体。视杆细胞在整个视网膜上都有分布,这就是为什么余光可以感知到周围的东西。
这张图是Weber ratio,它说明人眼在低亮度条件下,需要更大的光强差异才能感知到差异(也就是上图左边的$\Delta I$);但在亮光环境下,只需要很小的亮度差异就可以感知到(右侧的$\Delta I$)
马赫带效应(Mach band effect)
人眼在观察两块亮度不同的区域时,边界处亮度对比加强,使轮廓表现得特别明显。如上图所示,当你观察上图时,会感觉每一个灰度小格子的左侧都比右侧亮。
相机成像
相机成像可以被看成两个过程:sampling 和 quantization。sampling过程发生在连 ...
智能系统设计-罐装知识
ANNANN停止的标准
特定次数的迭代(iteration)之后
输出的误差低于阈值(threshold)
独立验证集(separate validation set)上的错误小于某些标准(criteria)。
ANN各项参数的影响学习率:过小,迭代(iteration)过多;过大,可能错过最优解,在损失函数(lossfunction)最低点震荡(oscillate)
动量(momentum):过小,陷入局部最优解(local minima);过大,造成下降方向与梯度方向差异较大,产生震荡。
*附:动量的作用: 1.使得训练时穿过(rolling through)局部最优(local minima)*
2.加大梯度不变时的步长(step size),提升收敛速率
迭代次数(learning iterations):过小,欠拟合,无法捕捉数据集的通用特征(characteristic)。过多,浪费计算资源,导致过拟合(overfitting)。
*附:防止过拟合的方法:1. 使用验证数据集(validation data set),当误差增加时,则 ...
从C到CPP的迁移
引入为什么会有这篇笔记面向过程和面向对象作用域
基本语法内的新特性引用在C语言中仅有值传递和地址传递,而C++除此之外还可以进行引用传递。
默认参数C语言中若要使用默认参数,仅能通过宏实现。
函数重载函数重载基本用法函数重载是为了提高函数名复用性或是使得函数兼容更多数据类型诞生的。它允许两个函数使用同样的名称,通过传入的参数不同来进行区分。C++编程中支持函数重载,而C不支持。
所谓传入的参数不同,可以是参数的类型不同,例如func(int a)和func(double a);也可以是参数的个数不同,例如func(int a)和func(int a, int b);还可以是顺序不同,例如func(int a, double b)和func(double b, int a)。
例如如下示例。下面两个函数,虽说它们的名字相同,但是由于一个参数类型是int,一个参数类型是double。在调用func函数时,若传入func(1),则调用第一个;若传入func(3.14),则调用第二个。
1234567void func(int a){ cout << a; ...
现代通信网络-罐装知识
电路交换和分组交换
电路交换描述:连接建立开始时,通信系统分配给它的资源(通道、带宽、时隙、码字等等),通信活动的整个过程中,这个连接将始终占用着。电路交换总体可以分为这三步:1. 建立(establish)连接;2. 通话;3.释放连接
电路交换的优点:
无需额外资源开销:业务数据不含有Header,透明传输(Transparent transmission)
通信延迟小
有序传输
控制简单
电路交换的缺点:
资源利用率较低:尽管没有数据传输资源也被占用
鲁棒性差:只要所建立的物理通路中有一点出现故障,就必须拨号重新建立连接
一旦无法建立连接,通信就无法进行。
在要求数据按先后顺序且以恒定速率快速传输的情况下或实时性要求较高时,使用电路交换是较为理想的选择。最典型的应用是传统电信网络。
分组交换描述:分组交换(packet switching)是将数据打包成分组(Packets)进行传输、交换。数据包包含标头(Header),和负载(Payload)。标头包含分组的基本信息,例如地址信息,管理信息等。分组通过最优路径(取决于 路由算法)路由到目标。分组交换可细分为虚电路和数据 ...
Control-Systems-Part2-Lectrue4-根轨迹
引入我们在研究系统极点的路径时,都是对闭环传递函数而言的。因为闭环传递函数的零极点可以直接反应系统的一些特性,例如稳定性,收敛速度,是否存在过冲等等。
考虑下图这样的一个系统,其系统闭环传递函数为$\frac{KG(s)}{1+KG(s)H(s)}$。我们研究的就是$1+KG(s)H(s)=0$时产生的极点。但是,我们的分析对象其实是$G(s)H(s)$这个开环传递函数,我们是通过分析OLTF,来研究CLTF的根。
而所谓根轨迹,就是随着增益K的变换,CLTF极点的移动路径。而这个轨迹可以通过CLTF,即$G(s)H(s)$的极点和零点绘制出来。
根轨迹的基本特性Dr.Huda PPT上的规则比较基础,但下一章会用到超出这个范围外的知识。这个视频讲了更普适的规则【自动控制原理】8_根轨迹_Part2_根轨迹手绘技巧_哔哩哔哩_bilibili。下面的笔记是结合二者写的
根轨迹的数种规则规则1:系统的根轨迹条数等于系统极点个数或零点个数(取最大的那个)例如$G(s)=\frac{(s+4)(s+1)}{(s+3)(s+0.5)}$,系统有2个零点2个极点,Max(2,2)=2,因此系 ...
Control-Systems-Part2-Lectrue5-PID调谐和数字补偿器设计
PID控制器调谐PID三个部分对系统响应的贡献在Part1中详细介绍和分析过PID控制器,这里主要介绍一个调谐原则。回顾一下,PID的通式是:
u(t)=K_pe(t)+K_i\int e(t)dt+K_d\frac{de(t)}{dt}写成并联形式是:
C(s)=K_p+\frac{K_i}{s}+K_ds
写成标准形式是:
K_p(1+\frac{1}{sT_i}+sTd)
C(s)=\frac{U(s)}{E(s)}=K_p+\frac{K_i}{s}+K_ds=\frac{K_ps+K_i+K_ds^2}{s}PID控制器会给系统引入一个位于原点的极点,和2个零点。由前面介绍的零极点分析系统响应的法则,可以导出其各个部分对系统瞬态响应的贡献:
$K_p$的贡献是:
减少rise time $t_r$
但是无法消除稳态误差
决定响应速度和力度,过小响应慢,过大会产生振荡,是I和D的基础。
$K_i$的贡献是:
消除稳态误差
但是会削减瞬态响应
会削减系统稳定性
在有系统误差和外力作用时消除偏差、提高精度,同时也会增加响应速度,产生过冲,过大会产生振荡。
$K_d ...