开启辅助访问
 找回密码
 立即注册

编程能否用人工智能?

dsadsadsasd 回答数10 浏览数251540
只需输入要求,人工智能(程序猿的经验)就能编出所需程序。



使用道具 举报
| 未知
~yee~ | 未知
作为程序员,负责任的告诉你可以用人工智能编程,只是现在水平还不行,根本无法取代人。前不久彭博和英特尔实验室的两位研究人员,号称实现了首个能够自动生成完整软件程序的 AI 系统“AI Programmer”,架构如下:

就以这个为例来说明吧,先不说生成的程序如何,有两个致命的问题就无法解决:
1.如何让人工智能知道要干什么?
程序员写程序都是有目的的,这个目的是来源于需求,比如我要写一个万年历,这个万年历有哪些特点和功能,这些都是要说搞清楚的,而人工智能现阶段根本无法理解读懂一个需求报告,需求还会经常的改动,程序员都非常的讨厌这一点,你如何与人工智能沟通让他更改需求?
2.如何让人工智能读懂程序语言,API函数等?
让人工智能学会一个编程语言很简单,但是使用就会有问题了,不管是C、C++、JAVA还是其它语言都是面向人类的,在写作过程中经常要使用一些写好的函数,比如Windows下你希望获得磁盘的信息,包括软盘,硬盘,光盘等等可能需要用到函数GetLogicalDriveStrings(dwBufferLength,lpBuffer);人工智能能看懂吗?看不懂,这些东西都是人写的,人看起来就很直接了,GetLogicalDriveStrings()就是获取(Get)逻辑驱动(LogicalDrive)字符串信息(Strings)。对于这个问题AI Programmer 这个论文里也提到了,需要有面向机器的新的编程语言
回复
使用道具 举报
jjhdptk | 未知
不可能!
我们平常所说“人工智能”,都是指编程领域和其他领域的结合。比如AlphaGO,就是编程和围棋的结合,人脸识别就是编程和图像处理的结合,智能机器人就是编程和(机械电气)机器人技术的结合。而现在的问题变成了:在编程领域,能否实现人工智能?
人工智能往往都伴随着其他领域技术的进步,比如传感器技术、机器人技术、通信技术。另外再加上大数据的数据挖掘。而编程领域自身的智能,就不一样了。自己让自己智能,这听上去就感觉不一样,很别扭。试图通过数据挖掘找到一些通用的写法?不可能!这和其它领域的人工智能有区别。当一个汽车可以无人驾驶时,我们就说他是“智能”的,就可以暂告一个段落。而编程本身要智能,就是用编程本身去解决,这样一个无限循环,则永远不可能完成。
可以毫不夸张地说,IT是所有领域中最“智能”的,也是起步最早的。编程也是一步一步地在“智能”。但是我们远远没有看到可以有更简单的办法进行编程的可能,更不可能有编程机器人。
了解一下历史,能更好地预见未来。最开始,编程主要以汇编为主,后来人们发明了C语言等中级高级语言,编程难度大大降低。最开始,很多人做个人主页,学一堆HTML、CSS,后来随着QQ空间,新浪博客的出现,个人网站的难度大大降低,居然申请一个账号,几分钟就可以有一个属于自己的“主页”。最开始所有的编程都要自己从头写起,哪怕一个最简单的排序。后来一大堆的类库、框架、组件、中间件出现……以前一个最简单的数学问题都要用C语言、fortran或BASIC写一个程序,现在打开Excel,一个零基础的人都能分分钟搞定。
嫌写代码太累,人们发明了代码生成器。比如鼠标拖几个控件,分分钟给你生产一堆代码,比如根据数据库字段,自动生产Entity实体类……
嫌做枯燥的网站太累,网上有了现成的CMS模板,以及其他各种各样的模板,只需简单定义一些参数,马上生产一个新闻、论坛、博客等网站。有了一键换肤功能……
但是,但是,编程真的智能了吗,简单了吗?
远远没有!因为一个“智能”方法的诞生,可以大大降低编程的难度,提高编程的效率。但是,新的,更复杂的问题又会诞生!一个QQ空间是可以让你一分钟做一个属于自己的网站,但是它能实现更进一步的功能吗?Excel是可以做出大部分数学、统计等问题,再复杂的还有matlab。但是遇到更加复杂问题还需要编程,Excel的VBA脚本,matlab里的m语言……永远没有尽头!当我们不需要纠结如何写排序,求和,正态分布时,我们却又遇到了机器学习。机器学习有了现成的库,分分钟可以调用一个分类算法、回归算法时,却又遇到了深度学习(比如AlphaGO)……
从汇编,到C语言,到C++,再到java/c#,编程效率一步一步提高,甚至还有更高的,那就是脚本语言。那么往后是什么?就算是“自然语言”,“图语言”,它也需要编程。一个python脚本,shell脚本也可以写到几万行……
当我们用汇编写一个贪吃蛇游戏时,可能要用一个月的时间,后来有了图形化的高级语言,两天就可以搞定。智能吧?但是没用到头,因为又有了魔兽这样的复杂游戏。等到哪一天,写一个魔兽游戏只需要两天的时候,人们又会去开发更加复杂的游戏,可能这个游戏光安装包都是几个TB,人物更加接近真人……永远没用停止的那一天!
所以,编程其实一直都是一步一步地在智能化,但是,不管再如何智能,总是有更加复杂的问题诞生,永远没有尽头。永远不要指望简单操作就能实现一切编程目的!
回复
使用道具 举报
tegong588j | 未知
人工智能确实可以编程。
近日,据外媒 TNW 报道,Google AutoML 系统居然自己写了一串机器学习代码,其效率竟然超过了专业的研发工程师。这让我们人类的优越感何存?你们这些机器人学生啊,学习能力不要太强哦。

