AI代码到底长什么样?有美人痣?闲的?圆润吗?
虚竹在想念自己梦姑的时候,好歹还有梦境作为记忆碎片。而那些让人许多AI公司爆火的、融资拿到手软的AI代码是不是也如某国公主一般呢?
直到笔者看到这两张图:
当然以上纯属玩笑,在QUORA上,一位毕业于印度理工学院人工智能与计算机科学专业、工作于Facebook的工程师Sriraman Madhavan。
写了这么一个答案:
这是我写的一个案列:根据名字来确定你是来自印度哪个地区的。根据你名字的不同状态,可以判定你的家庭人员情况,以下是代码片段:
下面这个代码不是我写的,这是个谷歌根据图片生成描述文字的创新。下面是根据图片生成描述的案例:
但等等!别高兴得太早,就上面这个代码也引发了啼笑皆非的笑话。
如果调教不好,AI可能有点愚蠢。
下面再看一个复杂的例子:
我们必须记住,AI主要只是一堆数学逻辑(尤其是在讨论机器学习和深度学习时)。编码的作用只是让计算机去执行它,并从数据中得以学习。我认为要知道AI代码长什么样,并不是要了解背后代码的外观,和如何编写代码,而是要更多理解代码中到底发生了什么。
比如,我们如何创建能够识别MNIST数据库中这些手写数字的东西呢?
如下图,只是一些Python代码,背后有很多数学逻辑。[1]
是不是看完头皮发麻?
我自己都觉得很难理解它。
这到底是个什么玩意儿?其实就是数学逻辑。
每个手写数字由28*28像素组成,那么就共有784个像素。且每个像素都被用作神经网络的输入,我们用它来训练网络。每个像素都被认作为一个输入,并通过中间隐藏层,也就是下图中的15个神经元。经过那里,我们将得到最有可能的数字估计。
即我们就会得出哪个数字的激活率最高。这种感觉就如同下图:[2]
那么我们在执行代码时会发生什么?我们所建立的网络类型称为前馈神经网络,这意味着所有数据都在一个方向上。我们使用反向传播算法来计算我们当前数据的误差,通过更改设置并在此运行神经网络。
我们得出这样的输出:
从中可以看出,在第一轮中,我们神经网络能够正确地对51%的数字进行分类,通过训练最终正确率能达到81%。相当不错的改进吧?随机猜测数字会给你10%的准确率!精度还可以进一步提高,只需要更多的计算能力。此外,对代码的更改还可以优化学习速度。使用普通计算机,你可能就会获得低于4%的错误率,而最佳结果是错误率低于1%。[3]
我们在这里做了什么?
这行代码中,我们告诉网络:
1,784个输入神经元;
2,30个隐藏层;
3,10个输出神经元。
其次,我们使用一种随机梯度下降的方法来训练我们的网络,并“降低我们的成本”。
(备注:关于随机梯度下降法,各位看官请自行搜索。)
-
AI
+关注
关注
87文章
30247浏览量
268486 -
代码
+关注
关注
30文章
4756浏览量
68370
原文标题:人工智能代码到底长什么样?
文章出处:【微信号:TechSugar,微信公众号:TechSugar】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论