文︱编辑部

人工智能代码到底长什么样?_代码_神经收集 云服务

图︱网络

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

直到笔者看到这两张图:

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

写了这么一个答案:

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

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

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

如果调教不好,AI可能有点屈曲。

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

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

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

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

是不是看完头皮发麻?

我自己都以为很难明得它。

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

每个手写数字由2828像素组成,那么就共有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访谈》往期回顾: