7月 11

吐槽“人工智能“

我实在是太喜欢吐槽了,今天忍不住又在自己的博客偷偷吐槽别人~

今天吐槽的对象,是“人工智能”。自从alphago取得成功之后,网上大量的论调表示人工智能马上就要“全!面!”超越人类了。大量连贝叶斯公式(有点鄙视的意思哈哈)都写不出来的童鞋在网上争论的面红耳赤。每当我看到这些时总是十万个草泥马飘过,此正是证实了所谓的“无知者无畏”。

首先,我给人工智能下一个论断,在目前技术框架下,指以二进制数据存储为基本框架的计算机结构下,想要出现达到一个普通成人智力水平的人工智能,在我们的人生范围内,我指30-50年的时间,是丝毫没有机会的。这个论断够明确吧。当然,也不能排除当出现其他架构的计算机,如量子计算机、生物计算机出现时,出现基于这些计算机的人工智能的可能性,那些我不懂。

再来说说本人能够下这个论断的资格。我之所以要在这里论证自己的资格,是因为今天被人噎了一回,呵呵哒。今天是国内某顶级商学院的返校日,我去听了一个某著名投资人的讲座。高level的。这位著名投资人把自己的创业史和对于人生事业的理解讲得很深刻,分享了很多干货。很多事情和话语甚至是,我作为一个小松鼠,当大象在谈论如何过河时,我都不太能理解。当听说他的其中一位老师之一,也来自我们同一个单位时,我挺兴奋。所以我冒失的向他介绍了自己。然后他问我一个问题,你觉得未来人工智能一定会超越人类吗?我毫不犹豫的回答“不会”。他说显然你错了,我只好摇摇苦笑头说“ok”。因为我自知自己level太低了,他接触的是大学者,而现在站在他面前的不过是无名小卒。估计我们理解的未来不太一样,如果未来是一万年后,那显然我错啦,但我估计我和这位投资人的有效寿命,都超不过100年。其实我猜测如果是为了有收益的投资,能够在此生获得显著回报,周期应该不太会超过30年吧,或者50年?呵呵,我愿意为此打个小赌,看看50年后,呵呵哒~

其实我想说,对于人工智能技术上的理解,本人才是大象,而那位投资人其实只是小松鼠~。只限于技术啊,不是行业应用。我是说,没有技术支持,你们想的再好也没用。好了,正式开始论证本人的资格。首先呢,这位投资人对于人工智能的理解是从哪里听来的?当然从各种专家学者那里(她的人生履历里可没有计算机学科任何学习背景~)。但是其实不客气的说,大专家学者可以被批判的地方很多。1.他们为了接触资本,借助资本,当然不能说自己不行,也就是人工智能不行。2.国内大概80%~90%的专家,都只着眼行业和研究发展的方向,是学术专家,而对于技术层面的东西,基本都不太了解了。你让他推导bp算法,弄个gibbs采样,那估计是不太行的。那么谁对这些最了解,当然是在科研一线的博士生以及青年学者了。所以本人作为中国科研第一线研究人员,与科研战场接触的最深的人,当然最有话语权。

唉,算了,这么说大部分人是不会理解的。人们还是会问,你算老几。所以我还是得搬出真正的专家。试问中国当今人工智能最牛的专家是谁?我给这个问题的答案是南京大学的周志华教授。这么说吧,如果别人不认同,给出另外人选,那么我个人认为,这些其他人选中的一部分人,可以和周老师并列第一,都是中国超一流学者。所以,请你们去搜搜周老师对人工智能的判断,还是比较中肯的。所以千万不要以为这篇文章吐槽了那位著名投资人,其实人家超级牛逼,也愿意分享干货,是很令人佩服的。我只是吐槽当前对于人工智能的泡沫言论。

