文章 答疑

个人开发者如何通过人工智能盈利?

小黄人软件首席工程师,曾参与过国家助学贷款系统、百度网盘搜索引擎、工业物联网控制系统。
文章 答疑

个人开发者如何通过人工智能盈利?

目录

一、人工智能大背景,历史。

二、关于人工智能的知识网络拓扑图及学习路线。

三、阿尔法狗原理算法深入解析包含:

  • .MCTS 蒙特卡洛树搜索(选重要节点向后推断,得到最优值)
  • .CNN 卷积神经网络(分层拆分计算,求无限接近值),包括:策略网络policy network、快速走子网络playout network、估值网络value network。
  • .RL 强化学习

四、阿尔法狗适用于哪些应用场景以及如何拿来用。

五、个人如何开发一款人工智能应用。

六、个人如何利用免费的人工智能工具与平台赚钱。




一、人工智能大背景,历史。

  1. 智能是什么?从模仿游戏开始

大家知道人是具有智能的,如果做一个机器,让你分辨不出它是人还是机器,就说明这个机器具有了智能(图灵测试)。有兴趣的可以看《模仿游戏》这部电影。

图灵测试

机器是模仿人,那人是如何具有智力的呢?有人说是天生的。人出生时就像一块白板,没有数据,通过天生的AI,慢慢训练,就有了智力。

如何弄清楚智能原理呢?似乎又回到了起点,不管那么多了,先从简单的入门吧。只要造出来的机器能够体现某种智能行为即可,比如下棋、驾驶、翻译、玩游戏等。

  1. 从有规则的事起步----数学,先说说机器擅长的事。

1+1=2,2+2=4,这些机器好理解。

自1936年从理论上图灵机可以模拟任何一种计算机算法的逻辑,到现代通用计算机。再到现在的云计算。计算过程如下图,有点复杂,不过不懂没关系,这里不讲复杂的东西,跳过。有兴趣可看《汇编语言(第3版) 》王爽著。

2汇编

反正计算机很强大了,又快又准,算法越来越高效。机器终于能帮我们干许多活了,只是苦了我们这些码农。

大人说小孩子不能玩水,不能玩火,不能碰电,这也不能做,那也不能做,于是经过漫长的知识经验累积,形成了专家系统。有兴趣的可以看《疯狂原始人》这部电影。

信息越来越多,越来越复杂。信息的输入、维护、分析整理越来越不容易。

在很长的一段时间里,人们依赖逻辑和规则给计算机编程。不同的需求,编写不同的规则(If - Else),数据也通过人来标注好,比如这张图是猫,这张图是狗,反正只要能解决问题,再苦再累也值了。谁让机器不会自动学习呢? 专家系统

人为什么可以不需要根据既定的编程自动学习呢?人脑肯定是以某种形式工作。有没有一种计算机算法的演算过程与人脑的思维方式相比拟呢?

2012年一个权威的全球比赛改变了这一切。深度学习领头人Hinton的学生利用深度学习技术一出场,就拉开第二名一大截,甚至超过了谷歌这些大神。

好比武林大会,昆仑、武当、少林几个元老在切磋武艺,上下激战百来回合,也不过你棍子碰到了我的肩膀,我长剑划破了你的衣服。结果,比着比着,突然我冲上台来,掏出深度学习这把手枪,啪啪,几个元老全都被秒杀了。然后整个武林都震惊了。

工业界开始关注深度学习,接着图像识别,然后是语音识别,在这些领域,一个一个被深度学习突破。

深度学习技术是怎么做的呢?它是通过像搭积木一样地搭建那些神经网络的组合,用数据灌入到网络,接下来,就是见证奇迹的时刻了,他竟然会自己一层层的逐渐寻找出最重要的特征,比人类几十年专家经验设计的特征,效果都要要好得多。这就是深度学习技术技术牛逼的地方。

2.深度学习(人工神经网络)

大脑储存信息的方式并非将记忆储存在一个特定的地方,而是在整个神经网络里传播(分布式表征)。举个最简单的例子。一辆 "大黑狗",如果分布式地表达,一个神经元代表大小,一个神经元代表颜色,第三个神经元代表狗的类别。三个神经元同时激活时,就可以准确描述我们要表达的物体。 4分布式表征 人类大脑有数十亿个神经细胞,它们之间通过神经突触相互影响,形成极其复杂的相互联系。然而科学家们并不能解释这些具体的影响和联系。神经到底是如何进行学习以及计算的?

创建生物智能的模拟,模仿大脑的神经元之间传递,处理信息的模式,卡在了两个关键问题:1、单层的神经网络无法解决不可线性分割(异或门)2、超大的计算量。

最近几年内,随着计算能力的大幅提升(解决了问题2),还有相关学科的研究进步(反向传播解决了问题1),AI在各领域也有了突破性进展。

虽然现在科学家还没有完全弄明白人类大脑的神经网络运作方式,但人工智能科学家想,不理解没关系,先在计算机中模拟一组虚拟的神经网络试试看,这就是人工神经网络(深度学习)。

