机器学习——LR(线性回归)、LRC(线性回归分类)与人脸识别

2023-10-27

    忆如完整项目/代码详见github:https://github.com/yiru1225(转载标明出处 勿白嫖 star for projects thanks)

目录

系列文章目录

一、LR的概念、原理与LR用于简单数据的预测

1.LR简介

2.LR算法模型

3.LR用于简单数据的预测

二、LRC的简介与算法流程

1.LRC(线性回归分类)简介

2.LRC算法流程

三、LRC及其各种优化模型用于人脸识别

1. 数据导入与处理

2.人脸识别与分类

2.1.经典线性回归分类用于人脸识别

2.2.岭回归用于人脸识别

2.3.lasso回归用于人脸识别

2.4.分块LRC用于人脸识别

2.5 回归部分代码整合

3.多种回归在人脸识别的对比

4.新线性回归设计、实践、比较

5.其他

5.1 内部函数定义

5.2 数据集及资源

5.3 参考资料

总结


系列文章目录

本系列博客重点在机器学习的概念原理与代码实践,不包含繁琐的数学推导(有问题欢迎在评论区讨论指出,或直接私信联系我)。

代码可以全抄    大家搞懂原理与流程去复现才是有意义的!!!
第一章 机器学习——PCA(主成分分析)与人脸识别_@李忆如的博客-CSDN博客

第二章 机器学习——LDA (线性判别分析) 与人脸识别_@李忆如的博客-CSDN博客

第三章 LR(线性回归)、LRC(线性回归分类)与人脸识别


梗概

本篇博客主要介绍LR(线性回归)、LRC(线性回归分类)并将LR用于简单数据的预测,LRC及其各种优化模型(岭(脊)回归、lasso回归、分块LRC)用于人脸识别,且自行设计了一个全新的线性回归算法用于人脸识别并与经典LR做比较(内附数据集与matlab代码)


一、LR的概念、原理与LR用于简单数据的预测

1.LR简介

回归分析是指一种预测性的建模技术,主要是研究自变量和因变量的关系。LR(线性回归)为最基础的一种回归算法。用线(面)等模型对于现有相对线性的数据进行较小损失的拟合,并使拟合出的模型可较好预测数据。

最小二乘法推导详见:最优化方法——最小二乘法与梯度下降法_@李忆如的博客-CSDN博客

2.LR算法模型

经典的LR解决问题可划分为以下步骤

① 将数据集导入,进行变量的筛选与控制

② 对正态性分布的数据做散点图与相关分析

③ 通过最小化损失函数来确定参数,得到(拟合)回归方程(利用正规方程计算w 或最小二乘 或梯度下降)

④ 不断检验模型,优化参数,得到最优的回归方程

⑤ 使用回归方程做预测

图1 线性回归分析详细流程 

Tips:对线性回归数学原理、最小二乘法、梯度下降、正归方程的数学分析与推导感兴趣的详见:机器学习算法——线性回归(超级详细且通俗)_一只认真的菜狗的博客-CSDN博客_线性回归

3.LR用于简单数据的预测

① 问题描述:探究学生成绩与学生学习时间的关系

② 线性回归实现:将学习时间作为变量,成绩作为预测值,建立回归方程,并用最小二乘法最小化损失函数,得到回归方程并验证,验证后用其预测。

③ 核心代码如下:

x=[23.80,27.60,31.60,32.40,33.70,34.90,43.20,52.80,63.80,73.40];
y=[41.4,51.8,61.70,67.90,68.70,77.50,95.90,137.40,155.0,175.0];
figure
plot(x,y,'r*') %作散点图(制定横纵坐标)
xlabel('x(学生学习时间)','fontsize',12)
ylabel('y(学生成绩)','fontsize',12)
set(gca,'linewidth',2)
%采用最小二乘拟合
Lxx=sum((x-mean(x)).^2);
Lxy=sum((x-mean(x)).*(y-mean(y)));
b1=Lxy/Lxx;
b0=mean(y)-b1*mean(x);
y1=b1*x+b0; %线性方程用于预测和拟合
hold on
plot(x,y1,'linewidth',2);
m2=LinearModel.fit(x,y); %函数进行线性回归