在人工智能顶级人才匮乏的情况下,为了让机器学习模型的设计过程更加简单,提升研发效率,谷歌于今年 5 月推出了“AutoML”,顾名思义,AutoML 实际上就是一种让模型设计过程自动化的机器学习软件,该系统会进行数千次模拟来确定代码的哪些方面可以作出改进,并在改变后继续该过程,直到达成目标。

为了测试 AutoML,谷歌将其自行设计的模型用在了专注图像识别的 CIFAR-10 与语言建模的 Penn Treebank 两大数据集上。实验证明,AutoML 设计的模型的性能表现与目前机器学习专家所设计的先进模型不相上下。令人尴尬的是,有些模型甚至还是 AutoML 团队的成员设计的,也就是说,AutoML 在某种程度上超越了自己的缔造者。

5 个月过后,AutoML 又往前迈进了一部。据外媒 TheNextWeb 报道,在某个图像识别任务中,AutoML 设计的模型实现了创纪录的 82% 的准确率即使在一些复杂的人工智能任务中,其自创建的代码也比人类程序员更好,比如,在为图像标记多个对象的位置这一任务中,它的准确率达到了 42%;作为对比,人类打造的软件只有 39% 。

AutoML 的进展超出了很多人的预期,那么为何机器在设计深度学习模型这一任务上表现的如此出色?先让我们来了解下 AutoML 的工作原理。

AutoML 是如何设计模型的?

作为 AI 领域的领头羊,谷歌其实暗地里做了不少尝试,包括进化算法(evolutionary algorithms)和强化学习算法(reinforcement learning algorithms)等,并且都展现了不错的前景,而 AutoML 则是谷歌大脑团队利用强化学习取得的成果。

在 AutoML 架构中,有一个名为“the controller(控制器)”的 RNN(循环神经网络),它可以设计出一种被称为“child”的模型架构(子模型),而这个“子模型”在训练后可以通过特定任务来进行质量评估。随后,反馈的结果返回到控制器中,以此来帮助提升下一次循环中的训练设定。如下图所示:




生成新的架构、测试、把反馈传送给控制器以吸取经验——这一过程将重复几千次,最终,控制器会倾向于设计那些在数据集上取得更好的准确性的架构。

AI 工程师古筱凡表示,AutoML 的运作过程实际上可以分成以下两部分:

    元学习的热启动:在机器学习框架中寻找效果好的算法;计算不同数据集之间的相似度,相似的数据可以采取类似的超参数。
    超参数优化,算法包括:Hyperopt(TPE 算法);SMAC(基于随机森林);Spearmint。输入不同的超参数为,以损失函数为准确率,调优器会在随机选择一些值的基础上,利用贪心算法去寻优。

下图的两个模型是基于 Penn Treebank 数据集设计的预测模型,其中左边是人类专家设计的,右边则是 AutoML 设计的。