5人工神经网络

现在在围棋中,人工神经网络终于可以自己学习,也可以对其做出反应了,效率与进度让世人吃惊。AlphaGo就是以深度学习技术为基础的电脑程序。 6AlphaGo

3.人工神经网络到底是怎么学习的?简单入门

8人工神经网络算法 在人工神经网络中,每一个小圆圈都是在模拟一个"神经元"。它能够接收从上一层神经元传来的输入信号(也就是一堆数字);根据不同神经元在它眼中的重要性,分配不同的权重,然后将输入信号按照各自的权重加起来(一堆数字乘以权重的大小,再求和);接着,它将加起来结果代入某个函数(通常是非线性函数),进行运算,得到最终结果;最后,它再将这个结果输出给神经网络中的下一层神经元。 所谓的人工神经网络学习,本质上是让人工神经网络尝试调节每一个神经元上的权重大小,使得整个人工神经网络在某一个任务的测试中的表现达到某个要求(例如,识别汽车的正确率达到90%以上)。

9人工神经网络识别汽车

二、关于人工智能的知识网络拓扑图及学习路线。

  1. 下图是CSDN给的人工智能基础知识结构,有点复杂。本来就很复杂。我还是从简单的慢慢突破,争取人人可学习,人人可利用。学一个运用一个,组合运用。

人工智能基础知识结构

2.人工智能学习路线

从算法的角度看,机器学习有很多种算法,例如回归算法、基于实例的算法、正则化算法、决策树算法、贝叶斯算法、聚合算法、关联规则学习算法和人工神经网络算法。很多算法可以应用于不同的具体问题;很多具体的问题也需要同时应用好几种不同的算法。

不推荐一上来就搞的很复杂,高等数学呀、英语呀,这样会很快失去兴趣。无论走哪条路,要始终保持足够的兴趣,越深入兴趣越浓厚,否则就是走错了路。

从上面的讲解,也可以看出我的思路:从顶层抽象的原理及模块图解慢慢向下(简单,人人可理解),到具体的实现(复杂,需专业的基础,但可个个突破)。

选择自己感兴趣或者工作相关的一个领域深入下去,人工智能有很多方向,比如语音识别、计算机视觉等等。遇到的问题去找相应的算法或工具。

了解行业最新动态和研究成果,比如各大牛的经典论文、博客等。比如关于AlphaGo介绍,网上就有很多。

三、阿尔法狗原理算法深入解析

  1. 机器学习的第一步先了解业务。

围棋的业务特点包括其基本规则、对弈特性和下棋的思路。根据这些业务特点,我们可以分阶段理解AlphaGo算法。

从棋盘状态来看,围棋棋盘是有19*19=361的格子,每个格子有3种可能性(黑、白、空),所以总共有3的361次方个状态;从下棋步骤角度来看,即使不算吃子和打劫,第n步有361-n种选择,所以至少有361!(361的阶乘=361*360*…3*2*1)——超过10的200次方种可能性。,超过目前的计算机的计算能力,无法通过暴力穷举解决。

围棋是所有大家熟知的智力游戏中,搜索空间最大的,所需要的计算量也是最大的。

12围棋

不像象棋、军棋那样盘面上的棋子越走越少,而是越走越多。所以一局棋从开始到结束,用一张标记好走棋顺序的棋谱就能保存绝大部分下棋的信息,是一个时间序列。如下图就是《Nature》论文中的樊麾与AlphaGo对弈的一个棋谱:

《Nature》论文中的樊麾与AlphaGo对弈的一个棋谱

2.建模,把这个游戏表示成一个机器可以处理的问题。

基本思路与难点

所有的问题都可以表示成一个抽象函数,有着输入和输出(数据可表示为<输入,输出>对)。而下棋,输入是棋盘状态,输出是当前状态的最佳行动(数据可表示为<棋盘状态,选择>对)。机器学习的任务就是从数据中学出来这个函数,至少越来越近似这个函数。

在下棋中,虽然每个棋盘状态下的最佳行动很难给出,但下完之后的输赢很容易判定。这就是奖惩机制,这就是一个典型的强化学习问题。

同西洋跳棋和国际象棋一样,围棋可以被建模成一个搜索问题。更具体一点,下棋的步骤可以表示成一个搜索树,其中每个节点代表一个棋盘状态。根节点是空白棋盘,每个节点的子节点是在当前的棋盘下采取一个行动,即再多下一个棋子,而每一个叶子节点是一个下满了棋子的棋盘状态。而机器要做的事情,就是从当前节点中,尽量找到一条路径,到达能够使己方赢的一个叶子节点。(下图为搜索树模型)

14搜索树模型

为了找到最优路径,人工智能传统的解决方案是"搜索"(如下图),搜索空间巨大,如宇宙星空。

15围棋人工智能传统的解决方案

先假设用传统的解决方案"搜索",看看会遇到什么困难?