数据拟合后,回归模型绘图如下:

 图2 LR用于简单数据预测回归方程绘图

分析:分析上图,可看出模型对数据拟合较好,预测相对线性。如需预测不在图中的数据,只需将对应学习时间作为x代入回归模型(方程)中即可。

二、LRC的简介与算法流程

1.LRC(线性回归分类)简介

LRC:即使用LR进行分类任务(如人脸识别,给出某人脸属于哪一类人(一个人为一类))

2.LRC算法流程

① 将数据集导入并分类

② 读取每个类数据进行线性回归,划分训练集与测试集

③ 利用正规方程计算w(或最小二乘 或梯度下降),通过最小化损失函数来确定参数,得到(拟合)回归方程

Tips:此处y为对应需要分类的单个数据

④ 利用回归方程预测数据

⑤ 计算出预测数据与真实数据的距离(损失),并将最小距离对应类别作为预测类别输出

三、LRC及其各种优化模型用于人脸识别

1. 数据导入与处理

利用imread批量导入人脸数据库,或直接load相应mat文件,并在导入时不断将人脸拉成一个个列向量组成reshaped_faces,并取出n%作为测试数据,剩下100-n%作为训练数据,重复此步骤,将导入数据抽象成框架,可以匹配不同数据集的导入(本实验框架适配ORL、AR、FERET数据集)。

Tips:代码可见笔者上一篇文章(LDA与人脸识别),基本一致。

2.人脸识别与分类

Tips:前四部分讲述LRC及其优化模型的算法流程、核心流程、分析,完整代码整合见第五部分。

2.1.经典线性回归分类用于人脸识别

算法流程:与二.2中的算法流程类似,将数据集导入并分类,读取每个类数据进行线性回归,划分训练集与测试集,利用正规方程计算w,预测数据后计算出预测数据与真实数据的距离,并将最小距离对应类别作为预测类别,并与测试集对应的标签作比较,检测(识别)分类是否正确,并得出正确率。