谷歌团队表示,机器自行选择架构的过程其实和人类设计模型架构的过程是有共通之处的,比如两者都采用了合并输入,并借鉴了前向的隐藏层。不过,AutoML 也有一些值得一提的亮点,比如机器选择的架构包含了乘法组合( multiplicative combination),比如上图中 AutoML 设计的模型的最左边的“elem_mult”。对 RNN 而言,出现这种组合的情况并不常见,可能是因为研究人员并没有发现这种组合有什么明显优势。但是有意思的地方在于,近来正好有人提议过这种方法,并认为乘法组合能够有效缓解梯度消失/爆炸的问题。这意味着,机器选择的架构对探索新的神经网络架构有很大的帮助。

此外,这种方法或许还能教会人类:为何某些特定类型神经网络的效果更好?比如上图右边的架构有非常多的 channels,因此梯度可以向后传递,这也解释了为何 LSTM RNNs 的表现比标准 RNNs 的性能更好。

AutoML 开源地址是 https://github.com/automl,感兴趣的朋友可以自己动手尝试一下。

AutoML 会取代 AI 工程师吗?

AutoML 能在短时内取得显著进步,证明了用机器设计模型这个方向是有前途的,但是 AutoML 的终极目的是为了取代 AI 工程师吗?

现如今,AI 专家必须通过本能和试错来不断调试神经网络的内部架构。加州大学伯克利分校研究员 Roberto Calandra 表示 :“工程师的很大一部分工作本质上非常无聊,需要尝试各种配置来看哪些(神经网络)效果更好。”Calandra 认为,因为要解决的问题越来越难,神经网络也越来越深,未来设计一个深度学习模型的将会是一个艰巨的挑战。

而从理论上来讲,AutoML 未来设计一个深度神经网络所耗费的时间,与人类专家相比几乎可以忽略不计,而且这个由机器设计的模型的效果也会更好,显然 AutoML 将大有可为。

但是,这并不意味着 AutoML 会将人类从 AI 系统的开发过程中剔除出去。

实际上,AutoML 的主要目的会降低机器学习的门槛,促进 AI 的民主化。要知道,即便实力雄厚如谷歌,也不敢说自己已经拥有足够的 AI 人才,因此降低门槛,提高效率,对 AI 行业的发展至关重要。

谷歌首席执行官 Sundar Pichai 在上周的发布会上表示:“如今,这些(AI 系统)都是机器学习专家亲手搭建的,而全世界只有几千名科学家能够做到这一点。我们希望让成千上万的开发者也能够做到这一点。”

因此,虽然 AutoML 可能没有继承谷歌顶尖工程师的理论基础和数学才华,但是它却可以帮助 AI 工程师节省时间,或者启发他们,为他们提供灵感。

古筱凡也认为,AutoML 是真正的机器学习,它把经验性的工作自动化,现在的机器学习只是半成品。AutoML 能极大地降低未来机器学习的门槛,将是普通人使用机器学习的利器。

据悉,AutoML 团队将会对机器所设计的架构进行深入的分析和测试,帮助 AI 工程师重新审视自身对这些架构的理解。如果谷歌成功,这意味着 AutoML 将有可能引发新的神经网络类型的诞生,也能让一些非专业研究人员根据自己的需要创造神经网络,造福全人类。

AutoML 可能不会取代 AI 工程师,但是机器都这么努力了,你还有什么借口偷懒?!
回复
使用道具 举报
常务管理员 | 未知

