0%

作业内容

用Hexo搭建个人blog,主要功能是记一下自己的学习笔记和随笔(希望会真的写)

环境配置

Git 和 Github SSH key

安装成功后,需要将Git与GitHub账户进行绑定,在Git Bash中设置用户信息:

1
2
$ git config --global user.name "github 用户名"
$ git config --global user.email "github 注册邮箱"

生成ssh密钥:

1
$ ssh-keygen -t rsa -C "github 注册邮箱"

找到生成的id_rsa.pub文件,复制其中密钥至GitHub-settings-keys新建一个SSH key即可。

Node.Js

Windows直接在Node.Js官网下载即可。 下载完成后可在终端输入以下命令查看node和npm是否成功安装:

1
2
$ node -v
$ npm -v

Hexo

新建一个路径用于存放blog文件,在Git Bash中cd到该路径下,使用npm命令安装Hexo

1
$ npm i hexo-cli -g

初始化并安装组件

1
2
$ hexo init .
$ npm install

Github Pages

新建一个public仓库,仓库名为:”Github用户名”.github.io (必须以此为用户名,否则后续GitHub Pages的url会出现问题),在仓库设置中的_”Pages”部分选择‘master’_分支作为source。 GitHub Pages 配置保存后,个人主页的网站将会自动发布到 https://“GitHub用户名”.github.io,并且可以在仓库的设置页面中的 “GitHub Pages” 部分查看网页更新情况。

部署至GitHub

修改blog目录中的站点配置文件_config.yml_,加入以下内容:

1
2
3
4
deploy:
type: git
repo: <repo-url>
branch: master

完成后通过以下命令即可将本地内容推送至Github repository中,并可在浏览器中访问

1
$ hexo generate --deploy

开写

通过如下命令在_blog/source/_posts_路径下生成新的Markdown文件,修改.md文件并推送至GitHub repository后,即可在网页中查看博客内容:

1
$ hexo n "title"

blog页面布局 & 设计思路

blog的主题使用的是next,因为很简洁

主要有首页、标签和分类

降维方法认为,不同维度之间的数据包含相关性,所以可以通过某种映射方法将数据从高维空间映射到低维空间。

显然,降维必然会带来信息丢失,所以数据降维方法希望将降维带来的信息丢失造成的影响降低。

判断数据是否适合降维(充分性检测)

如果数据不同维度之间的联系非常小,那么无论怎么设计降维方法都意义不大,降维等价于信息的白白丢失。所以通常我们需要先判断数据是否适合做直接的降维,如果数据本身就不适合降维,那么可能需要在降维之前优先考虑联合维度以构造数据间的相关性。

1、协方差

当谈论数据之间的相关性时,非常自然的能够想到通过协方差进行度量: \[ \sigma(x,y)=\frac{1}{n-1}\sum_{a}^{b}(x_i-\bar{x})(y_i-\bar{y}) \] 构造协方差矩阵: \[ \Sigma=\begin{bmatrix}\sigma(x_1,x_1)&\cdots&\sigma(x_1,x_d)\\\vdots&\ddots&\vdots\\\sigma(x_d,x_1)&\cdots&\sigma(x_d,x_d)\end{bmatrix}\in R^{d\times d} \] 协方差为正意味着两个维度为正相关,反之则为负相关。值越大则越相关。

大部分的相关系数都是基于协方差构造,本质大同小异。

2、KMO检验

主成分分析之前,通常通过KMO检验判断原始数据是否适合进行主成分分析。

KMO检验值越大证明越适合进行主成分分析,通常认为值在0.6以下时不适合进行主成分分析。

python代码如下:

1
2
3
4
5
6
7
8
9
''' 检查变量间的相关性和偏相关性,取值在0-1之间;
KMO统计量越接近1,变量间的相关性越强,偏相关性越弱,因子分析的效果越好
'''
from factor_analyzer.factor_analyzer import calculate_kmo

# KMO检验
#kmo_all, kmo_model = calculate_kmo(df)
kmo = calculate_kmo(df)
print(f'KMO检验结果为:{kmo[1]}')

