人工智能代码到底长什么样?_代码_神经收集
文︱编辑部
图︱网络
虚竹在惦记自己梦姑的时候,好歹还有梦境作为影象碎片。而那些让人许多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访谈》往期回顾:
本文系作者个人观点,不代表本站立场,转载请注明出处!