输入“/”快速插入内容

001 机器学习与神经网络简介

2024年3月7日创建
540
638
背景
平常业务开发中每天都要接触到机器学习和深度学习的概念,在听了很多大佬的普及后,发现甚是有趣。于是小编想着着手开始学习这部分的内容。
那废话不多说,就从最基础的机器学习和神经网络开始~
一、机器学习基础
1、机器学习是什么?
机器学习是对能通过经验自动改进的计算机算法的研究 —— 可以理解为机器学习是一个研究,它的研究对象是计算机算法。这个计算机算法的特点是:能通过经验来自动改进自身的能力。也就意味着,它可以像人一样积累一些经验,然后自动改进。
机器学习是用数据或以往的经验,以此优化计算机程序的性能标准 —— 强调了数据或以往的经验。比如说:拿线性回归来举例,如下图所示:
线性回归的意思指的就是你给我一个连续的输入,比如说图上的 x 轴,它从 050,然后我可以给你映射到它对应的 y 轴上的值分别是多少,也就是会给你一个连续的输出,我们可以在图上看到这个 y 轴从 035 也是一个连续的输出。
那么这个线性回归跟机器学习有什么关系呢?如我们上面所说的,这个线性回归问题通过数据或以往的经验来解决。比如说我们这个图里面有很多黄色的点,那么我们就可以沿着这些黄色的点,根据它的分布来画一条黄色的线,画完之后你随便给我一个 x 轴上的值,我都可以找到与之对应的 y 轴上的值。
比如说图上的 x20 的时候,那么它的 y 大概就在 5- 10 之间这个位置,且就是你给我任意一个 x 轴上的值,我都可以得到 y 轴对应的值。当然不只是刚才那个20,其他值也都可以。这就是通过数据以及以往的经验来解决线性回归问题,这些黄色的点就是数据或者说是以往的经验。
还有个问题是,可能有的小伙伴会有疑问:不使用机器学习,我也能画出这条黄线 or 红线。既然自己可以做到了,那为什么还需要机器学习呢?
其实啊,我们的目的就是为了实现人工智能,就是想办法让机器来代替人去画这两条线。
2、机器学习应用场景
上面我们说了机器学习的基础概念,接下来再列举一些常见的应用场景:
图片分类 —— 准备大量图片,让机器去学习,判断这是一只猫、还是一只狗。
语音助手 —— siri、小爱同学等等,给机器足够多的声音数据以及对应的标签,那么机器就可以识别我们的语音在讲什么了。
3、为何要用机器学习?
有些棘手问题只能用机器学习来解决:
比如说给我一张图片,让我判断这个图片里有没有一只猫。这个问题看似简单,但是即便是很聪明的程序员,也没有办法通过编写规则和编写代码的方法来解决这个问题,这是不可能的。
比如说先是编写了一堆规则,然后判断一只猫,判断一个图片里面有没有一只猫。但是我们想一下,如果这个猫随便换个位置,换个动作,换个颜色,换个品种,那么它的规则是不是就被废弃掉了,就没用了?它要写多少条规则?它要写无数份规则,无数行代码,这显然是不可能解决的。
因此,我们可以通过机器,来学大量猫🐱的图片。之后,机器就大概知道了猫的特征是什么样的。然后等下次你再给它一张新的猫的图片,它就能判断这张图片里有一只猫的概率有多大了。
获取数据比编写规则更加容易:
有些问题它既可以用机器学习来解决,也可以通过编写规则就是编写程序来解决。但是如果获取数据比获取规则更加容易的话,那么这时候就应该用机器学习来解决。
举个例子,比如说你写了一个翻译程序,可以把这个英文翻译成中文,但第二天PM跟你说,想让你把这个翻译程序拓展一下,可以把英文翻译成日语。
如果是通过传统的编程,就会编写一堆的规则,一堆的 if else 逻辑。很大概率所有代码你还要全部再重写一遍,工作量非常大。
但是如果是通过机器学习的手段来做这个翻译程序的话,那么你一行代码都不需要改。我们要做的是,只需要把训练数据换一下,重新训练一个新模型就 OK 了。这也就是为什么要使用机器学习的原因,因为有时候往往获取数据比编写规则要容易得多。
GPU等计算能力显著提升:
机器学习的训练需要消耗大量的计算能力。在过去我们的算力非常的差的时候,其实使用机器学习的成本是很高的,或者说几乎是不可能的。在过去科学家跑一次训练可能得几个月,而且几个月跑一次训练实验,在这个过程中一般还要失败很多次。这个训练实验需要不断地试错,不断地试验,才能慢慢降低失败的次数。
but…这么看的话,一次试验都要跑好几个月,那这个实验基本上也就没有什么可行性了,这也是为啥上世纪这个神经网络算法就已经被发明出来,但是到最近几年才火起来,就是因为过去的计算能力太差了。
但是现在我们的计算能力显著提升了,可能一个小时内我就能跑完一次训练,得到一个模型,看到实验结果了。那么这时候使用机器学习的可行性就变得非常高了。
4、机器学习如何运作?
机器学习可以通过神经网络算法来进行运作。