《动手学深度学习》学习笔记(一)

本书官网可以免费下载学习,同时还有伯克利深度学习课程。

第一章 深度学习简介

与其设计⼀个解决问题的程序,不如从最终的需求⼊⼿来寻找⼀个解决⽅案。事实上,这也是⽬前的机器学习和深度学习应⽤共同的核⼼思想:我们可以称其为“⽤数据编程”。

机器学习是⼀⻔讨论各式各样的适⽤于不同问题函数形式,以及如何使⽤数据来有效地获取函数参数具体值的学科。深度学习是指机器学习中的⼀类函数,它们的形式通常为多层神经⽹络

1、起源

⾃古以来,⼈类就⼀直渴望能从数据中分析出预知未来的窍⻔。实际上,数据分析正是⼤部分⾃然科学的本质,我们希望从⽇常的观测中提取规则,并找寻不确定性。

“图灵测试”,如果⼀个⼈在使⽤文本交互时不能区分他的对话对象到底是⼈类还是机器的话,那么即可认为这台机器是有智能的。

唐纳德·赫布在《行为的组织》中提出:神经是通过正向强化来学习的。即赫布理论。赫布理论是感知机学习算法的原型,并成为⽀撑今⽇深度学习的随机梯度下降算法的基⽯:强化合意的⾏为、惩罚不合意的⾏为,最终获得优良的神经⽹络参数。

绝⼤多数神经⽹络都包含以下的核⼼原则。

  • 交替使⽤线性处理单元与⾮线性处理单元,它们经常被称为“层”。
  • 使⽤链式法则(即反向传播)来更新⽹络的参数。

2、发展

近⼗年来深度学习⻓⾜发展的部分原因:

  • 优秀的容量控制⽅法,如丢弃法,使⼤型网络的训练不再受制于过拟合(⼤型神经⽹络学会记忆⼤部分训练数据的⾏为)。这是靠在整个⽹络中注⼊噪声而达到的,如训练时随机将权重替换为随机的数字。
  •  注意⼒机制解决了另⼀个困扰统计学超过⼀个世纪的问题:如何在不增加参数的情况下扩展⼀个系统的记忆容量和复杂度。注意⼒机制使⽤了⼀个可学习的指针结构来构建出⼀个精妙的解决⽅法。也就是说,与其在像机器翻译这样的任务中记忆整个句⼦,不如记忆指向翻译的中间状态的指针。由于⽣成译⽂前不需要再存储整句原⽂的信息,这样的结构使准确翻译⻓句变得可能。
  • 记忆⽹络和神经编码器解释器这样的多阶设计使得针对推理过程的迭代建模⽅法变得可能。这些模型允许重复修改深度⽹络的内部状态,这样就能模拟出推理链条上的各个步骤,就好像处理器在计算过程中修改内存⼀样。
  • 另⼀个重⼤发展是生成对抗⽹络的发明。传统上,⽤在概率分布估计⽣成模型上的统计⽅法更多地关注于找寻正确的概率分布,以及正确的采样算法。⽣成对抗网络的关键创新在于将采样部分替换成了任意的含有可微分参数的算法。这些参数将被训练到使辨别器不能再分辨真实的和⽣成的样本。⽣成对抗⽹络可使⽤任意算法来生成输出的这⼀特性为许多技巧打开了新的⼤⻔。例如⽣成奔跑的斑马和生成名流的照⽚都是⽣成对抗⽹络发展的⻅证。
  • 许多情况下单个GPU已经不能满足在大型数据集上进⾏训练的需要。过去10年内我们构建分布式并行训练算法的能⼒已经有了极大的提升。设计可扩展算法的最⼤瓶颈在于深度学习优化算法的核⼼:随机梯度下降需要相对更小的批量。与此同时,更小的批量也会降低GPU的效率。如果使⽤1,024个GPU,每个GPU的批量⼤小为32个样本,那么单步训练的批量⼤小将是32,000个以上。近年来李沐、Yang You等⼈以及Xianyan Jia等⼈的工作将批量⼤小增⾄多达64,000个样例,并把在ImageNet数据集上训练ResNet-50模型的时间降到了7分钟。与之对⽐,最初的训练时间需要以天来计算。
  • 并行计算的能力也为至少在可以采用模拟情况下的强化学习的发展贡献了⼒量。并行计算帮助计算机在围棋、雅达利游戏、星际争霸和物理模拟上达到了超过人类的⽔准。
  • 深度学习框架也在传播深度学习思想的过程中扮演了重要⻆⾊。Caffe、Torch和Theano这样的第⼀代框架使建模变得更简单。许多开创性的论⽂都⽤到了这些框架。如今它们已经被TensorFlow(经常是以⾼层APIKeras的形式被使⽤)、CNTK、Caffe2和ApacheMXNet所取代。第三代,即命令式深度学习框架,是由⽤类似NumPy的语法来定义模型的Chainer所开创的。这样的思想后来被 PyTorch和MXNet的Gluon API采⽤,后者也正是本书⽤来教学深度学习的⼯具。

3、成功案例

完全⾃主驾驶的难点在于它需要将感知思考规则整合在同⼀个系统中。

4、特点

机器学习研究如何使计算机系统利用经验改善性能。在机器学习的众多研究⽅向中,表征学习关注如何自动找出表示数据的合适⽅式,以便更好地将输⼊变换为正确的输出,而本书要重点探讨的深度学习是具有多级表⽰的表征学习⽅法。在每一级(从原始数据开始),深度学习通过简单的函数将该级的表⽰变换为更⾼级的表⽰。因此,深度学习模型也可以看作是由许多简单函数复合而成的函数。当这些复合的函数⾜够多时,深度学习模型就可以表达非常复杂的变换。

深度学习可以逐级表⽰越来越抽象的概念或模式。以图像为例,它的输⼊是⼀堆原始像素值。深度学习模型中,图像可以逐级表⽰为特定位置角度的边缘、由边缘组合得出的花纹、由多种花纹进⼀步汇合得到的特定部位的模式等。最终,模型能够较容易根据更高级的表示完成给定的任务,如识别图像中的物体。值得⼀提的是,作为表征学习的⼀种,深度学习将⾃动找出每⼀级表⽰数据的合适⽅式。(自动提取特征)(等级制度,或者说层级关系。)

相对其它经典的机器学习⽅法而⾔,深度学习的不同在于:对⾮最优解的包容对⾮凸⾮线性优化的使⽤,以及勇于尝试没有被证明过的⽅法



 

你可能感兴趣的:(#,动手学深度学习,算法,神经网络,深度学习,机器学习,pytorch)