虽然如此,还是要肯定当前技术的发展。至少VR马上要火啦,10-20年内,无人驾驶的汽车要满地跑了。但是满天飞呢?还看不到吧?其实人工智能这个词,从它诞生的那一刻起,就决定了它的限制,借用我的nb师兄的经典语录“有多少人工,就有多少智能”。哈哈

所以我来给说说真正的人工智能将带来什么吧。真正的人工智能。请根据常识想一想,那时候如果人类还没有被毁灭,那就超级nb了。因为物理和数学定律都可以在那里由电脑自动算个不停了,那计算能力我去,反重力、空间传送、原子级别的直接创造材料,再直接突破强相互作用,都不是梦了。还有什么你想过吗?假如大脑的结构被解析的很透彻了,(这难道不是人工智能的前提吗),那你就永生了你知道吗。假如你的思维可以永久存储,那这付破躯壳不要也罢!

11月 09

2013最后两月+2014备忘

2013@11@9
明日开始继续学习基础,好久没学了
 
2013@12@30
今天又听说了一个神牛叫钟开莱,虽然偶不敢说偶真的学过概率论,但是咱做的事情还是扯了那么一点概率论的边。要是连近代教父都不知道,岂不是太无知啦~
 
 
7月 17

Error BackPropagation 实践 & PRML 5.3

本文主要记录BP矩阵实现。鉴于GPU服务器还没买来,现在暂时用C++编码,反正矩阵上的实现都是一样的。若公式显示有问题需要多刷新几次。

Back Propagation虽然很简单,但是每次要实现就又不太清楚了,这次可以记下来,便于温习。主要是矩阵形式有点费脑子。正好要弄个Autoencoder,就以它为例。网络如下。弄好了可以用来搞Semi-Supervised Recursive Autoencoders for Predicting Sentiment Distributions (Socher)。

正好在这个例子中,推导跟PRML5.3是一模一样的,直接抄PRML。把上面那个图一层Autoencoder抠出来,配上PRML Figure 5.7的符号,构成下图。

主要公式:$\frac{\partial E_n}{\partial w_{ji}}=\frac{\partial E_n}{\partial a_j}\frac{\partial a_j}{\partial w_{ji}}$,其中右侧$\frac{\partial a_j}{\partial w_{ji}}=z_i=x_i$

​左侧:$\delta_j=\frac{\partial E_n}{\partial a_j}=\sum\limits_k \frac{\partial E_n}{\partial a_k}\frac{\partial a_k}{\partial a_{j}}=f'(a_j)\sum\limits_k w_{kj}\delta_k$

现利用上面公式计算 PRML 5.3.2 中的例子,准备工作如下:

语言:C++,VS2012,矩阵库:MTL 4,依赖:boost,其中initializer_list出错,要不安装Microsoft Visual C++ Compiler Nov 2012 CTP,要不直接下载本文中的那个文件到include即可。

符号表示:
​WS = WORD_EMBEDDING_SIZE​
$w^{(1)}$ = mtr_encode
$w^{(2)}$ = mtr_decode
$\delta_k$ = vec_delta_out
$\delta_j$ = vec_delta_hidden
$x_i$ = vec_input
$z_i$ = vec_rep
$y_k$ = vec_output
 

图例如下,所有向量均为列向量:

首先应正向传播

mtl_col_vector vec_input(2*WORD_EMBEDDING_SIZE, 0.0);
mtl_col_vector vec_output(2*WORD_EMBEDDING_SIZE, 0.0);
mtl_col_vector vec_a(WORD_EMBEDDING_SIZE, 0.0);

//the size of row is the size of result vector
//the size of column is the size of input vector
mtl_row_matrix mtr_encode(WORD_EMBEDDING_SIZE, 2*WORD_EMBEDDING_SIZE, 0.0);
mtl_row_matrix mtr_decode(2*WORD_EMBEDDING_SIZE, WORD_EMBEDDING_SIZE, 0.0);
vec_a = mtr_encode * vec_input;