3、Bartlett球形度检验

Bartlett球形度检验是一种用于检验原始数据的各个变量之间是否具有较强的线性相关性的方法,是主成分分析的效度检验指标之一。

Bartlett球形度检验的原假设是各个变量之间不存在线性相关性,即相关系数矩阵是一个单位阵。如果检验结果的p值小于显著性水平(通常为0.05),则拒绝原假设,认为各个变量之间存在线性相关性,数据适合进行主成分分析。相反,如果检验结果的p值大于显著性水平,则接受原假设,认为各个变量之间不存在线性相关性,数据不适合进行主成分分析。

python代码如下:

1
2
3
4
5
from factor_analyzer.factor_analyzer import calculate_bartlett_sphericity

#进行球状检验
chi_square_value, p_value = calculate_bartlett_sphericity(df)
print(f'卡方={chi_square_value},P值={p_value}')

降维方法

降维方法总览

降维方法综述 - 知乎 (zhihu.com)

线性降维方法

1、LDA(Linear discriminant analysis)

如何理解线性判别分析(LDA)算法?能够简洁明了地说明一下LDA算法的中心思想吗? - 知乎 (zhihu.com)

LDA算法的思想是将数据投影到低维空间之后,使得同一类数据尽可能的紧凑,不同类的数据尽可能分散。

两个假设:

  1. 原始数据根据样本均值分类
  2. 不同类的样本有相同的协方差矩阵

当然,在实际情况中,不可能满足以上两个假设。但是当数据主要是由均值来区分的时候,LDA一般都可以取得很好的效果。

如果假设不同的维度可以描述的性质可以被分为几类,使用LDA似乎也能自圆其说。

但是我们不知道他应该怎么分类,所以抛弃

2、PCA

主成分分析对不同维度之间的线性相关性要求较高,尝试过后效果不佳。

3、FA(Factor Analysis)

因子分析(Factor Analysis)的原理与使用 - 知乎 (zhihu.com)

对于p维观测变量,FA假设每一个维度的变量可以表示为m个共因子和p个特殊因子的线性组合,其中m<p,从而实现了降维。 \[ \begin{aligned}&X_1-\mu_1=l_{11}F_1+l_{12}F_2+\ldots+l_{1m}F_m+\epsilon_1\\\\&X_2-\mu_2=l_{21}F_1+l_{22}F_2+\ldots+l_{2m}F_m+\epsilon_2\\\\&\ldots\\\\&X_p-\mu_p=l_{p1}F_1+l_{p2}F_2+\ldots+l_{pm}F_m+\epsilon_p\end{aligned} \] 有矩阵形式 \[ X=\mu+L*F+\epsilon \]

因子旋转

直接构造的主因子可能不具有很好的“解释性”或者“不好用”,所以我们期望通过不改变因子间相对关系的前提下进行旋转,使得主因子的解释性更强。

FA_因子旋转_正交

对于多维的主因子,我们通常保持因子之间的正交关系进行旋转,具体做法是使用Varimax方法

实验过程中,FA方法在面对高维数据时效率相当低,怀疑低效原因来自与因子旋转的过程。

非线性降维方法

1、LLE(Local Linear Embedding)

LLE旨在处理流形(manifold)建模上的降维问题。

几何学中最伟大的发明之一——流形,其背后的几何直觉与数学方法 - 知乎 (zhihu.com)

流形是一个可以在局部范围内近似为欧几里得空间的空间

地球是圆的,但是地是平的。

思想:根据流形的性质,一个点可以被周围的k个点线性表示,所以用 KNN等方法找到临近的k个点,获得一组权重,然后期望这个权重在维度更低的k个向量上也可以组合为该点的低维表示。

简单来说,LLE降维最大的特点是维护了流形局部线性的性质

算法过程:

step1:

通过KNN求得每个数据的k近邻点 \[ N_i=KNN(x_i,k),N_i=[x_{1i},\ldots,x_{ki}] \] step2:

