Pytorch框架学习个人笔记1---overview

文章目录

  • 前言
  • 一、pytorch的安装步骤
  • 二、Pytorch的介绍
    • 1、深度学习
    • 2、如何构建深度学习框架
    • 3、神经网络的介绍
    • 4、神经网络发展历史
  • 总结


前言

提示:本博客是依托B站【刘二大人】的讲解视频并结合个人实践学习总结而成,仅用作记录本人学习巩固,请勿做商用。

在前期的调研中,了解到《动手学深度学习》需要有一些基础不适合入门学习,我选择了先听【刘二大人】进行入门学习,由于之前有较好的数理基础和python 的编程基础,便跳过了基础知识的学习,直接开始pytorch的框架学习。

一、pytorch的安装步骤

这里推荐大家跳转https://blog.csdn.net/weixin_39487353/article/details/104666953
还记得我第一次安装pytorch环境实在做上一个大创项目的时候,当时几乎是踩了所有的坑,足足装了一天。这次第二次安装只花了半小时,也算是有所长进(只是避开了所有的坑,就莫名的顺利嘿嘿)
Pytorch框架学习个人笔记1---overview_第1张图片

二、Pytorch的介绍

1、深度学习

众所周知,PyTorch的前身是Torch,其底层和Torch框架一样,但是使用Python重新写了很多内容,不仅更加灵活,支持动态图,而且提供了Python接口。它是由Torch7团队开发,是一个以Python优先的深度学习框架,不仅能够实现强大的GPU加速,同时还支持动态神经网络。

多说一句:科研界更青睐pytorch,其论文量高于其他框架。而业界使用tensorflow是比较多的。

说到深度学习,就不得不提到圣经《花书》。
Pytorch框架学习个人笔记1---overview_第2张图片
书中以韦恩图的方式直观的界定了深度学习的范畴,接下来我们对以上名词加以区分。

2、如何构建深度学习框架

Pytorch框架学习个人笔记1---overview_第3张图片
Rule-base systems
很好理解,就是字面意思,输入通过提前预设好的算法得到输出,简单说就是我们之前所接触的程序算法。
Classic machine learning
机器学习的过程需要对输入进行手工的特征提取变成向量,然后建立从输入到输出的映射函数(mapping),最后得到输出。这就是经典的机器学习的思路。
Pytorch框架学习个人笔记1---overview_第4张图片
这是官网给出的经典传统机器学习的基本路线。其局限性以及缺点随着技术的发展也不断暴露:

  1. 人工设计特征的限制
  2. SVM(支持向量机)不能处理大量的数据集
  3. 越来越多的应用需要处理无结构数据(图像、文本、声音)

Representation Learning
表示学习中,最大的改进在特征的提取,它也可以通过学习完成。
降维的必要性:规避维度诅咒

维数之咒所指的问题是,当维度增加时,空间的体积增加得非常之快(以指数增加),以致于可用的数据变得稀疏。这种稀疏性会造成统计意义上的一些困难,这是因为为了获得一个统计上可靠的结果,支持结果所需的数据量往往随着维度的增加而成倍增长。此外,组织和搜索数据通常依赖于检测具有相似属性的对象的区域,然而,在高维数据中,所有对象在许多方面看起来都是稀疏和不相似的,这使得在数据处理的过程中无法使用通用的数据处理方法。

Deep learning(END TO END)
与表示学习的最大区别在于它是一个端到端的学习过程,故又称深度学习为end to end。

3、神经网络的介绍

人工神经网络(Artificial Neural Networks,简写为ANNs)也简称为神经网络(NNs)或称作连接模型(Connection Model),它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。

Pytorch框架学习个人笔记1---overview_第5张图片
神经网络起源于仿生学,随着分层感知原理的发现,人们将神经元连接逐渐构建起了神经网络。
Back Propagation
反向传播是神经网络中最基础也是最重要的算法,我们不再使用解析式而是利用计算图进行求解。
Pytorch框架学习个人笔记1---overview_第6张图片
计算图中的每一步都是原子计算。我们先进行正向计算(前馈过程)并同时计算偏导数,之后把路径上所有的结果进行处理(同路相乘,分支相加)进而求得结果。该模型具有很高的灵活性,可以构建非常复杂的算法。

