- 博客(38)
- 资源 (1)
- 收藏
- 关注
原创 变分自编码器(VAE)的数学原理以及实现
变分自编码器(VAE)是一种基于神经网络的生成模型,它结合了深度学习和贝叶斯推断的概念。VAE的主要目标是学习输入数据的潜在表示,并能够生成新的数据实例。
2023-12-26 10:59:48 1014
原创 LoRA(Low-Rank Adaptation)
LoRA(Low-Rank Adaptation)是一种针对深度学习模型的参数调整方法,特别适用于大型预训练模型如GPT-3或BERT。它通过在模型的原有权重上添加低秩(low-rank)矩阵,以有效且资源高效的方式实现模型的微调。
2023-12-12 22:50:40 746
原创 Stable Diffusion的数学原理
Stable Diffusion是一种深度学习模型,用于生成和操作图像。它主要基于变分自编码器(Variational Autoencoders, VAEs)和扩散模型(Diffusion Models)的结合。
2023-12-12 17:04:56 1494
原创 深度可分离卷积
逐点卷积的计算是在深度卷积的每个通道上应用 1x1 卷积核,并将结果相加。每个 1x1 卷积核应用于所有通道的同一位置,产生新的特征图。深度卷积独立处理每个输入通道,而逐点卷积负责组合这些通道的特征,这样的分解方式比标准卷积更加高效。深度卷积涉及对输入特征图的每个通道独立应用单个卷积核。深度卷积的输出是一组分离的特征图,每个通道一个。逐点卷积是一个 1x1 的卷积,用于将深度卷积的输出通道组合和混合。深度可分离卷积是一种高效的卷积操作,它将传统的卷积操作分解为两个部分:深度卷积和逐点卷积。
2023-12-09 19:22:31 996
原创 激活函数数学详解以及应用场景解释
应用 Sigmoid 激活函数的计算过程是将这个特征图中的每个元素通过 Sigmoid 函数转换。应用 Tanh 激活函数的计算过程是将这个特征图中的每个元素通过 Tanh 函数转换。其中 ( x_i ) 是一个特定输出节点的输入,分母是所有输出节点输入的指数和。应用 ReLU 激活函数的计算过程是将这个特征图中的每个元素与 0 比较,取较大者。Tanh 函数的输出是零中心的,这使得在某些情况下,它比 Sigmoid 函数表现更好。Sigmoid 函数是一个经典的激活函数,通常用于二分类问题中。
2023-12-09 18:46:24 1263
原创 卷积详解和并行卷积
ps:在 TensorFlow Keras 中,构建 Sequential 模型的正确方式是将层作为列表传递,而不是作为一系列单独的参数。而不是model=models.Sequential(layers,layers)
2023-12-08 21:46:34 1979
原创 AlexNet 网络详解
AlexNet 是深度学习和计算机视觉领域的一个重要里程碑,它在 2012 年 ImageNet 挑战赛中获得冠军,显著提高了图像分类的准确率。AlexNet 是第一个成功应用于大规模视觉识别任务的深度卷积神经网络。
2023-12-06 11:31:55 974
原创 ResNet(残差网络)详解
ResNet(残差网络)是一种深度神经网络架构,主要用于解决深度学习中的梯度消失和梯度爆炸问题,特别在深层网络的训练中表现出色。
2023-12-06 11:21:55 764
原创 clang的AST源码分析
RecursiveASTVisitor的模版类DeducedTypeVisitor。被RecursiveASTVisitor调用。注意getDeducedType。
2023-12-04 18:33:45 512
原创 贝叶斯分类器(Bayesian Classifier)
贝叶斯分类器是基于贝叶斯定理的一类统计分类方法。它们在给定数据的条件下,通过计算不同类别的概率来进行分类。
2023-12-03 23:55:35 793
原创 集成学习(Ensemble Learning)
集成学习是一种机器学习方法,它结合了多个模型的预测结果以提高整体性能。这种方法的基本思想是,多个模型一起工作比单个模型单独工作更有效。
2023-12-03 23:53:00 1034
原创 支持向量机(SVM)
支持向量机(SVM)是一种流行的监督学习方法,用于分类和回归任务。它的目标是找到一个最优的决策边界(超平面)来区分不同类别的数据。
2023-12-02 21:37:36 1042
原创 matplotlib可视化PCA后的重建图像及重建误差
该代码段展示了如何使用Matplotlib(通常缩写为plt)进行数据可视化。通过以上的plt函数,我们可以对PCA的重建效果进行可视化,并观察不同维度下的重建误差变化。
2023-12-01 18:38:58 393
原创 零LDA(Linear Discriminant Analysis)详解
零LDA是一种特殊的线性判别分析方法,用于处理具有高维特征但样本数量较少的情况。在这种情况下,传统的LDA由于“小样本问题”而变得不稳定,零LDA提供了一种解决方案。
2023-12-01 18:20:00 921
原创 线性判别分析(LDA)原理详解及实现
线性判别分析(Linear Discriminant Analysis,LDA)是一种用于分类和降维的方法。其目标是寻找一个线性组合,使得不同类别的数据在新的维度上具有最大的可分性。计算类内散度矩阵和类间散度矩阵:计算矩阵 SW−1SBS_W^{-1}S_BSW−1SB 的特征值和特征向量:选择特征值最大的特征向量:将数据投影到新的坐标轴上:SW=∑i=1c∑x∈Di(x−mi)(x−mi)T S_W = \sum_{i=1}^{c} \sum_{\mathbf{x} \in D_i} (\math
2023-12-01 17:12:10 1634
原创 主成分分析(PCA)
协方差是衡量两个变量之间线性关系的统计量。对于两个随机变量 ( X ) 和 ( Y ),其协方差定义为:CovXYEX−μXY−μYCovXYE[(X−μXY−μY)]其中,EEE是期望值运算符,μX\mu_XμX和μY\mu_YμY分别是XXX和YYY的均值。对于给定的方阵AAA,特征向量vvv和对应的特征值λ\lambdaλAvλvAvλv这里,AAA是一个方阵,v。
2023-11-30 16:08:43 1054
原创 简单的最小距离分类器
最小距离分类器(Minimum Distance Classifier)是一种简单的分类算法,它基于计算数据点到不同类别中心的距离来进行分类。它通常用于二维或多维数据的分类。
2023-11-30 15:15:04 1233
原创 谱聚类算法
谱聚类(Spectral Clustering)是一种基于图论的聚类方法,适用于识别复杂的数据结构,特别是在传统聚类方法(如K-means)表现不佳时。
2023-11-29 17:21:54 376
原创 C_means算法
模糊C均值(C-means)算法步骤算法概述模糊C均值算法是一种基于隶属度的聚类方法,允许单个数据点属于多个聚类中心。这种属于程度由隶属度表示。初始化数据输入:输入数据集,指定聚类数量 (C)、模糊系数 (m)(通常为2)、误差阈值和最大迭代次数。隶属度初始化:随机初始化隶属度矩阵,使得每个数据点对各聚类的隶属度之和为1。更新聚类中心根据当前的隶属度矩阵计算每个聚类的中心。聚类中心是数据点的加权平均,权重是其隶属度的 (m) 次幂。更新隶属度对于每个数据点和每个聚类,基于数据点与
2023-11-29 17:14:26 576
原创 定义和初始化vector
定义和初始化vector//c++11标准的列表初始化,可能编译器要加上-std=c++11 vector<int> num{1,2,3,4,5}; vector<int> a(10,1);//10个1 vector<int> a(10);//10个0,int默认为0 vector<string> a{"a","f"};//两个元素a,f vector<string> a{10};//10个空串 vector<st
2021-03-17 16:44:45 72
原创 处理string对象中的字符
获取单个字符1、范围forfor(auto a:word)2、下标运算符[ ]看成数组3、迭代器头文件cctype处理字符的函数 isalnum(c) 字母或数字为真 isalpha(c) 字母为真 isdigit(c) 数字为真 iscntrl(c) 控制字符为真 islower(c) 小写为真 isupper(c) 大写为真 isxdigit(c) 十六进制数字为真 isprint(c) 可打印字符 ispunct(c) 标点符号 is
2021-03-17 14:50:03 71
原创 标准库string的一些细节概念
拷贝初始化和直接初始化string s1="hiya";//拷贝初识化,实际如下//string tmp="hiya";//string s1=tmp;//直接初始化string s2("hiya");getline函数string word;getline(cin,word)//参数为一个输入流和一个string对象,遇见换行符结束并返回结果字面值与string对象相加string s5=s1+","+"world";//正确,(s1+",")+"world" //(s1
2021-03-17 13:26:11 69
原创 auto和decltype
auto一般忽略顶层constconst int i;auto a=i; //a为int类型,不会推导出常量,忽略顶层constconst auto b=i;//b为const int类型decltype解引用和括号int b,*I=&b;decltype (*i) c;//c为int &decltype ((b)) d;//d也为int &;...
2021-03-15 16:18:43 52
原创 指针的类型别名
指针、常量和类型别名在C++中,我们知道一般可以使用typedef进行类型的重命名,如typedef int a; 这时可以用a来代替int进行变量的声明,如a num;num此时为整型变量。在C++11标准中,可以使用using a=int进行重命名需要注意加上const的指针重命名using char*=pstring;const pstring cstr;此时cstr是一个指向char的常量指针,指针不能改变,而指针指向的对象可以改变。不能理解为替换成const char * cs
2021-03-15 12:41:25 520
原创 带符号类型和不带符号类型
带符号类型和不带符号类型的char尽管字符型有三种char、signed char、unsigned char,需要注意的是char和signed char并不一样,尽管字符型有三种,但是表现形式只有两种:带符合的和不带符合的,char类型会表现为上述两种形式的一种,具体哪种由编译器决定...
2021-03-10 15:38:48 391
原创 getline()函数以及跳出while(cin>>n)循环
C++ Primer 1.22习题困惑解答#include <iostream>#include <sstream>#include <string>#include "Sales_item.h"using std::cin;using std::cout;using std::endl;using std::string;using std::istream;using std::ifstream;using std::ofstream;us
2021-03-10 13:37:54 466
原创 文件重定向
文件重定向引入文件的原因一行一行的输入太麻烦,以c++ primer 1.21习题为例:将相同isbn书的数量和价钱进行整合#include <iostream>#include "Sales_item.h"using std::cin;using std::cout;using std::endl;int main(){ Sales_item s1,s2; cin>>s1>>s2; if(compareIsbn(s1,s2
2021-03-09 16:21:02 71
原创 输入输出运算符的连等原理
输入输出运算符的连等原理输入输出运算符输入输出运算符输入运算符>>的运算对象为两个,左侧为istream对象,如cin;右侧为存入对象,运算符》〉从给定的istream对象中读入数据,存入对象中。而输入运算符能实现连等的原因是它的返回值还是istream对象int s1,s2;cin>>s1>>s2;//(cin>>s1)>>s2;简单理解就是,把>>看成是一个函数的函数名,istream operator>>
2021-03-09 13:00:13 168
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人