Neo4j 之 Cypher 笔记
Neo4j 之 Cypher 笔记
Cypher 简介
Cypher 是 Neo4j 提出的图查询语言,是一种声明式的图数据库查询语言,如同关系数据库中的 SQL,它拥有精简的语法和强大的表现力,能够精准且高效地对图数据进行查询和更新。
12# Alice 居住在北京(Alice:Person) -[:LIVES_IN]-> (:City {name: 'Beijing'})
节点与关系
在 Neo4j 中,数据以节点、关系的形式存储在数据库中。
节点
在 Cypher 中节点的表示方法非常简单,形式如下:
123456(node-name:label-name){ property-name: property-value, property-name: property-value, ...}
下面是一些示例:
123456() # 匿名的节点(Alice) # 节点名(变量名)为 Alice(:Person) # 类型为 ...
Self Attention 详解
Self Attention 详解
前言
注意力机制(Attention),之前也是一直有所听闻的,也能够大概理解 Attention 的本质就是加权,对于 Google 的论文《Attention is all you need》也只是一直听闻,现在乘着机会也是好好读一读。
什么是注意力机制?
Attention 机制最初是模仿人类注意力而提出的一种方法,原理也非常简单。
举个例子,当我们在观察一张图片时,我们往往会首先注意到「主体」,而后才会注意到「背景」,也就是说人类往往能够快速的从大量信息中快速提取出「主体」,也就是包含高价值的信息;
但另外一方面,我们都知道,一般来说,对于计算机来说,每个像素,每个信息都同样重要,它也不会去加以区分。
因此,Attention 机制正是希望将有限的注意力集中在重点信息上,快速得到最有效的信息。
Encoder-Decoder
Attention 经常会与 Encoder-Decoder 一起说,但事实上 Attention 并不一定要在 Encoder-Decoder 框架下才能使用的,本质上来说,「带权求和」就可以简单的解释 Attenti ...
简单使用 Frp
简单使用 Frp
前言
frp is a fast reverse proxy to help you expose a local server behind a NAT or firewall to the Internet. As of now, it supports TCP and UDP, as well as HTTP and HTTPS protocols, where requests can be forwarded to internal services by domain name.
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
由于我们学校的校园网封死了许多远程连接的软件,而开热点再使用向日葵等远程连接工具又不方便(主要是实验室信号不太好),正好又有一台云服务器,可以提供一个公网 IP,就简单研究了一下 Frp。
准备
我的环境是这样的:Linux 服务器,Windows 主机(你需要远程连接的电脑)
你可以在 Gi ...
远程访问服务器的 Jupyter
远程访问服务器的 Jupyter
前言
Jupyter notebook 是一个非常好用的工具,如果你拥有一台云服务器,那么你就可以通过浏览器访问你的私人 Jupyter notebook,在任意一台没有 Python 环境的机器上运行它。
准备工作
这里默认你已经安装了 Anaconda,如果你没有安装,请先安装 Anaconda,这也是比较便利的选择。具体的安装过程不在赘述,一直下一步就好。
你也可以通过 清华镜像源 找到你需要的版本
12wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2021.11-Linux-x86_64.shbash Anaconda3-2021.11-Linux-x86_64.sh
安装完记得配置环境变量 /etc/profile
远程访问 Jupyter
生成配置文件
1jupyter notebook --generate-config
生成密码
打开 ipython,创建一个密文的密码
1ipython
12from notebook.auth import ...
将 Hexo 部署在云服务器
将 Hexo 部署在云服务器
前言
众所周知,使用 GitHub Page 的访问速度令人发指,当然也有很多人选择部署到 Vercel,这便是我之前的选择,免费,同时还有着更快的速度。但说到底,云服务器往往是更好的选择,只要钱到位 😑。
使用宝塔面板可以比较方便快速的进行部署,不过我更想自己实际动手操作,也一边学习 Linux,就不使用了。
准备工作
本文假设你拥有 Hexo 建站相关的知识,相关的问题不再赘述,你也可以点击这里查看 Hexo 建站相关的知识。
在阅读本文之前,你需要做好以下准备:
一台云服务器
域名以及域名解析服务
云服务器
推荐阿里云和腾讯云,作为云服务的大厂还是非常靠谱的,唯一制约我们操作的就是昂贵的价格了。日常价对于学生党来说真心太贵,推荐在打折、活动时购买,很多时候首年和首月往往还是便宜的,续费就搞不起了,所以还是尽可能优惠的时候买长点吧。对个人博客而言,最基础的 1 核 2G 就足够使用了,也能让你在部署博客以外实现许多想法。
域名
你可以在阿里云、腾讯云等域名供应商中购买域名,总而言之域名还是挺便宜的,一年只需要几块钱。
云服务器中的操作
...
浅析 K-L 变换
浅析 K-L 变换
前言
K-L 转换(Karhunen-Loève Transform)是建立在统计特性基础上的一种转换,它是均方差(MSE, Mean Square Error)意义下的最佳转换,因此在资料压缩技术中占有重要的地位。
K-L 变换的本质就是一个线性变换
y=UTx\mathbf{y}=\mathbf{U}^T\mathbf{x}
y=UTx
K-L 变换的目的: 对输入的向量 x,做一个正交变换,使得输出的向量得以去除数据的相关性
原理简述
设x={x1,x2,⋯ ,xn}\mathbf{x} = \{x_1,x_2,\cdots,x_n\}x={x1,x2,⋯,xn}为nnn维随机向量
为了找到 K-L 变换矩阵UUU,令
y=UTx\mathbf{y}=\mathbf{U}^T\mathbf{x}
y=UTx
我们希望新向量y\mathbf{y}y的各个分量是独立的,因此有
E(yiyj)=0,i≠jE(y_iy_j)=0 ,\quad i \neq j
E(yiyj)=0,i=j
可以计算yyy的相关系数矩阵RyR_yRy
Ry=E(yyT) ...
字符串之字符串哈希
字符串之字符串哈希
前言
Hash 函数有助于解决很多问题,如果我们想有效地解决比较字符串的问题,最朴素的办法是直接比较两个字符串,这样做的时间复杂度是O(min(n1,n2))O(\min(n_1,n_2))O(min(n1,n2)),字符串哈希的想法在于,我们将每个字符串转换为一个整数,然后比较它们而不是字符串。
多项式哈希
哈希函数简单来说就是一个函数fff,它将输入映射到另外一个空间,以便于我们的操作。
哈希函数最重要的性质可以概括为下面两条:
如果两个对象相等,则它们的哈希值相等
如果两个哈希值相等,则对象很可能相等。
Hash 函数值一样时原字符串却不一样的现象我们成为哈希碰撞。
当选择 Hash 函数时,你需要确保碰撞概率尽可能低
对于一个长度为lll的字符串sss来说,我们可以这样定义多项式 Hash 函数:
hash(s)=∑i=1ls[i]×pl−i( mod m)hash(s) = \sum_{i=1}^l s[i] \times p^{l-i}(\bmod m)
hash(s)=i=1∑ls[i]×pl−i(modm)
更进一步,考虑序列{a0,a1 ...
【论文阅读】Detecting Spacecraft Anomalies Using LSTMs and Nonparametric Dynamic Thresholding
【论文阅读】Detecting Spacecraft Anomalies Using LSTMs and Nonparametric Dynamic Thresholding
Metadata
authors:: Kyle Hundman, Valentino Constantinou, Christopher Laporte, Ian Colwell, Tom Soderstrom
container:: Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining
year:: 2018
DOI:: 10.1145/3219819.3219845
rating:: ⭐⭐⭐
share:: true
comment:: 重点在于通过设定目标函数,最优化σ\sigmaσ,以此确定阈值范围。
前言
基于预测和阈值的方法来做异常检测,在常规的方法中,我们往往会使用一种最朴素的方法来确定阈值,也就是设置一个常数,如果超过这个常数,那么认为某个点是「异常 ...
VS Code SSH 不稳定的解决方法
VS Code SSH 不稳定的解决方法
前言
最近在使用 VS Code 远程连接实验室服务器的时候,经常碰到断线重连的情况,平常跑代码的时候倒也还好,上传下载数据的时候几乎都会断线重连,次数多了就很烦躁,网上找到了一些方法在此分享。
原因
本地使用的是 win10 自带的 openSSH,你可以打开 terminal 输入 ssh -V 查看版本信息。
12> ssh -VOpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
总是断线重连的原因可能是版本问题,我这里仿照网上的方法使用的是 git 自带的 ssh 版本,感觉升级 OpenSSH 应该也可以。
解决方法
安装 Git
安装 Git 的步骤非常简单,在 官方网站 直接下载安装
修改环境变量
找到 Path 新增路径
将 git 安装路径下的 *\Git\usr\bin 路径添加到系统自带 OpenSSH 路径(一般是 *\System32\OpenSSH)前即可(注意顺序)。
配置好之后重启 terminal 窗口,查看 ssh 版本,验证是否配置成功
12> ssh -VOp ...
时间序列数据建模流程范例
时间序列数据建模流程范例
前言
最开始在学习神经网络,PyTorch 的时候,懂的都还不多,虽然也知道 RNN, CNN 这些网络的原理,但真正自己实现起来又是另一回事,代码往往也都是从网上 copy 过来然后再自己魔改的,这也就导致了一系列的问题,代码格式不统一,没弄懂具体实现细节等等。当然,凭这些 copy 过来的代码让模型运行起来还是不难的,你只需要知晓一定的原理。显而易见,这些时间往往最后都是要“还”的。
写这篇文章主要还是记录一下整体的思路,并对网络训练的整个过程进行标准化。当然,这只是我自己在写网络时的总结而已,未必适合每一个人的风格,希望能对你有所启发。
还是从一个例子开始,问题的背景很简单,一维时序数据的预测问题。
假如你对 RNN、LSTM 的原理并不了解同样不影响阅读,说白了,这里探讨的并不是怎么建立网络,重要的是整体的流程。
你也可以 点击这里 了解 RNN、LSTM 的工作原理
准备数据
首先就是准备数据,这部分往往是最花费时间,最会发生问题的地方。这里说的准备数据并不只是丢出来一个数据库或是 csv 文件,它涉及到数据获取,数据清洗,数据标准化,创建数据集等过 ...