人工智能编程早就不是什么新鲜事儿了!
2018年据报道国外谷歌已经开发出了人工智能的编程模块积木程序,这个模块化就是将人工智能自动分析与自主学习变成一个模块,你只需要一键AI便可以启用人工智能模块来进行人工智能编程啦!有这样的AI模块化积木,人工智能编程不再遥远,你可以使用各种各样AI模块去实现不一样的智能,智能学习模块,识别判断模块,神经网络模块,训练数据模块等,在未来的编程你只需要更加专注于你的创意或者问题解决,你只需要搞清楚你的要求是什么,你想要得到什么,那么这个过程人工智能会自动地给你生产相应的程序代码,而无需你再去编程了!
人工智能编程模块既然这么方便,那么这种AI模块是如何工作的呢?举个例子,可以用GameAI让人工智能自己玩起游戏来,通过生产大量的随机模型,让AI角色在游戏中不断尝试,通过这种试错模式我们可以发现游戏中bug或漏洞,从而达到自动优化游戏!AI辅助编程模块的好处显而易见了,首先对于那些日夜劳苦码代码的程序猿来说就是天大的福利,不再痛苦找bug了或者优化游戏漏洞;其次对于编程小白也是可以轻轻松松玩起人工智能编程来。
人工智能的发展是全方位的,在各个领域都开始普及人工智能,所以未来是属于人工智能的时代。那么用人工智能发展人工智能迭代加速其进步确实了不得,2018有了AI模块化编程,人工智能编程不再遥远,AI令你不再烦躁!
回复
使用道具 举报
xwmvhfb | 未知
1.首先答案是能...并且已经用了30多年了...任何一个语言...一个编译器都是人工智能...任何语言都是在描述需求...20年前还出现过可视化编程...靠拖拽控件编程...当然过时了...
2.最开始是云计算...然后是大数据...再然后是物联网...现在是人工智能...这些都是忽悠...以前的东西换个名字而已...不要被这些炒作所迷惑...世界还是原来的世界...没有任何变化...过两年还得出个概念...
3.所谓的人工智能啊...机器人工业革命100.0什么的...本质上是资本家为了降低工人成本而进行的炒作...假设工人一天是200元...那么就可以设定机器人同等效率干一天150...由于工人有吃饭睡觉的刚需...也就是必须要竞争赢机器人...那么最终会变成干一天100元在资本家处获得工作...这样工人成本降低了一半...资本家乐开了花...什么?你说机器人?这和机器人有什么关系?根本不需要机器人存在啊...只需要工人相信机器人能代替他干活就行...谁说机器人革命必须得有机器人的?当然人有多大胆地有多大产...你可以设定机器人干一天25元...然后15元聘工人干活...就看你忽悠能力了...全世界都在帮你忽悠...比如阿尔法狗...
4.用这种方法忽悠程序员...降低程序员的成本...真的很难...都是一个山上的狐狸...你玩什么聊斋...
回复
使用道具 举报
gooobooo | 未知
可以这样设想:若干年后,一个项目经理给你个机器人沟通需求问题,拿个自己整的需求文档给机器人,然后机器人就自动生成了源码并测试打包好,给客户展示,然后说,这个调大点,颜色深点,那个做个动画....
说白了,机器人就基本相当于程序员了,理论上可以实现,但有很长的路要走,需要各种前沿技术,如人工智能,机器学习,语音处理,自然语言识别,自主编程语言学习,图像识别处理等。
如果发展到这个状态,人类社会将会发生巨大变革,这时代码具有自主意识,能根据外界输入产生各种持续反应,各位想想将会发生什么?
我是一名程序员,对未来充满好奇,也认为上述情况在未来可能实现,如果要加个期限,我认为不到一万年。
今天端午,祝头条的网友端午安康
回复
使用道具 举报
yzh065 | 未知
首先回答问题: 不能!
第一、你要求程序生成程序的描述是不准确的,不完备的,有歧义的,所以,你必须找到一种精准的描述方式!那么,什么样的描述才合适?答案就是: 数学描述!把功能用数学描述出来就是一个艰难的过程。
第二、就算你能描述出来,从描述到程序也是一个艰难的问题,已经有许多人做这个很长时间了,我记得是八十年代就有人在做了,也可能更早,记不清了。这个领域叫形式化方法,但至今没能突破研究领域到实用领域。最近过世的吴文俊院士的研究内容就有这个。
最后,说一下这种方式的好处: 程序自动生成程序,可以持续改进工具,生成的代码质量最后一定很稳定,只会越来越好;第二是节省人力;第三是速度快。
回复
使用道具 举报
UbNIfxQL | 未知
这个可以说已经实现了,最简单的应用就是现在的搜索引擎,以前搜索可以认为是一个最简单的程序 最初我们需要掌握,搜索命令,参数,格式,等才能正常使用 ,现在搜索只需要一个语音关键字,就能搞定,而头条推送更是会在你的使用习惯中寻找你的兴趣点,完成搜索过程 所以这个基本的程序已经实现。下一步就是要做更复杂的技术,到时候每个人都可以自己编程 ,丰富自己的生活。
回复
使用道具 举报
IANqGpQc | 未知
我只想反问一下,有了人工智能,还用编程吗?
回复
使用道具 举报
12下一页
快速回复
您需要登录后才可以回帖 登录 | 立即注册

当贝投影