② 核心代码:

 % 1.线性回归
   w = inv(train_data' * train_data) * train_data' * totest;
   img_predict = train_data * w; % 计算预测图片
 % 分类、预测过程(各种分类都类似)   
 % show_face(img_predict,row,column); %预测人脸展示
         dis = img_predict - totest; % 计算误差
       
       distest = [distest,norm(dis)]; % 计算欧氏距离
     % 取出误差最小的预测图片 并找到他对应的标签 作为预测结果输出
     end
            [min_dis,label_index] = min(distest); % 找到最小欧氏距离下标(预测类)
            if label_index == totest_index
              count_right = count_right + 1;
            else  
                fprintf("预测错误:%d\n" ,(i + 1) * (k - train_num_each));
            end
    end

③ 分析:w的计算(最小化损失函数得最优参数)、计算预测图片的方法差异造就了不同方法。其中,对于数据的过拟合、关键矩阵不可逆现象,引入岭回归与lasso回归;对于数据遮挡问题,引入分块LRC。

2.2.岭回归用于人脸识别

① 算法核心:对经典线性回归加入L2正则化(得到稠密解)

② 核心代码:

  % 2.岭回归
        rr_data = (train_data' * train_data) + eye(train_num_each)*10^-6;
        w = inv(rr_data) * train_data' * totest;
        img_predict = train_data * w; % 计算预测图片

分析:通过正则化扰动,有效地避免了过拟合严重或各变量之间存在多重共线性的问题。

2.3.lasso回归用于人脸识别

① 算法核心:对经典线性回归加入L1正则化(得到稀疏解)

② 核心代码:

         % 3.lasso回归
        [B,FitInfo] = lasso(train_data , totest);
        img_predict = train_data * B + FitInfo.Intercept;

Tips:此处使用matlab库中的lasso回归,更详细自定义lasso回归实现与分析见:建模算法系列十九:lasso回归推导附MATLAB源码 - 知乎 (zhihu.com)

分析:一般来说,对于高维的特征数据,尤其线性关系是稀疏的,我们会采用Lasso回归。或者要在一堆特征里面找出主要的特征,那Lasso回归更是首选。

2.4.分块LRC用于人脸识别

① 算法核心:把数据库中每个数据分成M块(本实验将人脸均分四块),对数据中的每块进行LRC,在同一数据的M块min_dis中选出最小值,其对应的块作为分类依据,给出预测分类结果(或使用投票法选出同一数据M块中出现最多的预测分类结果)。

② 核心代码:

%%数据导入部分进行分块(不同分块规则大大影响实验效果,此处以均分四块为例)  
for i=1:40    
    for j=1:10       
        if(i<10)
           a=imread(strcat('C:\Users\hp\Desktop\face\ORL56_46\orl',num2str(i),'_',num2str(j),'.bmp'));     
        else
            a=imread(strcat('C:\Users\hp\Desktop\face\ORL56_46\orl',num2str(i),'_',num2str(j),'.bmp'));  
        end
        a = double(a);
        a = mat2cell(a,[row/2,row/2],[column/2,column/2]);
        a1 = a{1};
        a2 = a{2};
        a3 = a{3};
        a4 = a{4};
        b1 = reshape(a1,row * column / 4,1);
        b1=double(b1);
        b2 = reshape(a2,row * column / 4,1);
        b2=double(b2);
        b3 = reshape(a3,row * column / 4,1);
        b3=double(b3);
        b4 = reshape(a4,row * column / 4,1);
        b4=double(b4);
        reshaped_faces=[reshaped_faces, b1,b2,b3,b4]; 
        
    end
  end

③ 分析:分块线性回归是处理遮挡图像识别的一个有效方法。

2.5 回归部分代码整合

% 回归过程
dimension = row * column;
count_right = 0;

for i = 0:1:people_num - 1
    totest_index = i + 1; %取出图片对应标签
    %对每一类进行一次线性回归
    for k = train_num_each + 1:1:pic_num_of_each
       totest = reshaped_faces(:,i*pic_num_of_each + k); %取出每一待识别(分类)人脸
       distest = []; %记录距离
     for j = 0:1:people_num - 1
       batch_faces = reshaped_faces(:,j * pic_num_of_each + 1 :j * pic_num_of_each + pic_num_of_each); %取出每一类图片
       % 划分训练集与测试集
       %第一次  batch中的前train_num_each个数据作为训练集 后面数据作为测试集合
       train_data = batch_faces(:,1:train_num_each);
       test_data = batch_faces(:,train_num_each + 1:pic_num_of_each);
         % 1.线性回归
         w = inv(train_data' * train_data) * train_data' * totest;
         img_predict = train_data * w; % 计算预测图片           

         % 2.岭回归
%        rr_data = (train_data' * train_data) + eye(train_num_each)*10^-6;
%        w = inv(rr_data) * train_data' * totest;
%        img_predict = train_data * w; % 计算预测图片

         % 3.lasso回归
%        [B,FitInfo] = lasso(train_data , totest);
%        img_predict = train_data * B + FitInfo.Intercept;

         % 4.权重线性回归(代码有误)
%        W = eye(dimension);
%        kk = 10^-1;
%            for jj = 1:1:dimension
%               diff_data = reshaped_faces(j+1,:) - reshaped_faces(jj,:);
%               W(jj,jj) = exp((diff_data * diff_data')/(-2.0 * kk^2));
%            end
%            w = inv(train_data' * W * train_data) * train_data' * W * totest;

         % 5.新线性回归(已提前PCA降维)
%           rr_data = (train_data' * train_data) +
%           eye(train_num_each)*10^-6; 
%           w = inv(rr_data) * train_data' * test_data; % 改良w
%           img_predict = train_data * w; % 计算预测图片
         
       % show_face(img_predict,row,column); %预测人脸展示
         dis = img_predict - totest; % 计算误差
       
       distest = [distest,norm(dis)]; % 计算欧氏距离
     % 取出误差最小的预测图片 并找到他对应的标签 作为预测结果输出
     end
            [min_dis,label_index] = min(distest); % 找到最小欧氏距离下标(预测类)
            if label_index == totest_index
              count_right = count_right + 1;
            else  
                fprintf("预测错误:%d\n" ,(i + 1) * (k - train_num_each));
            end
    end
         
end
recognition_rate = count_right / test_sum; 

3.多种回归在人脸识别的对比

所用数据集:ORL5646、AR5040、FERET_80

分别在不同数据集中使用经典线性回归、岭回归、lasso回归、分块线性回归进行人脸识别分类,人脸识别率对比如下:

表1 不同回归在不同数据集下的人脸识别率

Tips:表中括号内数字为一类人脸训练,测试数量

 图3 不同回归在不同数据集下的人脸识别率

分析:对上图及上表进行分析,可以得到以下几个结论

a.上述三个数据集中,经典线性回归人脸识别率与岭回归相同。这是由于将一个个人脸拉成列向量,train’ * train的维度较小,矩阵运算不存在奇异值,逆矩阵可逆。

b.上述三个数据集中,lasso回归人脸识别率高于经典线性回归。

c.上述三个数据集中,简单线性回归均优于分块线性回归。这是由于分块逻辑导致的(本实验将人脸均分四块),且使用数据集基本无遮挡,分块线性回归优势不能体现。

4.新线性回归设计、实践、比较

① 经典线性回归缺点:数据规模过大、过拟合严重、各变量之间存在多重共线性、正规方程计算对类内局部结构考虑不够

② 新线性回归设计:在数据预处理时使用PCA降维,对数据压缩。在最小化损失函数的过程中加入L2正则化(岭回归思想),避免过拟合严重、各变量之间存在多重共线性问题,并在正规方程的w运算时使用整个类的测试集而非单一图片,保留一定类内结构。

③ 新线性回归正规方程及核心代码

如②设计,正规方程则变为以下形式:

核心代码如下:

Tips:PCA降维详见完整代码,或参考笔者第一篇文章(PCA与人脸识别)。

         % 5.新线性回归(已提前PCA降维)
           rr_data = (train_data' * train_data) +
           eye(train_num_each)*10^-6; 
           w = inv(rr_data) * train_data' * test_data; % 改良w
           img_predict = train_data * w; % 计算预测图片

 表2 新老线性回归在不同数据集下的人脸识别率

 Tips:表中括号内数字为一类人脸训练,测试数量

  图4 新老线性回归在不同数据集下的人脸识别率

分析:对上图及上表进行分析,在ORL与FERET中,新线性回归的人脸识别率高于经典线性回归,在AR中相差无几。由此验证了新线性回归的可行性与正确性,且验证了新线性回归相对线性回归的优越性。

5.其他

5.1 内部函数定义

本实验中将人脸图像展示抽象为函数,函数定义如下:

% 输入向量,显示脸
function fig = show_face(vector, row, column)
    fig = imshow(mat2gray(reshape(vector, [row, column])));
end

5.2 数据集及资源

本实验所用数据集:ORL5646、AR5040、FERET_80,代码框架可适用多个数据集。

常用人脸数据集如下(不要白嫖哈哈哈)

链接:https://pan.baidu.com/s/12Le0mKEquGMgh5fhNagZGw 
提取码:yrnb

LR、LRC完整代码:李忆如/忆如的机器学习 - Gitee.com

5.3 参考资料

1.赖志辉的课

2.线性回归分析思路总结!简单易懂又全面! - 知乎 (zhihu.com)

3.线性回归实现人脸识别——ORL数据集_HeiGe__的博客-CSDN博客_orl人脸数据集

4.周志华《机器学习》


总结

LR作为经典且最基础的回归分析方法,对于线性数据的拟合与预测过程简单,效果优秀,LRC及其多种优化模型在数据分类的任务中也表现优异。且作为一种有监督学习方法(利用了数据的原有信息),LR能得到较好的保留数据信息用于分类。但LR仍存在对异常值很敏感、容易造就过拟合模型、不好刻画非线性问题等等,从而影响实验结果,LR的一些优化模型解决了部分不足,后续博客会分析其他算法优化或解决其他问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习——LR(线性回归)、LRC(线性回归分类)与人脸识别 的相关文章

  • 类方法的自定义代码完成?

    在 MATLAB 中 可以定义代码建议和完成 如标题为 的文档页面中所述 自定义代码建议和完成 https www mathworks com help matlab matlab prog customize code suggestio
  • 是否有一个函数可以检查矩阵是否对角占优(行占优)

    矩阵是对角占优 http en wikipedia org wiki Diagonally dominant matrix 按行 如果对角线处的值在绝对意义上大于该行中所有其他绝对值的总和 对于列也是如此 只是相反 matlab中有没有函数
  • 整数的十进制表示形式中的分隔数字

    例如 我想将用户输入作为整数输入 45697 并将前两位数字存储在数组 向量或其他内容中 例如 4 5 6 9 7 这样我就可以使用一些函数调用来检查前两个值 4 5 并对它们进行计算 问题 我不知道如何存储恢复前两个值 有没有简单的函数调
  • MATLAB:比较两个不同长度的数组

    我有两个长度不同的数组 由于采样率不同 需要比较 我想对较大的数组进行下采样以匹配较小的数组的长度 但是该因子不是整数而是小数 举个例子 a 1 1 375 1 75 2 125 2 5 2 875 3 25 b 1 2 3 有什么方法可以
  • 如何从绘图处理程序中绘图?

    我有绘图的处理程序或图形的处理程序 例子 h plot 1 0 2 10 xx get h xx DisplayName Annotation 1x1 handle Color 0 0 1 LineStyle LineWidth 0 500
  • 作为动画的八度情节点

    我有以下八度脚本 TOTAL POINTS 100 figure 1 for i 1 TOTAL POINTS randX rand 1 randY rand 1 scatter randX randY hold on endfor 当我运
  • 为什么 MATLAB 本机函数 cov(协方差矩阵计算)使用与我预期不同的除数?

    给定一个 M 维和 N 个样本的数据矩阵数据 例如 data randn N M 我可以计算协方差矩阵 data mu data ones N 1 mean data cov matrix data mu data mu N 如果我使用原生
  • 为什么 MATLAB 在打印大量 (.png) 图形时速度会变慢?

    我正在将大量数字打印为 png 文件 每个图都是数据矩阵中的一列图 我获取 png 文件并将它们串在一起形成动画 我的问题是 前几百张图像打印得很快 但创建每个新图形的时间却迅速增加 从前几百个 png 文件的约 0 2 秒到第 800 个
  • 在Matlab中选择图像上的像素时,索引指的是什么?

    当在Matlab中查看图像的单个像素时 该索引指的是什么 X Y 指的是像素的坐标 RGB 指的是颜色 但是关于索引是什么有什么想法吗 为了澄清一下 当我在 Matlab 中查看图形并使用数据光标选择一个点时 显示的三行是 X Y 指数 R
  • MATLAB 可执行文件太慢

    我使用以下命令将 MATLAB 程序转换为基于控制台的应用程序deploytool在 MATLAB 中 MATLAB m文件执行大约需要 2 秒 但在我将其转换为可执行文件并调用 exe 执行需要45秒 太长了 我想将 MATLAB 程序与
  • matlab部署工具到java包javac错误

    我正在尝试将我的程序包装为与 java 一起使用 我首先尝试了一个简单的 hello world 你好世界 m disp 你好世界 我使用了deploytool并选择了java包 当它到达这一行时 执行命令 javac verbose cl
  • 在 Matlab 的命令窗口中获取旧式帮助

    问题的简短版本 在最新版本的 Matlab 中 我在 Windows 上的 R2014b 和 R2015a 中看到过 当您键入help foo你得到一个简要描述 简介函数及其签名 例如 输入help bsxfun产生类似这样的东西 只有更好
  • Python 或 C 语言中的 Matlab / Octave bwdist()

    有谁知道 Matlab Octave bwdist 函数的 Python 替代品 此函数返回给定矩阵的每个单元格到最近的非零单元格的欧几里得距离 我看到了一个 Octave C 实现 一个纯 Matlab 实现 我想知道是否有人必须用 AN
  • 如何使用Matlab将数据保存到Excel表格中?

    我想将数据以表格形式保存在 Excel 工作表中 它应该看起来像 Name Age R no Gpa Adnan 24 18 3 55 Ahmad 22 12 3 44 Usman 23 22 3 00 每次当我执行我的文件时类数据 m 下
  • 如何正确从表中删除 NaN 值

    在 Matlab 中阅读 Excel 电子表格后 不幸的是 我的结果表中包含了 NaN 例如这个 Excel 表格 将产生此表 其中出现额外的 NaN 列 我尝试使用以下代码片段删除 NaN measurementCells readtab
  • 以 2 为底的矩阵对数

    Logm 取矩阵对数 并且log2 取矩阵每个元素以 2 为底的对数 我正在尝试计算冯 诺依曼熵 它涉及以 2 为底的矩阵对数 我该怎么做呢 如果将 以 2 为底 的矩阵指数定义为B expm log 2 A 或者如果您类似地通过特征分解直
  • 禁止 MATLAB 自动获取焦点[重复]

    这个问题在这里已经有答案了 我有以下问题 在我的 MATLAB 代码中 我使用如下语句 figure 1 更改某些数据的目标数字 问题是 在此 MATLAB 之后 系统将焦点集中在具有该图形的窗口上 当我在后台运行一个大脚本并尝试在计算机上
  • MATLAB - 通过垂直连接子矩阵重新排列矩阵

    我在执行以下任务时遇到问题 假设一个 3x6 矩阵 A 0 2787 0 2948 0 4635 0 8388 0 0627 0 0435 0 6917 0 1185 0 3660 0 1867 0 2383 0 7577 0 6179 0
  • 将向量(或弧)绘制到玫瑰图上。 MATLAB

    我有两个数据集 其中详细列出了angles 我正在绘制玫瑰图 angles 0 8481065519 0 0367932161 2 6273740453 n 另一个 从这组角度详细说明方向统计 angle error 0 848106563
  • 如何选择面积最大的对象?

    我用过bwconvhull检测图像的某个部分 正如您在图像中看到的那样 有许多具有特定质心的对象 我想做的是检测面积最大的物体 左起第一个大物体 并忽略其他物体 我应该遵循哪种方法 我将非常感谢您的帮助 以下是代码 由于我仍在努力 所以写得

随机推荐

  • 【故障解决】Linux机器经常会出现ipv6无法访问自己网关,要重启机器才可以修复问题。-20201119

    1 故障现象 有几台业务虚机 经常会出现ipv6无法访问自己网关 要重启机器才可以修复 2 解决过程 虚拟化层排查下来 虚拟化平台 宿主机 网络负载 没看出什么问题 但查看故障机器系统日志 var log messages里的信息 发现一直
  • 上线这么久的InsCode,你们用过了嘛?(内含源码)

    前言 作者主页 雪碧有白泡泡 个人网站 雪碧的个人网站 推荐专栏 java一站式服务 前端炫酷代码分享 uniapp 从构建到提升 从0到英雄 vue成神之路 解决算法 一个专栏就够了 架构咱们从0说 数据流通的精妙之道 文章目录 前言 3
  • vtkImageData算法坐标计算取整处理

    医学影像处理项目中 处理vtkImageData数据时经常涉及到一类问题 给了一个空间坐标或者位置 如何计算对应像素索引或者距离 从原理上 是这样一个公式 pixel num floor postion1 postion0 spacing
  • 大型企业IT运维的特点(18年7月)

    大型企业的IT系统一般都是流程设计复杂 用户会有较多的抱怨 不好用 变更太频繁 这样的现象 主要原因是在大型企业里面 业务以管理和控制为主 控制节点多 必然会让大家感到复杂 首先问一个问题 不要流程 可不可以 当然不可以 公司就是 流程 执
  • 【Qt】QtCreator中『设计』按钮是灰色的怎么办?

    在QtCreator中 对于xxx qml xxx ui qml文件都是可以通过 设计 打开的 只是xxx qml很多时候是没有任何2D或者3D显示效果的 但是如果在新安装QtCreator的时候没有安装对应插件 xxx qml xxx u
  • 青春有你-Java基础篇(2.5)

    Java基础篇 2 5 2 Java基础知识 泛型 泛型与继承 类型擦除 泛型中 KTVE object 等的含义 泛型各种用法 List lt Object gt List
  • 【教程】支持WebDAV的网盘TeraCloud+Zotero同步应用

    目录 0 TeraCloud网盘简介 1 注册操作步骤 2 开启WebDAV 3 WebDAV应用举例 Zotero文献管理软件 4 总结 0 TeraCloud网盘简介 TeraCloud是一个日本品牌的网盘 支持WebDAV 这极大地方
  • RIDE屏蔽INFO级别的日志输出

    RIDE屏蔽INFO级别的日志输出 最近参与自动化测试项目 项目测试内容包括软硬件 内容较复杂 每执行一个测试用例就输出了数万条INFO类型日志 严重影响测试人员查看日志 也影响了用例执行速度 因此需要减少不必要的日志输出 粗略看了一下 修
  • 在线作答编程——输入输出测试

    在线作答编程 输入输出测试 进行了总结 转载请注明链接 有问题请及时联系博主 Alliswell WP 问题描述 在线作答编程 需要自己处理输入输出 建议你进行在线oj输入输出练习 https ac nowcoder com acm con
  • 列举做副业月入3W+的公众号大佬

    3分享一些我平时关注的优秀号主 由深耕技术多年的老兵运营 与你分享技术干货 成长经验 很多时候大家不是不努力 而是缺乏对应的学习方法 以及高手指点 这些公众号也有很多干货资料 帮助你学习 表哥有话讲 国内最大的数据从业者分享平台 20W程序
  • 分析我关于路由协议的一些技术感想

    1 OSPF是在IP包里的 五种不同类型的OSPF包 Hello LSR LSU LSAck DD 又是由再进一层的ospf packetheader进行区分的 ABR一般都会有一个接口在Area0中 且对于不同的Area有不同的LSDB
  • “跨国视频造假窝点”曝光!这个大规模数据集,帮AI揪出99%换脸视频

    乾明 郭一璞 发自 凹非寺 量子位 报道 公众号 QbitAI 上回说到 奥巴马deepfake怼川普 斯嘉丽怒斥网友假视频 deepfake 视频造假神器 把一个人的脸庞 转移到另一个的身上 让假新闻轻松传播到全网 这下 不管是政要还是明
  • nginx基础学习(七):nginx+keepalived搭建主备nginx高可用服务

    目前最后一篇关于nginx的文章 这篇文章是做一个知识的了解 在实际生产中基本不使用 因为这种方式有更好的替代方案 但是为什么要说一下呢 面试的时候问到nginx的内容肯定都会问关于nginx的宕机问题 然后如何去防治 提高nginx服务的
  • unity三种图片格式

    本文转载自 http blog csdn net caption deng article details 52366907 ARGB 是一种色彩模式 也就是RGB色彩模式附加上Alpha 透明度 通道 常见于32位位图的存储结构 RGB
  • 爬虫基础—Session和Cookie

    个人简介 作者简介 大家好 我是W chuanqi 一个编程爱好者 个人主页 W chaunqi 支持我 点赞 收藏 留言 愿你我共勉 若身在泥潭 心也在泥潭 则满眼望去均是泥潭 若身在泥潭 而心系鲲鹏 则能见九万里天地 文章目录 第1章
  • 系统架构设计师-软件架构设计(1)

    目录 一 软件架构的概念 1 架构的本质 2 架构的作用 二 架构发展历史 三 架构的 4 1 视图 1 逻辑视图 Logical View 2 开发视图 Development View 3 进程视图 Process View 4 物理视
  • 2023年26家大厂Java面试题整理了360道(分布式+微服务+高并发)

    前言 2023年的金三银四还有不到1个月的时间就结束了 这两个月 你收获了多少 前段时间一直有粉丝问我 有没有今年一些大厂Java面试题总结 最新抽时间整理了一些 分享给大家 大家一起共享学习 由于文章太长 有些解析没有详细列出 文末有获取
  • C++的STL库常用API--list

    list的简介 list是一个双向链表容器 可高效地进行插入删除元素 list不可以随机存取元素 所以不支持at pos 函数与 操作符 list使用之前的准备 include
  • Android 代码混淆

    Android混淆最佳实践 1 混淆配置 因为开启混淆会使编译时间变长 所以debug模式下不开启 我们需要做的是 1 将release下minifyEnabled的值改为true 打开混淆 2 加上shrinkResources true
  • 机器学习——LR(线性回归)、LRC(线性回归分类)与人脸识别

    忆如完整项目 代码详见github https github com yiru1225 转载标明出处 勿白嫖 star for projects thanks 目录 系列文章目录 一 LR的概念 原理与LR用于简单数据的预测 1 LR简介