victory的博客

长安一片月,万户捣衣声

0%

盲源分离(BSS)和独立成分分析(ICA)

BSS

盲源分离是最流行的伪迹检测/移除方法之一,其目的是提取混合信号中独立的未知的源信号;同时尽可能在对源信号和混合通道没有或者有非常有限的了解下尽可能仅通过在每一个通道的输出观测到的混合信号来估计未知的混合通道。盲源分离包括ICA(独立成分分析)、CCA(典型成分分析)、MCA(形态成分分析)三种方法。

数学表示式:

X = AS + N
S’ = WX
其中,X表示观测到的信号(假设X为若干源信号和噪声信号的混合),N代表噪声信号,A为系数矩阵,W也为系数矩阵(需要对W矩阵进行估计),S’为S的估计

ICA

独立成分分析是盲源分离的一个特例,它假设组成观测信号的若干源信号是线性独立的。

基于ICA的伪迹检测和去除方法存在的问题

1.非自动的
2.需要人为介入去除观察到的伪迹

基于ICA的伪迹检测和去除方法的自动化

1.ICA+WT(Wavelet Transform,小波变换)
2.ICA+EMD(Empirical Mode Decomposition,经验模态分解)
3.使用分类器,例如SVM(Support Vector Machine,支持向量机-一种机器学习算法)
4.参考信号辅助

缺点

1.伪迹独立成分仍然可能包含残余的神经信号导致神经信号的失真
2.不能用于单通道数据
3.不适合实时应用

归一化(Normalization)

在使用机器学习算法进行分类工作时,有时候我们发现某个特征对计算结果的影响最大,然而本质上用于分类的几个特征是同等重要的,而某个特征对计算结果影响大这一现象的原因仅仅是因为这个特征的特征值值比其他特征值大。因此在处理这种不同范围的特征值时,我们通常采用的方法是将数值归一化,如将取值范围处理为0到1/-1到1之间。
:将任意取值范围的特征值转化为0到1区间内的值:
newValue = (oldValue - min)/(max-min)
其中min和max分别是数据集中的最小特征值和最大特征值
Note:改变数值范围增加了分类器的复杂度

K近邻算法(KNN)

KNN算法原理

k近邻法(k-nearest neighbor, k-NN)一种基本分类与回归方法。它的工作原理是:存在一个样本数据集合,也称作为训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一个数据与所属分类的对应关系。输入没有标签的新数据后,将新的数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本最相似数据(最近邻)的分类标签。一般来说,我们只选择样本数据集中前k个最相似的数据,这就是k-近邻算法中k的出处,通常k是不大于20的整数。最后,选择k个最相似数据中出现次数最多的分类,作为新数据的分类。

阅读全文 »

开发遇到问题怎么解决?

我们在做开发的过程中常常会遇到这样、那样的问题,软件安装出错、配置出错、代码运行报错等等令人十分痛苦的问题,那么我们遇到问题时应该怎样去solve?
Answer:我们在开发中遇到的百分之八九十的问题可以通过
“官方文档+github+stack overflow”去解决!

Framework of Paper

How to write a paper?
In fact,we need to write as follows:
Problem X is important
Previous works A, B, and C have been done
A, B, and C have their weakness
Your work D
Theoretical analysis
Experimental comparison against A, B, and C
Why D is better
Strength and weakness of D
Future work on D
So there is a framework of paper as folllows!
阅读全文 »

Comparison of Methods of Artifacts Removal

Regression Methods

Regression methods often assume that the scal potential is a linear combination of brain and other potentials(EOG、ECG、EMG).By subtracting propagated EOG/ECG/EMG from EEG recordings,EEG signals can be recovered.

Regression can also be done in frequency domain based on the concept that subtraction in the frequency domain is equivalent to filtering in the time domain.By eliminating spectral estimates of EOG/EMG/ECG from EEG recordings,it is possible to recover the non-contaminated EEG.

Disadvantages: Both types of regression methods are off-line and rely on EOG/ECG/EMG recordings,which are however,not always available.


阅读全文 »

ubuntu下虚拟环境的安装与配置

为什么要搭建虚拟环境?

如果在一台电脑上, 有不同项目, 需要用到同一个包的不同版本, 新版本会覆盖以前的版本, 其它的项目就可能无法正常运行了.。
解决方法:虚拟环境
    作用:虚拟环境可以搭建独立的python运行环境`, 使得单个项目的运行环境与其它项目互不影响。
    所有的虚拟环境都位于/home/用户名下的隐藏目录.virtualenvs下。

如何搭建虚拟环境?

安装虚拟环境的命令:
sudo pip install virtualenvo
sudo pip install virtualenvwrapper

安装完虚拟环境后,如果提示找不到mkvirtualenv命令,须配置环境变量:

# 1、创建目录用来存放虚拟环境
mkdir \$HOME/.virtualenvs
# 2、打开~/.bashrc文件,并添加如下:
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
# 3、运行
source ~/.bashrc

创建虚拟环境的命令 :
在python3中,创建虚拟环境

mkvirtualenv -p python3 虚拟环境名称
例 :
mkvirtualenv -p python3 django_py3

创建成功后会自动工作在这个虚拟环境上,工作在虚拟环境上, 提示符最前面会出现 “虚拟环境名称”。
如何使用虚拟环境?

查看虚拟环境的命令 :

workon 两次tab键 或者 回车

使用虚拟环境的命令:

workon 虚拟环境名称
例 :使用名为django_py3的虚拟环境
workon django_py3

退出虚拟环境的命令 :

deactivate

删除虚拟环境的命令 :

rmvirtualenv 虚拟环境名称
例 :删除虚拟环境django_py3
先退出:deactivate
再删除:rmvirtualenv django_py3

如何在虚拟环境中安装工具包

workon进入虚拟环境后,再使用pip进行包的安装,其安装方法和普通的安装方式一样。

安装指定Django版本示例:

pip install django==1.11.11

python3下的安装路径:

~/.virtualenvs/django_py3/lib/python3.5/site-packages/