看下图,假设现在轮到黑棋,黑棋有b1和b2两手可选,白棋对于b1有w1和w2两手可选,白棋对于b2有w3 w4 w5三手可选:

16搜索示例

然后假设走完w1/w2/w3/w4/w5后,经过局面评估,黑棋的未来胜率分别是50%/48%/62%/45%/58%(这些胜率是怎么评估出来的?我们后文会说这个问题)。请问,黑棋此时最佳的着法是b1还是b2?

思考中……

如果白棋够聪明,会在黑棋走b1的时候回应以w2(尽量降低黑棋的胜率),在黑棋走b2的时候回应以w4(尽量降低黑棋的胜率)。所以走b1后黑棋的真实胜率是48%,走b2后黑棋的真实胜率是45%。黑棋的正解是b1。

在搜索树中,每次轮到黑棋走时,走对黑棋最有利的;轮到白棋走时,走对黑棋最不利的。由于围棋是零和游戏,这就可以达到最优解。这是一个由底往上的过程:先把搜索树画到我们可以承受的深度,然后逐层往上取最大值或最小值回溯,就可以看到双方的正解(如果胜率评估是准确的)。而实际编程的时候,是往下不断生长节点,然后动态更新每个父节点的胜率值。(下图是一个更多层的例子)

17更多层的例子

在实际对局中,胜率评估会有不准确的地方,这就会导致"地平线效应",即由于电脑思考的深度不够,且胜率评估不够准确,因此没有看见正解。

总结有两个难点:

1)搜索树太"

2017年11月22日,周三晚上8点30分,曾参与过国家助学贷款系统、百度网盘搜索引擎、工业物联网控制系统,小黄人软件首席工程师陈浩带来了主题为《个人开发者如何通过人工智能盈利》的交流。以下是主持人果冻爽整理的问答实录,记录了作者和读者问答的精彩时刻!


内容提要:

  • 人工智能发展到什么程度会取代程序猿或者其他行业,听说已经有写海报的AI了,距离取代程序猿还远吗?
  • 现在自然语言处理达到什么地步了?
  • 虽然接触了3个月AI,但是学的比较散,可以推荐一套系统的学习路线吗?
  • 前端开发转人工智能开发需要从哪方面入手,需要掌握什么技能?
  • 人工智能怎么检验自己的能力到哪种等级了?
  • 可不可以多介绍一些适合个人开发者的具体的盈利模式,以及适合个人开发者的发展方向?
  • 学习人工智能开发要求数学掌握到什么程度,没学过高数的同学应该怎样学习?
  • 移动开发与人工智能结合的场景,因为移动设备计算能力有限,有哪些应用点?
  • 前端开发和AI有什么结合点吗?
  • 人工智能是否会带来新的商业模式?
  • 人工智能与硬件、无线电、APP或小程序有哪些结合应用前景?或者比较有启发性的例子?
  • 关于自然语言处理,目前世界上有什么前沿的论文或书籍推荐吗?
  • 盈利模式的话,数据能否成为盈利点,成功的AI项目中,是如何获取训练数据的?
  • 除了经典的书籍,AI有哪些高质量论文和论坛可以供我们持续学习?

问:人工智能发展到什么程度会取代程序猿或者其他行业,听说已经有写海报的AI了,距离取代程序猿还远吗?

答:当机器智能越过奇点就会了。但现在自然语言理解都难,所以说还很遥远,不过现在有了一些辅助工具,大大减轻了程序猿的负担,比如Eclipse。而奇点说的是当智能达到一点,智能就会级数增长。


问:现在自然语言处理达到什么地步了?

答:基础理论并未有所突破。如果你想靠这赢利,比较难。要说地步,打开手机问siri或百度,看他能否懂你说的话。


问:虽然接触了3个月AI,但是学的比较散,可以推荐一套系统的学习路线吗?

答:首先了解这个领域,建立起全面的视野,培养起充足的兴趣,然后开始学习机器学习的基础,这里选择一门由浅入深的课程来学习,课程最好有足够的实验能够进行实战。如果你已经基础打下后,对机器学习已经有了充足的了解,可以用机器学习来解决一个实际的问题,然后进入较难的实战。可以选择看开源项目,以改代码为目的来读代码;也可以看特定领域的论文。都最好是为解决某个问题。学的散不要紧,关键是学习是不是为了解决某个问题。接下来就靠自己了。


问:前端开发转人工智能开发需要从哪方面入手,需要掌握什么技能?

答:人工智能起点较高,复杂,不适合普通程序员,更不适合一个人搞。但人工智能工具会越来越多,会越来越容易。这就像编程一样,有了开发工具,加上一本书《21天从菜鸟到大师》,是个人就会。要想更深入那就该学的还得学。可以选一个问题入手,尝试用人工智能的理论来解决。了解这个理论是什么?它能做什么事?它能解决什么问题?它的价值在什么地方?


即可阅读全文

打开微信"扫一扫",将本文章分享到朋友圈

快给朋友分享吧!

收藏 收藏

1236人已收藏