for(int j=0; j<WORD_EMBEDDING_SIZE; j++)
	    vec_rep[j] = (exp(vec_a[j])-exp(-1.0*vec_a[j]))/(exp(vec_a[j])+exp(-1.0*vec_a[j]));

vec_output = mtr_decode * vec_rep;

开始Back Propagation,第一步:

$\delta_k=y_k-t_k$  (PRML 5.65)

vec_delta_out = vec_output - vec_input

第二步,最关键的一步,计算$\delta_j$,

$\delta_j=(1-z_j^2)\sum\limits_{k=1}^{K}w_{kj}\delta_k$  (PRML 5.66)

//计算左半部分 1-z_j^2
mtl_col_vector vec_rep_square(WORD_EMBEDDING_SIZE, 0.0);
for(int j=0; j<word_embedding_size; j++)
    vec_rep_square[j] = 1.0 - vec_rep[j]*vec_rep[j];

//计算右半部分,如下图
mtl_col_vector vec_sigma_kj;
vec_sigma_kj = mtl::matrix::trans(mtr_decode)*vec_delta_out;

//不想查接口了,我自己直接替他把两个向量乘一下
mtl_col_vector vec_delta_hidden;
for(int j=0; j<WORD_EMBEDDING_SIZE; j++)
    vec_delta_hidden[j] = vec_rep_square[j] * vec_sigma_kj[j];

第三步,调整权重,

$\frac{\partial E_n}{\partial w_{ji}^{(1)}} = \delta_j x_i$  $\frac{\partial E_n}{\partial w_{kj}^{(2)}} = \delta_k z_j$(PRML 5.67)

mtl_row_matrix mtr_adjust_encode;
mtl_row_matrix mtr_adjust_decode;

mtr_adjust_encode = (LEARN_RATE*vec_delta_hidden) * mtl::vector::trans(vec_input);
mtr_adjust_decode = (LEARN_RATE*vec_delta_out) * mtl::vector::trans(vec_rep);

mtr_encode -= mtr_adjust_encode;
mtr_decode -= mtr_adjust_decode;

 

最后应该Check Gradient,见Standford UFLDL课程

// gradient checking
mtl_row_matrix w1, w2;
w1 = mtr_adjust_encode/LEARN_RATE;
w2 = mtr_adjust_decode/LEARN_RATE;
double epsilon = 1e-5;

for(int i=0; i<WORD_EMBEDDING_SIZE; i++)
{
	for(int j=0; j<WORD_EMBEDDING_SIZE*2; j++)
    {
		mtl_row_matrix w_offset = mtr_encode;
		w_offset[i][j] -= epsilon;

		//calc forword error
		mtl_col_vector vec_tmp_a(WORD_EMBEDDING_SIZE, 0.0);
		mtl_col_vector vec_tmp_rep(WORD_EMBEDDING_SIZE, 0.0);
		vec_tmp_a = w_offset * vec_input;

		for(int k=0; k<WORD_EMBEDDING_SIZE; k++)
			vec_tmp_rep[k] = (exp(vec_tmp_a[k])-exp(-1.0*vec_tmp_a[k]))/(exp(vec_tmp_a[k])+exp(-1.0*vec_tmp_a[k]));

		mtl_col_vector vec_tmp_out(2*WORD_EMBEDDING_SIZE, 0.0);
		vec_tmp_out = mtr_decode * vec_tmp_rep;

		double tmp_error = 0.0;
		for(int k=0; k<2*WORD_EMBEDDING_SIZE; k++) {
			tmp_error += (vec_input[k]-vec_tmp_out[k])*(vec_input[k]-vec_tmp_out[k])/2.0;
		}

		double gi= (derror - tmp_error) / (epsilon);

		cout<<gi<<" "<<w1[i][j]<<endl;

	}
}

TestDemo:

7月 09

Deep Learning for NLP 文章列举

慢慢补充
大部分文章来自:
包括从他们里面的论文里找到的related work
 
