Charles 4.x crack

Step 1: Create a licence file

cat >> License.java <<EOF
package com.xk72.charles;
public final class License {
public static boolean a() { return true; }
public static String b() { return "http://www.nathanmap.com"; }
public static String a(String name, String key) { return null; }
}
EOF

Step 2: Inject license

javac -encoding UTF-8 License.java -d .
sudo jar -uvf $charleslib/charles.jar com/xk72/charles/License.class

机器学习⊕位置决策——基本概念

令人生畏的人工智能

       人工智能今年特别火爆,以AlphaGo为首的机器大放异彩,各路豪杰也够纷纷加入到阵营中,堪称人工智能元年。铺天盖地的AI名词席卷而来,“人工神经网络”、“机器学习”、“深度学习”,“SVM”,“RVM”,“决策树”,“随机森林”等各种名词应接不暇,频繁出现在各个媒体、会议、产品介绍、创业项目之中,真可谓“入万花春谷,光景烂漫”。

       我是一个科幻迷,涉猎各种路数的科幻小说电影杂志。去年荧屏上有一部高分科幻电影,屡次看到后选择跳过,迟迟没有观看。这部电影的主题很吸引我,好奇心差点驱使我观看,但每次看过影片的剧照后,总有一丝恐惧感,一种莫名的抵触情绪油然而生,隐隐觉得这不是一部轻松的影片。

那眼神简直了,看穿你的前世今生~

那眼神简直了,看穿你的前世今生~

       这部电影正是机械姬(Ex Machina),单凭海报就觉得主角一定是个狠角,掌控一切的气息扑面而来,关键是这货不是人,但又让你以审视人的眼光去看待TA,真令人不寒而栗。电影情节的主要是围绕“图灵测试”展开。

图灵测试(英语:Turing test,又译图灵试验)是图灵于1950年提出的一个关于判断机器是否能够思考的著名试验,测试某机器是否能表现出与人等价或无法区分的智能。测试的谈话仅限于使用唯一的文本管道,例如计算机键盘和屏幕,这样的结果是不依赖于计算机把单词转换为音频的能力。
— https://zh.wikipedia.org/zh-cn/图灵测试

       维基上balabala一大堆,核心要义就是你无法分辨你面前的是人还是机器。影片的结尾令我感到深深的恐惧,恐惧的原因不是单纯的机器混到了人群中,而是一个会撒谎的机器雪藏在人类社会中。假如机器本可以通过图灵测试,让人无法分辨,但机器通过撒谎故意不通过图灵测试会是一幅什么样的场景?看着身边的手机和眼前的电脑,不禁倒吸一口凉气。

世界上有10种人

       “世界上有10种人,一种是知道二进制的,一种是不知道的”,这是经典的段子。十进位制用0~9进行计数,用不多于10个号码代表一切数值,逢十进一,如9+1=10。同理,二进位制用0和1进行计数,用2个号码代表一切数值,因此,在以上段子中,“10”读作“一零”,实际上是逢二进一的表达1+1=10。

       二进位制对于程序员来说意义重大,因为他们每天面对的机器从诞生之日起就是个“二货”,只认0和1,任何复杂操作都是一连串非黑即白的“开”和“关”控制着电信号的传播,我们称之为“逻辑门”。从此,机器拥有了逻辑运算的能力,这意味着机器将有处理复杂问题的潜力。例如,假设有两个逻辑命题,分别是“正在下雨”和“我在屋里”,我们可以将它们组成复杂命题“正在下雨,并且我在屋里”或“没有正在下雨”或“如果正在下雨,那么我在屋里”。这真是一件非常了不起的事情!

       想想我们经过亿万年进化而成的复杂大脑,逻辑门似乎有异曲同工之妙!每天大脑的神经元之间就是不断的你来我往互相放电,神经突触如开关般掌管着川流不息的电流走向,铸就了每个人伟大的“开关”人生。

开关的一小步,人工智能的一大步

       我特别热衷写程序去控制机器,操作机器去完成那些费时费力重复性的劳动。以前做互联网地图时,往往要花费大量的人工去处理数据,比如那些横七竖八的立交桥数据,要怎么才能让机器理解它们错综复杂的关系呢?全国那么多立交桥,人工怎么处理呢?

       复杂的问题最后被抽象成了一堆逻辑处理流程,计算机能够基于这些逻辑顺序,日夜不停的开工操作,不足一周,全国的立交桥数据就都搞定了。如果换做纯人工操作,像我这样比较熟练的工人10分钟处理一座立交桥,一个月差不多能做10个城市。如果要达到机器的效率,至少得有100个熟练工操作。可见机器的威力是巨大的,但前提是得有人把问题清楚的描述给机器。万一问题太过于复杂,无法描述清楚,能不能让机器自己去描述解决问题呢?

       为了让机器能自主描述解决问题,得先弄清楚我们自己做决策的过程。以下我们用一个简单好理解的M记快餐选址问题来剖析整个决策过程。

       回想一下前面提到的“二货”机器,只要“开关”设置合理,就能解决问题。在此我们介绍一个叫做“感知器(Perceptron)”的人工神经元,用人工神经元来描述这个选址问题。

Screen Shot 2016-11-18 at 10.46.33 PM.png

       从上图感知器可以看出,如果我们做出最终决策是通过衡量50%的话语权是否得到满足的话,A方案只有“竞争对手”是决定因素,而B方案拥有三个决定因素。显然这个不是人类决策的完整模型!但是这说明了一个感知器能将不同的因素进行加权来进行决策。可以想象如果设定一个复杂的感知器网络就能做出非常精妙的决策。如下图,我们可以根据5个因素作出三个决策,把这三个决策作为因素又作出另外四个决策,而这四个决策相较前面三个决策而言会复杂很多,也更抽象。以此类推,更多层的感知器能够进行更加复杂的决策。

       感知器可以说是一种最简单的神经网络,虽然结构简单,但能够学习并解决相当复杂的问题。半个多世纪前发明的一个小“开关”,成就了人工智能今天在很多领域伟大的表现。

       后面几篇文章我将深入介绍机器学习的原理以及在位置决策中的不同应用表现。