Tensorflow基础

Tensorflow是一个通过数据流图(data flow graph)进行数值运算的库。结点表示运算,边表示数据。所有的数据都是通过tensor来表示的。Tensor是向量和矩阵的一种推广,在tensorflow里面表示多维数组。每个tensor都有固定的数据类型(data type)和动态的维度,维度用3个数字表示,分别为rank, shape, 和dimension number。Tensor rank表示维度的个数,rank 0表示一个标量(Scalar),rank 1等价于向量(Vector),rank 2等价于矩阵(Matrix),等等;对于tensor T,可以用T[i, j, k]这种方式访问里面的数值。Tensor shape表示维度的大小,比如2x2的矩阵,5x5x7的3维数组。Tensor data type包括tf.float32, tf.float64, tf.int8, tf.int16, tf.int32, tf.int64, tf.uint8(8 bits unsigned integer), tf.string(Variable length byte arrays. Each element of a tensor is a byte array.), tf.bool.

Read More

Share Comments

从零开始的序章

自感这几年来全浪费了,从来没有认真做好一件事,总是看到有趣的就看看,然后忘记。在2017年开始的第一月,认真读几本书吧。

  1. Theoretical neuroscience: computational and mathematical modeling of neural systems.
  2. Deep learning.
  3. Probabilistic graphical models.
  4. How to build a brain: a neural architecture for biological cognition.
Share Comments

静态fMRI数据中的信息流动

大脑信号传播是通过突触完成的,具体表现是受到激发的神经元发出一个个spike,激活突触中的信号通路,这个过程一般在微秒级的时间尺度上完成的。通过测量血液中氧气浓度(BOLD信号)来间接反应大脑信号强度的fMRI技术的缺点正是时间分辨率太低,导致不能采集出神经元放电前后的变化,也就不能让我们检测到信号传导的前后顺序。即我们只能从磁共振扫描仪采集的大脑信号看出来大脑每个位置的信号随时间的波动。最近看nature neuroscience的网站,发现了一篇论文——“Activity flow over resting-state networks shapes cognitive task activations“,单单是名字就很吸引人了,从相对静态的fMRI数据发现信息流动,是一个很神奇的设想。

Read More

Share Comments

C++程序设计

函数指针

程序运行期间,每个函数都会占用一段连续的内存空间。函数名就是该函数所占内存空间的起始地址。可以把函数的起始地址赋给一个指针变量,使该指针变量指向该函数,然后通过指针变量就可以调用这个函数。这种指向函数的指针变量称为“函数指针”。

//类型名 (*指针变量名)(参数类型1, 参数类型2, ...);
int (*pf)(int, char);

//通过函数指针调用它指向的函数
//函数指针名(实参表);

Read More

Share Comments

C语言学习

C语言备忘录

#include <iostream>
using namespace std;

int main(){
    cout<<"hello, world"<<endl;
    return 0;
}

Read More

Share Comments

t-SNE:高维数据可视化

t-SNE,即t-distributed stochastic neighbor embedding,也是一种流体学习方法(manifold learning),通过保持数据点的相邻关系把数据从高维空间中降低到2维平面上,对高维数据可视化的效果非常好。本文使用python的机器学习包sklearn来对这个算法进行简单的介绍。

Read More

Share Comments

非线性维度下降之局部线性插值

非线性维度下降的目的是发现隐藏在高维数据中的低维结构,例如手写字体的方向,弯曲程度,写字风格(比如2右下角带不带环)。维度下降的基本假设是数据点位于高维空间中的一个很薄的流体上或者其附近,这个流体的维度就是数据的内在维度,远低于空间的维度,维度下降算法就是用来重构这个内在维度。

Read More

Share Comments

分类型变量的聚类算法 - ROCK

在数据挖掘中,聚类是发现数据分布模式的一种方式,把一组数据点按照某种合适的距离分成不同的簇,使得簇内有尽可能小的距离,而簇间有尽可能大的距离。本篇介绍一种适用于分类型变量的聚类算法 - ROCK,内容主要基于论文“ROCK: A Robust Clustering Algorithm for Categorical Attributes”。

Read More

Share Comments

测度论(一)

测度论可以说是一门语言,有一些基本的概念,下面做一个简单的介绍。

Read More

Share Comments

非负矩阵分解(NMF)

非负矩阵分解能够学习到对象的局部特征,例如把人脸分解成嘴巴,眼睛,鼻子等等不同的部分,在很多领域都有重要的应用,例如文本聚类,语音处理,协同过滤。其主要思想是把一个大的非负矩阵X分解为两个小矩阵(WH)的乘积,满足这两个小矩阵所有元素都不为负值的条件,即X=WH。然而完全相等很难实现,所以我们只要求能够充分接近就可以了。这时需要一个代价函数(cost function)来表示两者的差距。一种代价函数是基于欧式距离的,一种是分离度的,两个都有对应的迭代公式。

Read More

Share Comments