想开个系列贴介绍下机器学习大概的思想

因为最近ChatGPT的爆火,然后我发现大多数非相关专业的朋友(比如我的几个室友)对深度学习的原理其实并不了解,就像做一个类似科普/讨论贴的系列,讲讲自己对机器学习和深度学习的粗浅理解——计算机是如何从一个只会加减乘除的机器发展到今天具有ChatGPT这样的"智能"的。

楼主本人是魔都某酒吧舞的相关专业大二学生,已经学过的课程有《计算机组成原理》,《数据结构》,《算法设计》,《机器学习》等(之后还有更多专业课),也有自行学习过cv和nlp领域的基础知识,算是对相关方面有一点点相当粗浅的理解。当然水平和眼界终究有限,所以恐怕讲的也会是漏洞百出,希望各路大佬能在评论区指正。以下是第一章开头:

一.起源 图灵与可计算理论

首先是要介绍图灵的哲学思想(现在早已发展成为计算机科学的一大分支,可计算理论)——什么样的问题是可以用算法解决的?

"算法"一词,在数据结构课上有着详细而恰当的定义,但对于我们理解计算机来说,这需要掌握最核心的一点就够了——算法就是按顺序一步一步解决问题的方法。

在过去,如牛顿的时代,数理问题的解决主要依赖于天才们一闪而过的灵感与惊人的创造力。对于复杂问题,他们总能以敏锐的洞察力和高超的技巧发现问题的核心,并将其转化为容易理解和处理的问题加以解决。这一过程固然富有观赏性,但我们也不难想象缺乏这般天赋的大多数人对此只能望洋兴叹。

然而算法的思想与上述过程截然相反——算法是设计好的步骤的集合,任何人(当然,机器也一样)只要按顺序执行这些步骤,最终都能得到正确答案。最早的算法可以追溯到美索不达米亚人,那是他们已经发明了求根号二的算法,读者可以自行百度其步骤并思考如何证明其正确性。后来人们发现许多问题都可以用算法解决,比如求圆周率π,比如判断一个数是否是素数(我们姑且忽略算法复杂度的问题)。

总之,算法思想隐含的是这样一个"福音"——不管你有多白痴,只要你会做加减乘除比较等基本运算,你都可以按照步骤一步步拆解并最终得到一个复杂问题的正确答案。这不仅对"你"是福音,对机器同样如此。

当然你可能会问到底什么是"基本运算"?微积分是基本运算吗?矩阵的奇异值分解是基本运算吗?事实上我们发现这些复杂的数学计算大部分可以用一系列的加减乘除等更基本的运算加以实现或近似,而实数的加减乘除等运算又可以进一步分解为若干步二进制运算(之所以要继续分解,自然是因为计算机只能处理二进制数)——没错,这也是一种"算法"——如何用一串有序的二进制运算实现整数的加减乘除。

那么"基本运算"到底是哪些二进制运算,除此外还有没有别的运算或操作也是必要的?这些在《计算机组成原理》中会有详细的讨论,该问题核心可能是指令集的完备性,在此就不展开了。

至此我们讨论了算法的底层思想和它是如何赋能计算机的。但我们并不欲进一步回答开篇的问题——"什么样的问题是可以用算法解决的"。这是一个相当复杂而困难的问题,还与数学七大难题中的"NP猜想"有关,至少笔者没有能力触及哪怕这一问题的皮毛。但是总体的方向已经确定了——确实有许许多多的问题可以用算法解决——对我们来说,剩下的任务就是将算法国度的疆界不断扩大,不断地用算法去解决各种各样的问题。

更多游戏资讯请关注:电玩帮游戏资讯专区

电玩帮图文攻略 www.vgover.com