人工智能代码到底长什么样? 人工智能知识大全_AI知识 第1张


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

文︱编辑部

图︱网络

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

直到笔者看到这两张图:

 人工智能代码到底长什么样? 人工智能知识大全_AI知识 第2张


 人工智能代码到底长什么样? 人工智能知识大全_AI知识 第3张


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

写了这么一个答案:

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

 人工智能代码到底长什么样? 人工智能知识大全_AI知识 第4张


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

 人工智能代码到底长什么样? 人工智能知识大全_AI知识 第5张


 人工智能代码到底长什么样? 人工智能知识大全_AI知识 第6张


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

 人工智能代码到底长什么样? 人工智能知识大全_AI知识 第7张


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

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

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

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

 人工智能代码到底长什么样? 人工智能知识大全_AI知识 第8张


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

 人工智能代码到底长什么样? 人工智能知识大全_AI知识 第9张


是不是看完头皮发麻?

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

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

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

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

 人工智能代码到底长什么样? 人工智能知识大全_AI知识 第10张


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

我们得出这样的输出:

 人工智能代码到底长什么样? 人工智能知识大全_AI知识 第11张


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

我们在这里做了什么?

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

 人工智能代码到底长什么样? 人工智能知识大全_AI知识 第12张


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,打开终端,输入以上代码,你将开始你的学习。

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