博文

五分钟搞定 Tensorflow

图片
四十行代码,用tensorflow 识别图片中的数字

什么是Recurrent Neural Network

图片
什么是Recurrent Neural Network? 循环神经网络 / 递归神经网络 ( Recurrent Neural Network ),主要解决的是 序列 类的问题,有时候顺序非常关键。比如,我喜欢苍老师的电影,和苍老师喜欢我的电影,意思完全不同;我想和马云爸爸一样有钱和马云爸爸想和我一样有钱,意思也完全不同。 那么RNN是如何工作的呢? 最重要的就是这个公式,当前状态由,上一个状态和当前输入而决定 ht 带表当前时刻的隐藏状态hidden state, ht-1就是上一个状态的hidden state, xt, 是当前时刻的输入 我    喜欢    星球大战 举个例子,我喜欢星球大战,把这句话,分成三个词,x0 是我,x1是喜欢,x2是星球大战 h0 由初始状态,和x0, "我" 来决定 h1  就由h0和x1"喜欢"来决定 h2 由h1, 和x2 "星球大战"来决定 ht-1 乘以它的weight Wh 加上 Xt 乘以它的weight Wx 两个相加, 经过激活函数tanh, 最后就得到ht了 Wh, Wx, 都没有下角标t, 所以这两个weight 是由各个时刻共享的 训练的过程就是更新这两个weight的过程,把它们优化成最佳值 刚才讲的是最基础的RNN模型,下面看一下encoder/decoder 模型是如何利用RNN 来对诗的 Encoder/Decoder 顾名思义,由两个部分组成 encoder 部分的输入是已知诗的第一句,举个例子,床 前 明 月 光,五个字, decoder 部分的输入是encoder 的输出,加上自己的上一次输出。 比如说,预测第一个字,因为decoder 自己还没有输出,所以用起始符,来表示自己上一次的输出,加上encoder 处理床前明月光的输出,这样decoder 就输出了,疑这个词 预测第二个字的时候,疑这个字就变成了输入 假设刚才输出不是疑这个字,输出了低这个字,那么预测第二个字的时候,低就变成了输入 假设预测第五个字输出是霜,预测第六个字的时候,霜变成了输入,输出是终止符,表示不用...

机器学习 梯度下降

图片
machine learning gradient descent

machine learning linear regression

图片

Paper reading: Efficient Estimation of Word Representations

图片
From google brain: https://arxiv.org/pdf/1301.3781.pdf projection layer : 投射层,maps word index to continuous vector space. ("hidden layer is removed") projection layer input 可能是一个one hot encoding 的 vector, 就是第i个word,除了位置i是1,其他全是0。这个层没有softmax, 只是单纯的投射过程。 http://mi.eng.cam.ac.uk/~gwb24/publications/mphil.thesis.pdf 之前的 forward neural network, 用前面的词来预测这个词w(t) Bag of words : 通过周围的词 (context),预测这个词 w(t)。不仅之前的词,被用到,之后的词也被用到。当然这个之前之后是有限制的 (time step)。 Skip gram : 通过这个词 w(t), 预测周围的词 最开始的input 应该都是one hot encoding value 最后的word vector 应该就是这个projection layer对应的weight, 每个词都会有一个N dimensional vector 表示,这个N可以是自定义的 比如2D result Library gensim https://radimrehurek.com/gensim/models/word2vec.html N 用size 来表示 sg=1 如果想用skip gram Tensorflow word2vec:  https://www.tensorflow.org/tutorials/word2vec

无为和有为

今天看费孝通的《乡土中国》,上面提到两种生活态度,阿波罗式的和浮士德式的。 阿波罗式的态度指遵循宇宙已有的规律,不做任何改变,我们需要做的只是生活在其中。有些像老子的 “大道无为”,最好的君主治理国家,就是什么也不做,做的越多就越有可能犯错误,同时也更加不满足现状,不光是治国,平时的生活也是如此。“五色令人目盲;五音令人耳聋;五味令人口爽;驰骋畋猎,令人心发狂;难得之货,令人行妨。是以圣人为腹不为目,故去彼取此。“ 记得第一次看到这个是在老子的千字文里面读到的,当时觉得玄的东西就很彰显个性,所以很喜欢,但是不是很懂其中的意思。人的心接触的越多,就越难以满足,所以不如从干脆克制自己内心出发。 我想起犬儒主义代表人第欧根尼,亚历山大拜访他的时候,他在晒太阳,所有财产只有一根棍子,斗篷,面包袋,木桶,亚历山大问他需要什么,他说我希望你闪到一边去,不要阻碍我晒太阳。他们不希望对社会做什么贡献,需求也极为简单,当然这个做法,有些极端。 另外就是叔本华的悲观主义哲学,他认为人类不断的追求,追求之后达到目标就是空虚,好像西西弗斯不断的往山顶推石头,推到了再掉下来重新推。 这几年流行的极简主义一部分也有这个意思,尽量精简生活所需。典型的设计有苹果,muji 另一方面浮士德式的生活态度,与极简主义截然不同,浮士德与魔鬼达成契约,说自己的追求是永远得不到满足的,如果满足了,魔鬼就可以把他带走,他则不停的向魔鬼提出各种愿望。变得年轻,富有,智慧,总是有许多新鲜想要的东西。尽管最终,浮士德帮助老百姓免受海浪侵袭,终于向魔鬼说满足了自己的心愿,但是他还是代表了一种不断追求的精神。 我很崇尚极简主义,生活上减少没有必要的愿望,但也不会走极端,还是有自己的追求,但是这个追求不应该是物质上的,更多应该注重在精神上。

WordNet BFS Shortest Path

图片
WordNet is a graph which represents a set of words,  Synset can be interpreted as a set of words, which have same/similar meaning,  For example AND_circuit AND_gate, have similar meaning "a circuit in a computer that fires only when all of its inputs fire" The Hypernym of a synset is a more general form of this synset, for example, "gate" is the hypernym of synset "AND_circuit AND_gate" and "OR_circuit OR_gate" (from priceton wordnet digraph) To find the distance between two synsets, we can use BFS,  First of all we need to build graph, after that we can run BFS 1. run BFS on synset1, Complexity (V+E), we can get distance from synset1 to each synset 2. run BFS on synset2, Complexity (V+E), we can get distance from synset2 to each synset 3. Iterate through all synset and calculate the minimum of distance_to_synset1 + distance_to_synset2 Complexity (V) Thus the total complexity is (V+E) In reality a word ma...