读天才与算法:人脑与AI的数学思维笔记05_算法的幻觉
![](https://img2024.cnblogs.com/blog/3076680/202404/3076680-20240420231214197-1973251701.png)
1. 自下而上
1.1. 代码在未来可以自主学习、适应并进行自我改进
1.2. 程序员通过编程教会计算机玩游戏,而计算机却会比教它的人玩得更好,这种输入寡而输出众的事情不大可能实现
1.3. 早在20世纪50年代,计算机科学家们就模拟该过程创造了感知器
1.3.1. 其原理是:神经元就像一个逻辑门,接收输入的信息,然后通过计算来判断是否触发并产生兴奋反应
1.3.2. 通过调整权值和阈值来模拟你的行为
1.3.3. 更为精细的感知器,如S型神经元,可进一步地平滑输出,而不仅限于“是”和“否”两种结果
1.3.4. 归根结底,还是因为数据,感知器的学习和进化需要数据的支撑
1.3.4.1. 我们可通过编程为感知器分配初始的权值和阈值,通过真实的输入数据对其进行训练,每一次错误的预测都将会作为反馈,用以促进权值的调整和修正
1.4. 过去的5年间产生了现在世界上90%的数据
1.4.1. 互联网每天创建的数据可达到1EB(1018),约为2.5亿张DVD光盘所存储的数据量
1.4.2. 现在,人类两天内产生的数据量,就可以媲美从“文明曙光时代”到2003年所产生的数据量的总和
1.5. 海量的数据是机器学习进入新时代最重要的催化剂
1.5.1. 在此之前,一直不具备任由算法在数据之中学习、遨游的客观条件
1.6. 数据对于新的变革尤为重要,因此它也被称为“新的石油”
1.6.1. 访问数据,相当于在21世纪的“油田”中进行开采
1.6.3. 严格意义上说,也不是完全免费,因为我们也在它们提供的服务中获得了数据的“交换
1.6.3.1. 严格意义上说,也不是完全免费,因为我们也在它们提供的服务中获得了数据的“交换
1.6.3.2. 很多人意识不到这种“交换”的重要性,不愿提供有价值的数据,因此其所得回报甚少
1.7. 机器学习的核心是在经验学习中改进算法的性能
1.7.1. 对每个输出的结果进行自判断并即时调整算法公式,避免再次出错,在错误中不断学习进而得到改进
1.7.2. 数据访问十分重要的原因
1.7.2.1. 数据越多,可用来进行训练的样本越多,得到的经验就越丰富,算法可以在不断迭代的过程中不断完善
1.7.2.2. 程序员创建的元算法遇到不同的数据,就会发展成不同的新算法
1.7.2.2.1. 这种新方法的有效性同样震撼了整个人工智能领域,部分原因在于其底层技术并非独特的新技
1.7.3. 机器学习为其开辟了一个新篇章,即算法会像我们人类一样成长并走向成熟
1.8. 在自下而上的算法设计思路下,算法可以基于训练数据自主创建决策树
1.8.1. 网络上大量的训练数据
1.8.1.1. 带标签的视觉数据(例如,Instagram上带评论的照片)
1.8.2. 会为人工智能在视觉识别领域的迅速发展提供基本的支撑条件
2. 计算机的视觉问题
2.1. 人类大脑具备惊人的能力,可迅速处理数据并输出答案
2.2. 当看到一幅图像或一些特别的笔迹时,人类非常善于辨识出这幅图像或文字的特点,而计算机程序却不足以应对所有的变化
2.3. 通过由猫的图像组成的数据库对算法进行训练,算法逐渐建立起一个问题层次结构,它可以向一幅具有高准确度的图像发问,并将其准确地识别为猫
2.3.1. 我们真正在做的是训练视觉识别的算法
2.3.2. 用这些训练数据作为最好的问题类型可以训练算法,以便其区分猫和非猫的图像
2.3.3. 每当算法识别错误,它将进行调整以便下次能够正确识别
2.4. 算法在大部分时间都在工作,但达不到100%,所以关键是要让其尽可能达到“最"
2.4.1. 确定性算法到概率性算法的转变是一个重大的心理突破,类似于让数学家用工程师的思维方式去考虑问题
2.5. 在过去,我们都是通过苦思冥想或突发的灵感去设计一系列巧妙的问题
2.6. 机器学习会从一些我们认为可能解决问题的候选问题开始,所以不算是零起点学习
2.6.1. 学习的过程就是将最初的想法逐渐优化,从而形成有效的解决方案
2.6.2. 随着不断提问、回答、分析,该像素点位于身体哪个部位的答案将逐渐浮出水面
2.6.3. 我们的目标是能够找到那些提供有价值的信息的问题
2.6.4. 算法自己找到了最优的问题集合,但程序员并不真正清楚它是如何得到这样的结果的
2.6.4.1. 他们可以查看决策树中任何一个结点及其前后结点上所询问的问题,但树中的问题超过百万个,每个问题又略有不同,所以很难采用逆向工程法得出算法具体是怎样解决问题的
2.7. 机器学习所面临的挑战之一是“过度拟合”
2.7.1. 假设函数为了完美地拟合样本集,引入了过多的高次项
2.7.1.1. 虽然这样做可以得到良好的样本拟合结果,但与实际情况完全偏离
2.7.2. 针对训练数据提出用以区别图片的问题相对容易,但设计一个不针对特定数据的通用程序却非常困难,它需要从数据中抽象出广泛适用的规则
2.7.3. 有必要减少方程的项数,以避免出现过度拟合的问题
2.7.4. 过度拟合会误导你在建模时过分关注细节而错过数据呈现出的总体趋势,然后产生不符合客观规律的预测结果
3. 算法的幻觉
3.1. 新算法可以驾驭或识别的不仅仅是人类的身体
3.1.1. 数码相机对图像细节的捕捉能力远超过人类大脑,但在图像识别的过程中,计算机读取到的是一个个孤立的像素点,而不是一副完整、有内容、有故事的图片
3.2. 接收到感官传递过来的信息后,人类大脑是如何将其当作一个整体看待的?
3.2.1. 复制这种融合能力,一直是计算机解释图像所面对的挑战之一
3.2.2. 按像素读取图像的方式,无法帮助计算机获得图像的整体信息
3.3. 由于沙漠的颜色跟人的肤色相近,而起伏的沙丘又极像裸露的身体曲线,所以很多人用作屏保的沙漠图片,有时就会被误认为是色情图片了
3.3.1. 马克·斯托克斯(Mark Stokes)
3.4. 对抗图像
3.4.1. 计算机科学家们一直在努力开发一些特殊类型的图片,企图用它们“欺骗”人工智能。这些特殊的图片被称为“对抗图像”
3.4.2. 利用了计算机看世界的不同方式,让人工智能的“眼睛”看到了并不存在的东西,我们可以理解为人工智能产生的“视觉幻象”
3.5. LabSix
3.5.1. 是一个独立运营的人工智能研究小组,由麻省理工学院(MIT)的本科生和毕业生组成
3.5.2. 该团队把一幅狗的图像逐像素转换为两个在斜坡上滑雪的人,最终狗的图像在屏幕上完全消失了,但机器仍然将其识别为狗
3.5.3. 麻省理工学院LabSix团队最新的研究试验表明,谷歌人工智能视觉识别系统对一只3D打印的海龟毫无辨识能力,无论以任何角度拿着这只海龟,甚至将它放置于大海等海龟应该在的环境里,其都会被识别为一支枪
3.5.3.1. 点到了谷歌视觉识别的“完全死穴”
3.5.3.2. 这种纹理是很巧妙地用由不断变化的来复枪图案组成的
3.5.3.3. LabSix的贡献在于,无论从哪个角度看这只海龟,算法始终都会确信它看到的是一支步枪
3.6. 神奇贴纸
3.6.1. 谷歌的研究人员创造了一种更适合算法口味的图像——“神奇贴纸”
3.6.2. 它会导致算法忽略图片中的其他内容
3.6.3. 其原理就是利用了算法会优先选择它认为对图像分类更重要的那部分像素
3.6.4. 算法用于人脸识别时,它会自动过滤掉大部分背景像素
3.6.4.1. 比如天空、草地、树木等
3.6.5. 这种“贴纸”可以被标识为任意图像,比如一台烤面包机
3.6.5.1. 无论算法正在识别的是什么图像,一旦“贴纸”进入机器的眼帘,它都会认为自己看到的就是烤面包机
3.6.6. 先前的算法攻击测试绝大多数都需要事先获取被攻击对象(即被识别的图像)的大致内容,但这张“神奇贴纸”却什么都不用做
3.6.6.1. 不管它试图干扰的图像里有什么,它都能正常工作
3.7. 人类不会轻易被这些黑客手段蒙骗,但这并不意味着我们可以彻底的免疫
3.7.1. 魔术师们就可以利用人类大脑的潜意识行为倾向,分散我们的注意力
3.7.2. 不仅算法存在视觉盲点,我们人类一样也有视觉盲点
3.8. 即便是训练数据中从未出现过的瑜伽动作,Kinect算法也能高度准确地识别出我身体的各个部位
3.8.1. 由于缺乏外部刺激,即人身体能够做出的所有动作基本都是固定的,所以这个算法没有进一步“进化