了解深度学习的过程中做的笔记和总结。主要看这本书 Understanding Deep Learning
核心概念
机器学习是人工智能的一个子集,它通过数学模型拟合观察到的数据来学习作出决策。深度神经网络是机器学习模型的一种类型,这个模型拟合到数据的过程称为深度学习。
就是说 Deep Learning 这个词专门描述用深度神经网络构建数学模型在计算机上进行人工智能实现。
非常严谨,他的言外之意就是我们不排除可以用非深度神经网络等其他方式进行人工智能实现,甚至未必要在计算机上实现。
什么是神经网络
关于神经网络,大概这么理解:
- 首先得看生物书,神经元的作用原理了解一下;
- 粗暴而精妙的想法就是,我们用计算机模拟一大堆神经元不就得了;
- 我们一开始先整了一层神经元,称为 Shallow Neural Networks;
- 有大佬证明了,一层的就已经可以拟合任意函数了;
- 后面整了很多层叠起来,因为应该会让这个神经网络复杂很多,那么应该就会牛X很多(相同参数规模下linear region更多)
- 我说这么多“应该”是因为似乎目前学界也没法在数学上证明叠起来有用(大概),但是起码实践上是有用的;
三大机器学习分类
机器学习方法可以粗略地分为三个领域: 监督学习,无监督学习和强化学习。目前这三个领域的前沿方法都依赖于深度学习。
这里又严谨了一下,监督学习,无监督学习和强化学习未必需要依赖深度学习,但是目前主要用深度学习去整。我理解例子是比如强化学习应该可以用纯的遗传算法和蚁群算法之类的去做,就可以不涉及深度学习。
监督学习
监督学习(生产出来的深度学习)模型定义了从输入数据到输出预测的映射。
这里看了半天,大概理解是这样的:
- 首先,监督学习的本质我们认为是一个输入数据到输出预测的映射,也就是 y=f(x) 这种感觉;
- 也就是说,深度学习网络在这个监督学习下,实质上是在尝试拟合所有训练数据让它变成一个 y=f(x) 的函数;
- 大佬证明了,神经网络这种形态可以拟合任意函数(应该没我说的这么不严谨,但是大概这个意思);
- 那么所有现实中的分类和回归问题,我们就可以用这个函数求解;
因为本质上是分类和回归问题,所以我们是要对训练数据打标的。也就是说我们得告诉这个网络你的答案是对还是错,或者得分高还是低。
非监督学习
从没有相应输出标签的输入数据构建模型被称为无监督学习。目标不是学习从输入到输出的映射,而是描述或理解数据的结构。
我理解无监督学习就是扔一堆数据给神经网络。训练的目标是让它自己发现数据之间的关联性。
这里的关联性可以这么理解:
- 我有一张照片,这里有 1000 * 1000 个像素;
- 那么,这张照片每个像素点 RGB 都随意取,理论上会有 (256 * 256 * 256) * (1000 * 1000) 种组合(我没算错吧,应该,反正很多);
- 显然,能被人类识别出来是有意义的照片的,只是其中的很少的一部分。绝大部分组合出来的照片在我们看来是一种噪点图;
- 那么通过深度学习我们可以找出隐含在我们提供的训练数据(就是一大堆照片)当中的规律;
一旦我们把这种规律整出来了,也就是这个模型训练好了,我们可以反向通过这个规律生成照片。
通常来说,这种规律就是整个模型,每个输入(如照片)在模型中会产生一些潜在变量用来代表这个输入。就是说,这张照片在这个模型看来就是那么一组数字。那就是说反过来我们控制一些潜在变量的变化(或者直接输入一组变量),他就会反向生成一个输入(照片)。
强化学习
强化学习引入了一个agent的概念。该agent生活在一个世界中,并且可以进行某些操作。通过奖励agent某种行为来引导它学会带来高回报的行为。
我理解大概这么干
- 构建一个或多个agent,它们的行为逻辑是靠一个神经网络驱动的
- 设置一个世界,让agent在内部进行活动,一般会有时间限制
- 对agent的行为设置奖励和惩罚
- 通过各种方式将奖励和惩罚反馈给agent的神经网络进行训练优化
- 这里有个核心的地方,一般通过随机的方式修改参数等,使得agent面对相同的场景会有不同的决策或行为
- 循环往复
应该是特别适合在各种棋牌ai,游戏ai上,毕竟是游戏就会有明确的奖惩机制。
核心的想法应该是让ai通过蒙特卡洛等随机的方式让ai有新的决策/行为,然后通过奖励惩罚这种新方式,让它逐步进化。
总结
作为入门知识应该大致有个概念了,我也不知道我理解的对不对。所以如果有大佬发现错误或者有什么想要补充的万分感谢~