Word Embedding Learnig
Antoine Bordes, et al. 【AAAI'11】Learning Structured Embeddings of Knowledge Bases
our model learns one embedding for each entity (i.e. one low dimensional vector) and one operator for each relation (i.e. a matrix).
Ronan Collobert, et al.【JMLR'12】Natural Language Processing (Almost) from Scratch
 
待读列表:
Semi-supervised learning of compact document representations with deep networks
【UAI'13】Modeling Documents with a Deep Boltzmann Machine
 
Language Model
博士论文:Statistical Language Models based on Neural Networks 这人貌似在ICASSP上有个文章
 
Sentiment
 
other NLP 以下内容见socher主页
Parsing with Compositional Vector Grammars
Better Word Representations with Recursive Neural Networks for Morphology
Semantic Compositionality through Recursive Matrix-Vector Spaces
Dynamic Pooling and Unfolding Recursive Autoencoders for Paraphrase Detection
Parsing Natural Scenes and Natural Language with Recursive Neural Networks
Learning Continuous Phrase Representations and Syntactic Parsing with Recursive Neural Networks
Joint Learning of Words and Meaning Representations for Open-Text Semantic Parsing
 
Tutorials
Ronan Collobert and Jason Weston【NIPS'09】Deep Learning for Natural Language Processing
Richard Socher, et al.【NAACL'13】【ACL'12】Deep Learning for NLP
Yoshua Bengio【ICML'12】Representation Learning
Leon Bottou, Natural language processing and weak supervision
 
6月 04

Latex相关问题

以后Latex相关问题都记录在这里。
 
1.IEEE模板引用问题。
从来没用过IEEE模板,今天为了整这个模板的引用稍费了点时间。主要是引用找不到,同时出现错误:神马神马 \end{thebibliography}。解决办法:1)加入\usepackage{cite}  2)要在文章添加一个引用,避免引用为空  3)关键是要添加模板里没有的文件 IEEEabrv.bibIEEEtran.bst
 
2.用了新版的CTex之后,赫然发现最后有这样一个report。
Errors: 0  Warnings: 6  Bad Boxes: 1
我就想 Bad boxes 是啥呢,去前面的报告里看了一下,果然发现了好东西。前面有一个图片超出了边界,但是只是 2.39pt too wide,肉眼看不出来。想起之前提交文章的时候就被人说了,下次注意这个玩意。
 
3.关于subfigure  subtable的包
http://www.peteryu.ca/tutorials/publishing/latex_captions
6月 03

Deep Learning 学习资料

一年以前也发过一个类似的日志,可惜后来没好好去学,这回真的要好好学了,之后相关资料都记到这里。
1. hinton的主页: http://www.cs.toronto.edu/~hinton/
2. Deep Learning 主页: http://deeplearning.net/
3. http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial 这个高级货之前一直记着的,竟然忘记了,终于想起来了!资料列表竟然连这个也没有岂不搞笑。
 
其他琐碎:
http://www.iro.umontreal.ca/~lisa/publications2/index.php/authors/show/1
 
论文:
Hinton,【AI'89】Connectionist learning procedures
dropout的论文:Improving neural networks by preventing co-adaptation of feature detectors
【RNN】Distributed Representations, Simple Recurrent Networks, and Grammatical Structure
【RAE】Recursive distributed representations
【RAE】Linear Recursive Distributed Representations
 
【CNN】Gradient-Based Learning Applied to Document Recognition
【CNN】Notes on Convolutional Neural Network
【CNN】Best Practices for Convolutional Neural Networks Applied to Visual Document Analysis
【CNN】【NIPS'12】Imagenet classification with deep convolutional neural networks
5月 17

2013-2014学年会议

