人工智能代码到底长什么样?

人工智能
后台-插件-广告管理-内容页头部广告(手机)

人工智能代码到底长什么样?

AI代码到底长什么样?有美人痣?闲的?圆润吗?

文︱编辑部

图︱网络

虚竹在想念自己梦姑的时候,好歹还有梦境作为记忆碎片。而那些让人许多AI公司爆火的、融资拿到手软的AI代码是不是也如某国公主一般呢?

直到笔者看到这两张图:

人工智能代码到底长什么样?人工智能代码到底长什么样?

当然以上纯属玩笑,在QUORA上,一位毕业于印度理工学院人工智能与计算机科学专业、工作于Facebook的工程师Sriraman Madhavan。

写了这么一个答案:

这是我写的一个案列:根据名字来确定你是来自印度哪个地区的。根据你名字的不同状态,可以判定你的家庭人员情况,以下是代码片段:

人工智能代码到底长什么样?

下面这个代码不是我写的,这是个谷歌根据图片生成描述文字的创新。下面是根据图片生成描述的案例:

人工智能代码到底长什么样?人工智能代码到底长什么样?

但等等!别高兴得太早,就上面这个代码也引发了啼笑皆非的笑话。

人工智能代码到底长什么样?

如果调教不好,AI可能有点愚蠢。

下面再看一个复杂的例子:(作者:Mikkel Duif)

我们必须记住,AI主要只是一堆数学逻辑(尤其是在讨论机器学习和深度学习时)。编码的作用只是让计算机去执行它,并从数据中得以学习。我认为要知道AI代码长什么样,并不是要了解背后代码的外观,和如何编写代码,而是要更多理解代码中到底发生了什么。

比如,我们如何创建能够识别MNIST数据库中这些手写数字的东西呢?

人工智能代码到底长什么样?

如下图,只是一些Python代码,背后有很多数学逻辑。[1]

人工智能代码到底长什么样?

是不是看完头皮发麻?

我自己都觉得很难理解它。

这到底是个什么玩意儿?其实就是数学逻辑。

每个手写数字由28*28像素组成,那么就共有784个像素。且每个像素都被用作神经网络的输入,我们用它来训练网络。每个像素都被认作为一个输入,并通过中间隐藏层,也就是下图中的15个神经元。经过那里,我们将得到最有可能的数字估计。

即我们就会得出哪个数字的激活率最高。这种感觉就如同下图:[2]

人工智能代码到底长什么样?

那么我们在执行代码时会发生什么?我们所建立的网络类型称为前馈神经网络,这意味着所有数据都在一个方向上。我们使用反向传播算法来计算我们当前数据的误差,通过更改设置并在此运行神经网络。

我们得出这样的输出:

人工智能代码到底长什么样?

从中可以看出,在第一轮中,我们神经网络能够正确地对51%的数字进行分类,通过训练最终正确率能达到81%。相当不错的改进吧?随机猜测数字会给你10%的准确率!精度还可以进一步提高,只需要更多的计算能力。此外,对代码的更改还可以优化学习速度。使用普通计算机,你可能就会获得低于4%的错误率,而最佳结果是错误率低于1%。[3]

我们在这里做了什么?

这行代码中,我们告诉网络:

人工智能代码到底长什么样?

1,784个输入神经元;

2,30个隐藏层;

3,10个输出神经元。

其次,我们使用一种随机梯度下降的方法来训练我们的网络,并“降低我们的成本”。

(备注:关于随机梯度下降法,各位看官请自行搜索。)

那我们怎么才能自己玩转AI代码呢?

1,到GiteHub下载以上代码:

https://github.com/mnielsen/neural-networks-and-deep-learning;

2,从这本免费的在线书籍开始阅读关于AI的内容:

http://neuralnetworksanddeeplearning.com/index.html;

3,打开终端,输入以上代码,你将开始你的学习。

(备注:这只是人工智能领域中的一个分支,而识别这些数字存在很多方法。)

[1] 链接:

https://github.com/mnielsen/neural-networks-and-deep-learning

[2] 链接:

http://neuralnetworksanddeeplearning.com/chap1.html

[3] 链接:

http://yann.lecun.com/exdb/mnist/

人工智能代码到底长什么样?

《T访谈》往期回顾:

人工智能代码到底长什么样?

后台-插件-广告管理-内容页尾部广告(手机)
标签:

评论留言

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。