当前位置: 首页 > article >正文

刘二大人《PyTorch深度学习实践》完结合集Overview学习笔记

  • 实际问题的决策/推理(infer)举例:买中午饭时,钱和个人偏好等均是约束条件;=》抽象一下:外部输入信息,根据约束条件做出对应的决策/推理

  • 实际问题的预测(prediction)举例:

1.看到一组照片(一个实体),如果我们可以把它和一个抽象概念联系起来的过程叫做prediction过程

 2.手写数字抽象成数字

数字是抽象的:2个苹果,2条鱼,其实这个2就是个抽象的量化统计概念,并没有指定其到底是啥,仅是个量化的抽象概念,所以我们说数字是抽象的(这个是笔者的拙见,如有不对之处,烦请读者指出哈~)

infer:推荐系统这种的

prediction:用算法把视觉信息/自然文本信息=》抽象概念

在深度学习中,我们基本上用的是监督学习:labeled Dataset(打上标签的数据集),我们知道图片的答案,然后用labeled Dataset对模型进行训练,最后得到我们的算法


开发学习系统的历史过程:

  1. 基于规则的系统:input---手工设计程序---output(最早的AI算法就是基于此系统,
    eg:高数中的求积分问题:1.有一些基本积分公式(知识库)  2.有积分运算(规则)。当问题越来越多/更复杂,1,2都要扩大,整个1,2体系就会越来越大(手工设计程序是需要特别专业的人来制定规则,当遇到复杂问题时,我们其实很难把问题规则定义的完美,无缺陷,当问题越来越复杂,制定规则就越难,也更容易出现算法缺陷,所以基于规则的代码的规则会越来越庞大,最终大到人类无法维护的情况)
  2. 经典的机器学习:input---手工设计提取特征(eg:成立预测问题上发现高等数学,英语对下一学期物理成绩影响比较大,我们就把这2门课提取出来)(把input=》向量/张量)---mapping from features(把这个向量/张量和output之间建立映射函数关系===》向量为x,output为y)---output     (感知机,神经网络都在做这个工作)
  3. 表示学习:input---features(features里面的方法最好也能学出来,所以早期features的提取是一个单独的步骤:用一些算法,把特别复杂的非结构input提取出一个向量(features)---mapping from features---output   (features(机器学习的很多无监督学习都需要做features提取训练(因为features没有标签所以肯定是无监督学习))和mapping from features(有标签)是分开训练)
    维度诅咒:input的feature越多对整个样本的数量需求量就大,采样越多,跟真实数据就越贴近,比如:在一维空间里采了10个样本,假如这个样本密度就已经够了,如果是在有2个features的空间里采样,2个维度都需要10个,这样就是100个点,此时二维的才和一维的10个样本数据密度对应,这样才能说此样本代表原始数据分布,3个维度就是100,n个维度就是10的n次方。由此可知,维度越高,我们对数据量要求就越大。)
    收集数据工作量大,所以我们就想能不能降维度,对维度进行映射:n维映射到3维:N x 1矩阵   X  3 x N矩阵= 3 x 1矩阵,只要找到3 x N矩阵就能将n维矩阵映射到3维矩阵即n维降到3维。我们在降维的时候尽量维持高维度数据的布点信息。这个过程就是表示学习:就是学到从高维空间到低维空间的表示
    如果数据有一维是空的就可以直接把这空的维度去掉,此过程是降维
  4. deep learning:input---simple features(做一些原始性特征,eg:把图片的像素值变成一个张量)---additional layers of more abstract features(提取特征)---mapping from features(学习器,eg:多层的神经网络)---output(features 和mapping from features是一起训练,所以我们又把deep learning 叫做 end to end (端到端)训练过程。)
    以前的模型是SVM family,SVM family到了deep learning,因为deep learning的一些限制,就只能开始使用这种深度神经网络来学习端到端的学习方法。


Brief history of neural networks

哺乳动物大脑中视觉部分在处理信息的时候是分层的,不是你看到同学,你的同学就对应着你大脑的一部分神经元,而是一个分层的处理过程:浅层的神经元检测简单的特征,eg:线条的移动/颜色块。高级的特征检测更抽象特征,eg:你看的是只猫还是狗

用仿生学的方法构建一个神经元模型,这个模型叫做感知机


back propagation(反向传播)

  • 能让神经网络算法工作起来
  • 实质:求偏导数,用back propagation求偏导数而不用解析式求,原因:随着网络层数增多,用算法写解析式太困难
  • 核心:计算图:每一步计算只能进行原子计算,即最基本的运算(不可再分割的计算)
  • 在深度学习里面有大量的原子计算,eg:矩阵乘法,基本的卷积运算
  • 前馈:把数据往计算图里传,计算未知量,同时可以计算该未知量的偏导数
  • back propagation:把未知量的偏导数在计算图中传播,然后计算计算图中所有未知量的偏导数


一些小tips:

机器学习算法同”正常“算法的区别:

”正常“算法里面的几个思维方式:

  1. 穷举
  2. 贪心(机器学习中的梯度下降其实就是运用了贪心算法的思想)
  3. 分治(eg:快排)
  4. 动态规划

机器学习算法:

  1. 有数据集
  2. 从数据集找出目标算法(人话:我们想要的算法)
  3. 验证模型(算法)好坏
  4. 好=》部署;坏=》继续训练

(整个计算来自于数据集而非人工设定(参数调节除外),而”正常“算法的每一步都是人工写出来的)


http://www.kler.cn/news/343090.html

相关文章:

  • 山西农业大学20241011
  • JAVA八股文1
  • 芯课堂 | Synwit_UI_Creator(μgui)平台之图像处理篇
  • 中间件有哪些分类?
  • java Optional类与新的日期时间API
  • Spring Integration + MQTT
  • 浅谈C++之多线程处理TCP请求
  • 考研代码题:10.10 汉诺塔 爬楼梯 取球 猴子吃桃
  • 重学Java设计模式读后感之组合设计模式应用
  • OpenCV:图像直方图计算
  • 干部管理系统:实现干部全生命周期管理
  • 大学生玩转小袁口算:Python 抓包破解代码
  • 十LNMP
  • 教育部白名单赛事到底是什么?大家为什么那么重视它?
  • 宠物咖啡馆数字化解决方案:基于SpringBoot的实现
  • 链表(3)_重排链表_面试题
  • 【系统架构设计师】目录提纲
  • Jave常用的类---String类
  • Vue2基础
  • 神经网络的基本骨架——nn.Module(torch.nn里的Containers模块里的Module类)