求解权重系数矩阵W,即求解 \[ \arg\min_W\sum_{i=1}^N\|x_i-\sum_{j=1}^kw_{ji}x_{ji}\|^2,\\ s.t.\sum_{j=1}^kw_{ji}=1 \] 输入: \[ X=[x_{1},x_{2},\ldots,x_{N}],D\times N \] 权重: \[ w=[w_1,w_2,\ldots,w_N],k\times N \] step3:

映射到低维空间 \[ \begin{aligned}\arg\min_Y\Psi(Y)&=\sum_{i=1}^N\|y_i-\sum_{j=1}^kw_{ji}y_{ji}\|^2,\\&s.t.\sum_{i=1}^Ny_i=0,\\ &\sum_{i=1}^Ny_iy_i^T=NI_{d\times d}\end{aligned} \]

示意图

原图:

LLE_swiss_roll_original_data 降维后:

LLE_swiss_roll_new_data

2、LE(Laplacian Eigenmaps)

https://www2.imm.dtu.dk/projects/manifold/Papers/Laplacian.pdf

Laplacian EigenMaps - 知乎 (zhihu.com)

LE从图的角度构建数据间的关系。图中的每个顶点代表一个数据,每一条边权代表数据之间的相似程度,越相似则权值越大。

LE假设每一点只与k个相邻点相似,与其他点的相似度为0。

简单来说,LE维护了降维之后点间的相似性。

算法流程

step1:

构造图;

通过KNN求k个邻近点。

step2:

赋权

Heat kernel: \[ W_{ij}=e^{-\frac{\|\mathbf{x}_i-\mathbf{x}_j\|^2}t} \] 或Simple-minded: \[ W_{ij}=1 \] step3:

Eigenmaps,即可等效为优化问题 \[ \arg\min_{y}y^{T}Ly,\\ s.t.\ y^TDy=1 \] 其中L为Laplacian Matrix,L=D-W

CCF-A(或高认可度):

1、计算机体系结构/高性能计算/存储系统

会议:

ASPLOS: Architectural Support for Programming Languages and Operating Systems

PPoPP: ACM SIGPLAN Symposium on Principles & Practice of Parallel Programming

FAST: USENIX Conference on File and Storage Technologies

DAC : Design Automation Conference

HPCA: IEEE International Symposium on High Performance Computer Architecture

MICRO: IEEE/ACM International Symposium on Microarchitecture

SC: International Conference for High Performance Computing, Networking, Storage, and Analysis

ISCA: International Symposium on Computer Architecture

USENIX ATC: USENIX Annual Technical Conference

EuroSys: European Conference on Computer Systems

期刊:

TOCS: ACM Transactions on Computer Systems

TOS: ACM Transactions on Storage

TCAD: IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems

TC: IEEE Transactions on Computers

TPDS: IEEE Transactions on Parallel and Distributed Systems

TACO: ACM Transactions on Architecture and Code Optimization

2、数据库/数据挖掘/内容检索

会议:

SIGMOD: ACM SIGMOD Conference

SIGKDD: ACM SIGKDD Conference on Knowledge Discovery and Data Mining

ICDE: IEEE International Conference on Data Engineering

SIGIR: International ACM SIGIR Conference on Research and Development in Information Retrieval

VLDB: International Conference on Very Large Data Bases

期刊:

TODS: ACM Transactions on Database Systems

TOIS: ACM Transactions on Information Systems

TKDE: IEEE Transactions on Knowledge and Data Engineering

VLDBJ: The VLDB Journal

3、人工智能:

会议:

AAAI: AAAI Conference on Artificial Intelligence

NeurIPS: Conference on Neural Information Processing Systems

ACL: Annual Meeting of the Association for Computational Linguistics

CVPR: IEEE/CVF Computer Vision and Pattern Recognition Conference

ICCV: International Conference on Computer Vision

ICML: International Conference on Machine Learning

IJCAI: International Joint Conference on Artificial Intelligence

