AI | 你本可以发明深度学习

对于有耐心的读者,我强烈推荐从 CS 自学指南 深度学习板块中选择一个课程看完,我看的是 CS231n。本篇文章仅是使用自然语言模糊地介绍深度学习。

正文

当你看到这个图片:

猫猫虫

你能瞬间反应过来这是一只「猫猫虫」。

你反思这个过程,发现这个过程和数学上的函数一一对应:

1
nameOf("bugcat.jpg") = "猫猫虫"

你设想,如果能把这个函数的表达式写出来,不就能让机器帮你归类图像了吗?

但你发现了一个困难:对于不同的图片,会映射为不同的名字:

1
2
3
nameOf("chicken.jpg") = "鸡"
nameOf("basketball.jpg") = "篮球"
// ...

因此手动找到函数的表达式是困难的。

你只好开摆,但发现摆不了,工头给了你一堆任务。但这使你灵机一动:为什么不能让机器自己来找呢?

但你又发现了一个困难:假设全世界有 $N$ 种不同的字符串,有 $M$ 种不同的图片,则函数的表达式有 $N^M$ 种可能,而这显然比天文数字还大!要如何在 $N^M$ 中可能性中定位出正确的那一些呢?

于是你开始开摆,启动了「明日方舟」,打开了新的关卡,却玩失败了。这使你灵机一动:其实没有必要一下定位到正确的解,只要每一次能让解优化一点点就行了,次数多了自然会越来越正确。

但你又发现了一个困难:解怎么样才算优化?显然「猫猫虫」和「猫猫」天差地别,但「猫猫虫」和「咖波」则相对较为接近,如果武断地检测字符串相似度显然是不可取的。

于是你开始开摆。在刷水群的时候,你看到这样一张图片:

西瓜鼠

这是鼠鼠?还是西瓜?你发现你自己也不太清楚。但这使你灵机一动:你指定了猫猫虫、鸡、篮球等各种标签,然后让机器预测图片是每一种的概率多大。假设输入的是一张猫猫虫图片,显然是 100%, 0%, 0% 的时候最优。如果机器预测结果不最优,只需要令其自主微调函数,使结果更接近 100%, 0%, 0% 就行了。

至于怎么微调?这是数学问题,有人帮你解决了。也就是说,你已经发明了一个可以归类图像的深度学习模型。

展望

在此之后,你把输出从字符串换成图片,输入图片前给其加点噪声,输出目标是获得和原图尽可能接近的图像,训练数日再输入一幅完全噪声图像,令其不断去噪,就得到了一个 AI 绘画工具;你把输入从图片换成字符串,输入英文,输出翻译结果每个字是每个中文字的概率,目标是在正确结果处为 100% 而在错误结果处为 0%,就得到了一个翻译器……

你感觉前途广阔起来,用 AI 重写所有行业的规则变成了你的梦想。但你深显卡稀少,水课繁多,你的梦想真的能实现吗?实现了这个梦想,又真的能让你更幸福吗?