4、神经网络发展历史

1943年,心理学家W·Mcculloch和数理逻辑学家W·Pitts在分析、总结神经元基本特性的基础上首先提出神经元的数学模型。此模型沿用至今,并且直接影响着这一领域研究的进展。因而,他们两人可称为人工神经网络研究的先驱。

1945年冯·诺依曼领导的设计小组试制成功存储程序式电子计算机,标志着电子计算机时代的开始。1948年,他在研究工作中比较了人脑结构与存储程序式计算机的根本区别,提出了以简单神经元构成的再生自动机网络结构。但是,由于指令存储式计算机技术的发展非常迅速,迫使他放弃了神经网络研究的新途径,继续投身于指令存储式计算机技术的研究,并在此领域作出了巨大贡献。虽然,冯·诺依曼的名字是与普通计算机联系在一起的,但他也是人工神经网络研究的先驱之一。

50年代末,F·Rosenblatt设计制作了“感知机”,它是一种多层的神经网络。这项工作首次把人工神经网络的研究从理论探讨付诸工程实践。当时,世界上许多实验室仿效制作感知机,分别应用于文字识别、声音识别、声纳信号识别以及学习记忆问题的研究。然而,这次人工神经网络的研究高潮未能持续很久,许多人陆续放弃了这方面的研究工作,这是因为当时数字计算机的发展处于全盛时期,许多人误以为数字计算机可以解决人工智能、模式识别、专家系统等方面的一切问题,使感知机的工作得不到重视;其次,当时的电子技术工艺水平比较落后,主要的元件是电子管或晶体管,利用它们制作的神经网络体积庞大,价格昂贵,要制作在规模上与真实的神经网络相似是完全不可能的;另外,在1968年一本名为《感知机》的著作中指出线性感知机功能是有限的,它不能解决如异或这样的基本问题,而且多层网络还不能找到有效的计算方法,这些论点促使大批研究人员对于人工神经网络的前景失去信心。60年代末期,人工神经网络的研究进入了低潮。

另外,在60年代初期,Widrow提出了自适应线性元件网络,这是一种连续取值的线性加权求和阈值网络。后来,在此基础上发展了非线性多层自适应网络。当时,这些工作虽未标出神经网络的名称,而实际上就是一种人工神经网络模型。

随着人们对感知机兴趣的衰退,神经网络的研究沉寂了相当长的时间。80年代初期,模拟与数字混合的超大规模集成电路制作技术提高到新的水平,完全付诸实用化,此外,数字计算机的发展在若干应用领域遇到困难。这一背景预示,向人工神经网络寻求出路的时机已经成熟。美国的物理学家Hopfield于1982年和1984年在美国科学院院刊上发表了两篇关于人工神经网络研究的论文,引起了巨大的反响。人们重新认识到神经网络的威力以及付诸应用的现实性。随即,一大批学者和研究人员围绕着
Hopfield提出的方法展开了进一步的工作,形成了80年代中期以来人工神经网络的研究热潮。

2021年6月9日,英国《自然》杂志发表一项人工智能突破性成就,美国科学家团队报告机器学习工具已可以极大地加速计算机芯片设计。研究显示,该方法能给出可行的芯片设计,且芯片性能不亚于人类工程师的设计,而整个设计过程只要几个小时,而不是几个月,这为今后的每一代计算机芯片设计节省数千小时的人力。这种方法已经被谷歌用来设计下一代人工智能计算机系统。研究团队将芯片布局规划设计成一个强化学习问题,并开发了一种能给出可行芯片设计的神经网络。

总结

本博客将持续更新关于但不仅限于此的学习笔记。

你可能感兴趣的:(pytorch,python,深度学习,神经网络)