CNTK研究(二):测试MNIST几种识别效果

01_OneHidden,一个隐藏层,相当于简单的三层神经网络,直接用的RELU,效果不错。 Minibatch: errs = 1.560% * 10000; ce = 0.05553107 * 10000 Final Results: Minibatch: errs = 1.560% * 10000; ce = 0.05553107 * 10000; perplexity = 1.05710186 02_OneConv,一层的卷积神经网络,测试显然有所提升。 Minibatch:…

Read More

CNTK研究(一):MNIST的文件转换

CNTK的MNIST例子中,它是一个py文件,首先是将图像文件转换为文本来表达,以方便CNTK中读取。 文件位置:\cntk\Examples\Image\DataSets\MNIST\mnist_utils.py import sys import urllib import gzip import shutil import os import struct import numpy as np //定义一个读数据的函数 def loadData(src, cimg):     print ('Downloading ' + src)     gzfname,…

Read More

浮点精度问题的处理

计算时发现转换为JD值时,如2000年1月1日0点0时0分,JD值为2451545.4166707597,在还原时,变成了1999年12月31日23点59分59.999986588954926秒,这是因为浮点计算的问题导致。 通过人工修正加入一秒1/86400后,秒数变成了0.999981164932251111,换而言之,这里稳定的浮点数是0.99998这里,由于1000毫秒为1秒,而天象计算也不可能精确到这种程度,所以这里的计算可以进行简化。 故需进行浮点修正: var xxx = Math.Round(v - Math.Floor(v), 6); if (xxx < 0.50001) {         jd = v - xxx - 0.5 + 0.00001; } if (xxx > 0.50001)…

Read More

Inter cpu 获取真随机数