ICLR: International Conference On Learning Representations(高认可)

ECCV: European Conference on Computer Vision(较高认可)

EMNLP: Conference on Empirical Methods in Natural Language Processing(较高认可)

期刊:

AI: Artificial Intelligence

TPAMI: IEEE Transactions on Pattern Analysis and Machine Intelligence

IJCV: International Journal of Computer Vision

JMLR: Journal of Machine Learning Research

4、交叉/综合/新兴:

会议:

WWW: International World Wide Web Conference

RTSS: IEEE Real-Time Systems Symposium

WINE: Conference on Web and Internet Economics

期刊:

JACM: Journal of the ACM

Proc. IEEE: Proceedings of the IEEE

SCIS: Science China Information Sciences

5、计算机网络:

会议:

SIGCOMM: ACM International Conference on Applications, Technologies, Architectures, and Protocols for Computer Communication

MobiCom: ACM International Conference on Mobile Computing and Networking

INFOCOM: IEEE International Conference on Computer Communications

NSDI: Symposium on Network System Design and Implementation

期刊:

JSAC: IEEE Journal on Selected Areas in Communications

TMC: IEEE Transactions on Mobile Computing

TON: IEEE/ACM Transactions on Networking

6、网络与信息安全:

会议:

CCS: ACM Conference on Computer and Communications Security

EUROCRYPT: International Conference on the Theory and Applications of Cryptographic Techniques

S&P: IEEE Symposium on Security and Privacy

CRYPTO: International Cryptology Conference

USENIX Security: USENIX Security Symposium

NDSS: Network and Distributed System Security Symposium

期刊:

TDSC: IEEE Transactions on Dependable and Secure Computing

TIFS: IEEE Transactions on Information Forensics and Security

Journal of Cryptology

7、软件工程/系统软件/程序设计语言:

会议:

PLDI: ACM SIGPLAN Conference on Programming Language Design and Implementation

POPL: ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages

FSE/ESEC: ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering

SOSP: ACM Symposium on Operating Systems Principles

OOPSLA: Conference on Object-Oriented Programming Systems, Languages, and Applications

ASE: International Conference on Automated Software Engineering

ICSE: International Conference on Software Engineering

ISSTA: International Symposium on Software Testing and Analysis

OSDI: USENIX Symposium on Operating Systems Design and Implementation

FM: International Symposium on Formal Methods

8、计算机科学理论:

会议:

STOC: ACM Symposium on the Theory of Computing

SODA: ACM-SIAM Symposium on Discrete Algorithms

CAV: International Conference on Computer Aided Verification

FOCS: IEEE Annual Symposium on Foundations of Computer Science

LICS: ACM/IEEE Symposium on Logic in Computer Science

期刊:

TIT: IEEE Transactions on Information Theory

IANDC: Information and Computation

SICOMP: SIAM Journal on Computing

9、计算机图形学与多媒体:

会议:

ACM MM: ACM International Conference on Multimedia

SIGGRAPH: ACM Special Interest Group on Computer Graphics

VR: IEEE Virtual Reality

IEEE VIS: IEEE Visualization Conference

期刊:

TOG: ACM Transactions on Graphics

TIP: IEEE Transactions on Image Processing

TVCG: IEEE Transactions on Visualization and Computer Graphics

10、人机交互与普适计算:

会议:

CSCW: ACM Conference On Computer-Supported Cooperative Work And Social Computing

CHI: ACM Conference on Human Factors in Computing Systems

UbiComp: ACM international joint conference on Pervasive and Ubiquitous Computing

UIST: ACM Symposium on User Interface Software and Technology

期刊:

TOCHI: ACM Transactions on Computer-Human Interaction

IJHCS: International Journal of Human-Computer Studies

CCF推荐会议和期刊完整(CCF官网也有):Call4Papers - CCF推荐列表

完整内容:dblp: Browse Conferences & Workshops

为什么计算机学术界认可顶级会议论文,而其他领域几乎都是只认可顶级期刊? - 知乎 (zhihu.com)

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment