问题:已知一组特征,求使损失函数最小的线性加权系数
已知特征向量的集合
从中要找到加权系数
新的向量
每个类得到一个点 满足{每个类类内到该点的马氏距离和最小}
分类策略:马氏距离最小的类就是该点所属的类
找到B使识别的错误率最小
遗传算法的术语:
基因型(genotype):
性状染色体的内部表现
即B
表现型(phenotype):
染色体决定的性状的外部表现,或者说,根据基因型形成的个体的外部表现;
即在B的条件下识别的错误率
进化(evolution):
种群逐渐适应生存环境,品质不断得到改良。生物的进化是以种群的形式进行的。
每一次进化都是一次迭代
适应度(fitness):
度量某个物种对于生存环境的适应程度。
识别的错误率
选择(selection):
以一定的概率
从种群中选择若干个个体。一般,选择过程是一种
基于适应度
的优胜劣汰的过程。
即选择算子
复制(reproduction):
细胞分裂时,遗传物质DNA通过复制而转移到新产生的细胞中,新细胞就继承了旧细胞的基因。
精英保留机制,即当前最好的B直接复制保留到下一代
交叉(crossover):
两个染色体的某一相同位置处DNA被切断,前后两串分别交叉组合形成两个新的染色体。也称基因重组或杂交;
即交叉算子
变异(mutation):
复制时可能(很小的概率)产生某些复制差错,变异产生新的染色体,表现出新的性状。
变异算子
编码(coding):
DNA中遗传信息在一个长链上按一定的模式排列。遗传编码可看作从表现型到基因型的映射。
分为二进制编码和浮点编码
解码(decoding):
基因型到表现型的映射。
即B到B的条件下识别的错误率的映射
个体(individual):
指染色体带有特征的实体;
B种群(population)
:个体的集合,该集合内个体数称为种群的大小
。B的集合
交叉算子:二进制编码就是比特位的部分交换,浮点编码就是求两个浮点数之间取一个随机数
变异算子:二进制编码就是比特位的随机变换,浮点编码就是浮点数加减一个随机数
选择算子:给不同的适应度的个体打分,然后用轮盘赌的方法进行选择(如3个个体打分为1,2,3,那么第一个个体被选择几率为1/6)
精英策略:把当代表现型最好的个体直接复制到下一代种群。
经典遗传算法实现过程
- 产生种群:随机产生一组B的集合
- 计算各个B下的识别的错误率识别的错误率
- 利用选择算子选择B
- 利用交叉算子的在剩下的B中产生下一代B
- 利用变异算子产生新的B
- 重复2-5
2.多目标优化问题(有多个目标函数的优化问题)
NSGA(非支配排序遗传算法)
NSGAII(带精英策略的非支配排序的遗传算法)
人脸识别可以是单目标优化问题,如目标函数是总错误率,也可以是多目标优化问题,如每个类的错误率为目标函数。这里NSGA解决的是多目标优化问题。
2.1 Paerot支配关系
2.2 Paerot最优解
NSGA 和 NSGAII
识别非支配个体及非支配个体排序:
识别在这个集合中是否有两两非支配的个体,如果有就把它们分离出来,最后使得每一级的个体为支配关系。
通过上述步骤得到的非支配个体集是种群的第一级非支配层;然后,忽略这些标记的非支配个体,再遵循步骤(1)一(4),就会得到第二级非支配;依此类推,直到整个种群被分类。
虚拟适应度值的确定
在对种群进行非支配排序的过程中,需要给每一个非支配层指定一个虚拟适应度值。级数越大,虚拟适应度值越小;反之,虚拟适应度值越大。这样可以保证在选择操作中等级较低的非支配个体有更多的机会被选择进入下一代,使得算法以最快的速度收敛于最优区域。
而NSGA一II的改进
a)提出了快速非支配排序法,降低了算法的计算复杂度。由原来的O(mN3)降到O(mN2),其中,m为目标函数个数,N为种群大小。b)提出了拥挤度和拥挤度比较算子,代替了需要指定共享半径的适应度共享策略,并在快速排序后的同级比较中作为胜出标准,使准Paroet域中的个体能扩展到整个Pareto域,并均匀分布,保持了种群的多样性。)c引入精英策略,扩大采样空间。将父代种群与其产生的子代种群组合,共同竞争产生下一代种群,有利于保持父代中的优良个体进入下一代,并通过对种群中所有个体的分层存放,使得最佳个体不会丢失,迅速提高种群水平。