ACL 2014
  • Long Submission Deadline: January 10, 2014 (11:59pm PST)
  • Long Notification: March 5, 2014
  • Long Camera Ready Deadline: April 11, 2014
  • Short Submission Deadline: March 12, 2014 (11:59pm PST)
  • Short Notification: April 17, 2014
  • Short Camera Ready Deadline: April 30, 2014
  • Conference Starts: June 22, 2014
 
EMNLP 2014  
2013还没完,2014尚早  2013@5@20记录
 
COLING 2014 
March 21, 2014: Paper submission deadline
May 9-12, 2014: Author response period
May 23, 2014: Author notification
June 6, 2014: Camera-ready PDF due
 
AAAI 2014
  • December 6, 2013 – January 31, 2014: Authors register on the AAAI web site
  • January 31, 2014: Electronic abstracts due
  • February 4, 2014: Electronic papers due
  • March 18 – March 22, 2014: Author feedback about initial reviews
  • April 7, 2014: Notification of acceptance or rejection
  • April 22, 2014: Camera-ready copy due at AAAI office
 
EACL 2014
18 Oct 2013: paper submission
22 Nov 2013: initial reviews to author(s)
29 Nov 2013: author(s) responses to reviews
20 Dec 2013: final notification to author(s)
14 Feb 2014: camera-ready version
 
CIKM 2014 
Abstract Submission    June 4, 2014
Paper Submission    June 11, 2014
Author Feedback Request    July 21, 2014
Acceptance Notification    August 8, 2014
Final Version Submission    August 31, 2014
 
WWW 2014 poster 
  • Poster Submission Deadline : Jan. 5, 2014
  • Notifications of Acceptance: Jan. 28, 2014
  • Camera-Ready Copy Date : Feb. 5, 2014
 
SIGIR 2014
20 January 2014: Abstracts for full research papers due 

27 January 2014: Full research papers due 

 
WSDM 2014
ACM WSDM Conference will take place in New York City, USA during
Key Dates
  • Paper abstracts due: August 19, 2013
  • Papers due: August 26, 2013
  • Paper notifications: November 25, 2013
  • Conference: February 25-28, 2014​
4月 23

opinion 有用的素材

1.Identifying Noun Product Features that Imply Opinions

这个文章抽取名词opinion word。第一段列了一大片引用,当要强调opinion word的重要性时可以找这个~ 第二段列了一大片已有的抽取opinion word的方法。

 

可用的现成opinion word集合

Identifying Noun Product Features that Imply Opinions里面用的是Lexicon-Based Approach to Opinion Mining

 

Bing Liu 的 Sentiment Analysis and Opinion Mining可以在写related work的时候拿来抄抄

3月 15

英语学习

对该词表要求能在该用时就想得到

———————– 经典词表 ————————–

conventional
不要再用traditional啦,应该用conventional!这词自从上次看到一次觉得很好没有记下来之后,后来想用再也找不着了!
今天终于又让我见着了,这次一定要记下来以免再跑了。
 
akin to  类似的
feasible 可行的,这个词值得记住
epoch  network训练的一轮用这个
per se 本身
pair-wise term association
make sense 合理,说得通
counterpart 对应物,副本
syntactic constituents 句法成分
induced by doing sth,  induced from sth
———————– 经典句子 ————————–
Although the initial performance of our XX falls short from the performance of XX, it compares honorably with the performance of most competitors
这句话不错,可以用~
 
is competitive with state-of-the-art methods
 
Opinion words are words that convey positive or negative polarities
 
showing that XX do aid in performing
 
The goodness of a tree is measured in terms of its score
 
…  while incurring very little error.
 
The drawbacks that are encountered in the conventional XX method, also appear in XX, and sometimes become even more prominent.
 
highlights the weakness of current learning algorithms 突出了弱点
 
as is often the case in the context of deep learning methods
 
except in the trivial cases in which (陈述条件 比如 a=b or c=1) 除了一些微不足道的情形
 
In this paper we strive towards …
 
We will hereafter refer to these chunks as terms.