Intel在IVB架构的第三代CPU酷睿处理器内置了一个利用电阻热噪声取得硬件真随机数的功能,这里的代码原理就是直接用汇编指令读取16位随机数到aex寄存器。2013年的时候,英国的Kyle Condon在Change.org发起请愿,请求维护者Linus Torvalds为改进内核安全从/dev/random中移除RdRand。因为RdRand是用于生成随机数的一个指令,包含在Intel 64和IA-32指令集架构中,它依赖的一个加密标准是NSA制定的NIST SP800-90,被怀疑存在后门。Linus Torvalds对请愿迅速做出了回应,痛骂了请愿者一顿,称对方太无知。因为在Linux系统中的随机器发生器上/dev/random,会在RdRand的随机数基础上再次进行随机处理,不但能避免出现有后门的情况,同时也可以改进随机数生成的质量。   int rdrand16_step(uint16_t *rand) { unsigned char ok; /* rdrand dx */ __asm { volatile(".byte 0x0f,0xc7,0xf0; setc %1" : "=a" (*rand), "=qm" (ok) :…

Read More

美国南加州大学研究人员认为人工智能更准确预测夫妻是否即将离婚

转自网易 据国外媒体报道,人工智能会比治疗师更准确的预测你的婚姻是否出现危机。一种新型的计算机算法,能够通过人们讲话时的语调来预测夫妻关系是否出现裂痕。这种算法预测婚姻是否成功的准确率高达79%,比许多治疗师提供的数据更为准确。这种算法由南加州大学的研究人员开发,他们对134对夫妻在婚姻咨询中的上百则对话内容进行研究,并追踪这些夫妇5年来的婚姻状况,从而得出结论。该算法打 破了传统的对话模式,它通过语音处理技术记录声学特征,如声音的频率、音高、强度以及抖动等。依据这些数据来衡量一个人是否出现了情感问题。这些特性将会用于夫妻心理治疗,防止离婚。

Read More

生命游戏细胞自动机中的阴阳规律启示

  这两天一直在尝试玩生命游戏,游戏本身很简单,只是一些简单的规则迭代,但是在一定的参数条件下,可以产生复杂的涌现,这是非常神奇的一点。   一般来说,机械性的计算往往是得到机械性的结果,但是在特殊的参数构造情况下,会产生微妙的现象,产生复杂的行为规则,它的最大意义在于,这些复杂的而难以预料的规则只是由极其简单的规则所迭代出来。   这说明一个哲理,不是所有的复杂的现象都是因为复杂的原因,但也不是所有简单的规则一定能迭代出复杂的结果,只有微妙地恰好在一定的条件下才能够产生这样的效果。   而产生的这些结果,往往是难以直观预料的,以对立的事物来说,一方的力量够强到一定程度产生失衡的时候,另一方就会毁灭,这是一种常识,但是在一定的条件下,强大与弱小即使有极大的落差时,也是可以共同构成一个系统并存的。   而这一个关键就是构成一个耗散系统,耗散系统的关键是:(1)系统必须开放,是耗散结构系统;(2)远离平衡态,才有可能进入非线性区;(3)系统中各部分之间存在非线性相互作用;(4)系统的某些参量存在涨落,涨落变化到一定的阈值时,稳态成为不稳定,系统发生突变,便可能呈现出某种高度有序的状态。   而在这种情况下,就会产生自组织现象,自然界中的复杂很有可能就是这个原因导致,比如生命的产生。   细胞自动机的条件规则是这样的,每个细胞周围如果有两个细胞活的存在,那么它就按原来的状态存在,如果有三个活的细胞存在,那么就会存活,其它情况下,所有的细胞都认为不可存活---包围周围没有细胞或是细胞太多占了太多资源。   这里的关键在于参数,无论是两个细胞决定状态维持,还是三个细胞存在能让自己存活,去除任意一个条件,都难以让细胞自动机不断计算下去。      这是一个随机细胞自动机运算的其中一个状态,在继续演算时,里面有一些图案会保持原来的形状不断移动,或是产生变形,有一些新的图案不断产生,也有一些老细胞死亡凋零,得只要不断演算,它就会不断迭代下去而不会结束。        如果周围只有一个存活时,中间的细胞无论是存活还是死亡,这种规则下,自动机会不断进行运算,但是主要是出现点与线,不会出现更复杂的图案,这个参数值只要不大于三,那么自动机都能自动进行运算下去,产生的是类似于各种噪音的图案。而大于三时,会出现迅速的“清空”现象,使得整个区域只有少数处于边缘地带的能够存活。   而一个或两个都允许中间的细胞存活的话,则会导致迅速收敛成点横构成的图案。      加入更复杂一点的规则的时候,如果是周围有两个活的则中间的活,有一个活则中间维持原来的状态,也是会迅速收敛成类似如上的状态,不过会有少数的活跃点出现。   如果是采用三个细胞决定活与两个细胞决定维持状态更大的参数的话,比如四个细胞决定维持原来的状态,也可以得到比较有趣的结果,图案像是以四周为界,不断向中间喷发出东西来。   如果再修改这个参数,改成五个的话,在一定条件下,会出现由底部不断往上升的图案,就像冒泡泡一样,比较有意思的是,这个图案似乎总是从下往上冒的。 而为6或大于6时,则像是都被压抑在了四周,没有特别的变化了。 细胞自动机中间点与周围八个点,刚好可以构成九个点,这个符合九宫的形态,那么,如果采用九宫的五行生克规律在里面会出现什么情况?   这里的规则按中宫的五行来影响到周围的八宫,比较有意思的是,它一样可以如同细胞自动机一样不断运算下去,并且可以看出,通过五行生克,这里所有的线条都呈现出来了规律性,而这个角度恰好在辰巳与戌亥之间,正好是天门地户的角度,也就是说九宫是使用五行生克的方向来模拟天门地户的力量方向,而这种力量是通过阴阳流动来体现的。这说明了万物只要按九宫的规律不断迭代,就能不断计算下去。   但这样的规律性很不明显,于是我就考虑,是不是应该不考虑九宫五行,而考虑使用河图五行,会有什么样的效果,当采用河图五行后,得到了令人吃惊的效果---无论什么样的初始化状态,使用河图五行进行演算,最后都会形成有序的图案:      产生了很奇异的变化,出现了阴阳不同的明显分界线,左侧形成了上下的条纹,而右侧则是如同噪音一样的图案,如果这是一个圆的话,便会让人联想起太极图,这说明一个问题,采用河图五行,可以让客观的信息变得有序化。这给出了一种启示,通过河图五行对客观世界进行规则化所分规则化与非规则化的两面,它们作为阴阳,同时河图五行的一侧,有显然的出现阴阳分割均匀化的特征。因为中间的采用了大量的随机数任意去影响不同的区域,这提示了一种可能,就是预测把握事物的可能性,因为事物变化中间加入再多的随机数进行影响,它最终还是会统一在规则化下展现出来。   不过,阴阳的把握最重要的不是如何构造混沌,恰恰相反,而是如何消除混沌,既构造一定的条件消除中间有所参与的随机影响,保证在初始状态能直接得到终极结果,这个在另文专述。   

Read More

关于Swiss Ephemeris中的坐标

2.4.4. Coordinate systems, degrees and radians SEFLG_EQUATORIAL              returns equatorial positions: rectascension and declination. SEFLG_XYZ                             returns x, y, z coordinates instead of longitude, latitude, and distance. SEFLG_RADIANS                    returns position in radians,…

Read More

解决了起卦使用真随机数的问题

  对于灵机起卦的术数来说,要做到术数上的准确预测,先要找到目前不可预测的数据,然后从这个数据才可推出可预测的结果,这是个颇为矛盾的逻辑。   而不可预测的数据,自然是真随机数了,至于真正的随机数到底是存在还是不存在,这个很难说,是个哲学问题,万物虽然都是概率的呈现,但是概率又是什么决定的?   回正题,一开始从淘宝上查有没有硬件的真随机数发生器,可惜万能的淘宝令人失望了,然后检查电脑的CPU是Inter的,Inter的CPU正好提供有真随机数的发生器,于是动念头想直接访问Inter的CPU,查了一下,需要下载Inter的数学库,于是就去慢慢下载。   下完后竟然发现不能运行,因为版本太老不支持XCode6,所以竟然连安装都不让安装,只好放弃。   于是又查有没有其它办法可以通过这种方式获取随机数,花了许久,运气不错发现篇文章表示Inter提供直接使用汇编指令来访问CPU。   然后麻烦就来了,这个是MAC的系统,编译出来是dylib库,然后尝试通过mono去调用,无论如何也提示调用不了,找不到文件。然后又继续翻网站,终于发现,原来编译时,只能编译成32位的,这样Mono才能调用,来回折腾了几次后,成功实现真随机数的调用了。   不得不说,国内的资料实在不好查,还是英文网站上的资料比较全一些,虽然折腾了一个晚上,但还是值得的,能够实现真随机数的调用,能够解决很多问题。   产生的真随机数图如下:      而相同绘图算法C#生成随机数如下:      比较奇怪的是,差异并不是很明显,是MAC底层的随机数算法做得极好的缘故?所以近似于真实随机数的效果了?   不过想来伪随机数与真随机数还是会有差别,这个需要用大量的卦例进一步检验了。      其它还有一些真随机数的生成办法,不过没有实现,这里也提一下:   在IPAD或是IPhone或是Android机上,是没有CPU能够支持随机数的,要做到能在这些上面更准确的起卦,尤其是梅花卦,应该考虑如下方案来生成熵池起卦:   1、通过访问重力感应,求测者随意摇晃手机,从中搜集精确的数据用来起卦,类似于真实的摇签或摇卦,据在下所知,现在还没有真正如此来实现的,大多的摇晃起卦,实际上是早就用伪随机数起好了,然后摇晃只是发个声而已。   2、求测者随意在屏幕上乱点乱划,然后搜集数据来综合起卦,这样得到的卦测算起来就更加方便,不过这种效果直觉上有略有折扣。   3、打开麦克风,通过麦克风搜集实际的噪音,动态调整振幅后,随机采集数据。这个还可以更加改进,让求测者念一句话,因为发音总有变化,通过提取变化,可以得到真实随机的采样。     4、对使用者用摄像头拍照,根据照片的色彩矩阵做一个运算,从而得到卦,这种起卦方式应该是比较灵验的,顺便还能让卦师结合面相也一起看了,不过有影响隐私的嫌疑。     以上四种起卦方式,可以在移动设备上进行。

Read More