【PyTorch】深度学习实践 01 Overview

人工智能概述

课程前置知识

  • 线性代数 + 概率论 (不要有路径依赖,遇到不会的就现学)
  • Python基础

人工智能

问题分类

人工智能,实际上就是利用计算机来代替人脑进行智能工作,计算机所要实现的智能可以分为两大部分,分别是推理预测

推理类

根据已有的信息来进行推理并做出决策的过程。

比如通过外界信息来判断自己要吃什么:

e4f62a63fe9e4283bf1fbd427c937c2b.png

人脑 - 中午吃什么

94a51d96033e4236935989e62f7bc402.png

机器学习 - 中午吃什么

预测类

根据具体的实体,将实体与抽象概念结合起来。

比如通过认识猫这一动物实体,来与汉字“猫”建立联系,本质是一个预测的过程,赋予真实存在的事物一个不真实存在的抽象的符号:

5429af8ab8b14b17b07fd7850a494553.png

人 - 识别猫

 

5a3ab838aa4747c0b345efbea2702650.png

机器学习 - 识别猫

 算法分类

机器学习主要分为监督学习和非监督学习,监督学习相当于考前给模拟卷和答案,看完之后再考试,而非监督学习就是给模拟卷但是不给答案,看完之后就考试。

在学习的过程中,需要用到机器学习算法,这里的算法属于智能算法,而不是我们算法课学的那些传统算法。

传统算法与智能算法

传统算法:比如穷举法(暴力法)、分治法、动态规划(dp)和贪心,我们基于这些思想,可以利用数据结构来人工地设计算法。

智能算法:是基于数据集生成的算法,而非人工设计,主要和统计相关。

人工智能领域细分

人工智能包括传统的知识库和新兴的机器学习,而深度学习实际上是基于机器学习中的神经网路而衍生出的一种手段,是机器学习的一个分支。

3fda898e28f14f6e8a996318ca021a11.png

AI(知识库)-> 机器学习(逻辑回归)-> 表示学习(自动编码器) -> 深度学习(多层感知机等神经网络)

 学习系统的发展

基于规则的系统

将数据输入人工设计的程序中,从而得到满足目的的输出。

20941eef9b2f40139f9177c1db66d0ef.png

eg:基于根据导函数求解原函数的法则,设计求解原函数的程序,其中用到积分规则来建立知识库,并非真正的智能。

经典机器学习算法

在输入以后进行人工的特征提取,并对所提取的特征进行适配,以此来得到相应的输出。即先将具体信息变成张量,再实现对张量的映射来得到输出。

f9e299962d6e477b8d05dc4d643fadf8.png

表示学习方法

维度诅咒

在整个input里面,对特征的需求越多,则对整个样本数量的需求就越大,造成参数空间搜索组合爆炸。

说明

依据大数定律,采样越多,与数据真实情况越接近。假定对于每个feature需要采集十个样本才能保证与真实情况足够得接近。

对于一组数据,如果只有一个feature,需要10个采样点。有两个feature ,则需要102个采样点,有n个feature,则需要10n个采样点。从而引起对原始数据量的过度需求,即维度诅咒。

解决方法

进行一个线性或者非线性的映射,来让原始维度降低。经过降维后的特征有可能会丢失关键信息,因此综合上述问题需要进行表示学习的过程,即在降维的同时而又保持住高维空间的度量信息,也就是使用更少的更有代表性的参数。

第一代

在提取特征时,利用特殊的算法进行,也就是自动提取特征,而非人工提取。

提取特征的部分,以及最终学习的部分(深色框)需要分开训练。先提取特征,再学习算法。

00333410cad54a3883ec50212c0d7320.png

第二代(深度学习)

利用原始特征来进行特征提取,在原始特征的基础上,再进行提取,所有训练过程是统一的。

将特征提取和特征函数训练两个过程结合起来,也称之为End2End(端到端)。

9a4b182661f246348cddccccacc0794a.png

传统机器学习策略

afa3da3701104eaa871ebda150ed45bd.png

神经网络基础

基本原理

模仿神经元细胞来进行的设计,在整体结构上,模仿神经进行分层设计,属于仿生学的算法。

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

神经网络是通过对人脑的基本单元——神经元的建模和联接,探索模拟人脑神经系统功能的模型,并研制一种具有学习、联想、记忆和模式识别等智能信息处理功能的人工系统。神经网络的一个重要特性是它能够从环境中学习,并把学习的结果分布存储于网络的突触连接中。神经网络的学习是一个过程,在其所处环境的激励下,相继给网络输入一些样本模式,并按照一定的规则(学习算法)调整网络各层的权值矩阵,待网络各层权值都收敛到一定值,学习过程结束。然后我们就可以用生成的神经网络来对真实数据做分类。

d1b6df52026346278c6886b3c587465d.png

正向传播和反向传播

正向传播本质上是按照输入层到输出层的顺序,求解并保存网络中的中间变量本身。

反向传播本质上是按照输出层到输入层的顺序,求解并保存网络中的中间变量以及其他参数的导数(梯度)。

两者核心都是计算图

下图中,左图每一步是需要正向传播过程计算的中间量及结果,右图是需要进行反向传播过程进行计算的导数。

deee843ec69a4639a76e90bc3f6b46dd.png

正向传播

上图中的实际计算过程为:

e=(a+b)∗(b+1)e=(a+b)*(b+1) e=(a+b)∗(b+1)

每一步都只能进行原子计算,每个原子计算构成一个圈,继而形成整个计算图。

在计算图中,先进行正向计算c=a+bc=a+bc=a+b, d=b+1d=b+1d=b+1,再进行e=c∗de=c*de=c∗d,求解得到ee的值以后即完成了正向计算的过程。

反向传播

4402a9de240f4b6f9528bcef93ac5046.png

小结

需要学会已经发展健全的基本神经网络的结构,进行针对问题的重新组装与搭建。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/118142.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python造测试数据存到excel

代码: from ExcelHandler import ExcelHandler from faker import Faker # 导入faker库的Faker方法 # ↓默认为en_US,只有使用了相关语言才能生成相对应的随机数据 fkFaker(locale"zh_CN")def create_date():m int(input(请输入要造的数据条…

PostgreSQL12中浮点数输出算法优化带来的小问题

最近碰到同事发来这样两个SQL,开发反馈输出的结果异常。 bill# select 0.1284*100::float;?column? --------------------12.839999999999998 (1 row)bill# select (0.1284*100)::float;float8 --------12.84 (1 row) 乍一看其实能看出明显的区别,由于…

通俗介绍:什么是 Redis ?

刚接触 Redis 的伙伴们可能会因为不熟悉而感到困惑。本文简述 Redis 是什么、有哪些作用的问题,是一篇短浅而入门级别的文章。 Redis官网:Redis 打开 Redis 官网可以看到,官方对 Redis 的介绍是这样的:The open source, in-memo…

pytorch C++ 移植

文章目录 前言安装 libtorch安装 opencv(C)模型转换通过跟踪转换为 Torch Script通过注解转换为 Torch Script 编写 C 代码编译环境搭建C 库管理方法一:手动配置 visual studio 环境方法二:cmake 配置环境 python 调用 C 程序 前言…

艾伏尼布:一种用于治疗复发或难治性AML和胆管癌的IDH1抑制剂【医游记】

(图片来源于网络) 艾伏尼布,商品名为拓舒沃,是中国首个获批的针对异柠檬酸脱氢酶-1 (IDH1)突变癌症的强效口服靶向抑制剂1。这款药物最初由Agios Pharmaceuticals公司开发,2018年基石药业与Agios达成在大中华区开发及商业化的独家…

RK3399平台开发中安卓系统去除USB权限弹窗

RK3399平台开发中安卓系统去除USB权限弹窗 问题方法 问题 当我们在访问一个插入到Android系统的USB设备的时候往往是需要权限的,此时系统会弹出询问权限的对话框,而我们此时希望让它默认允许访问USB设备并且不希望用户看到这个对话框。 方法 文件目录&…

CSS - 常用属性和布局方式

目录 前言 一、常用属性 1.1、字体相关 1.2、文本相关 1.3、背景相关 1.3.1、背景颜色 1.3.2、背景图片 1.4、圆角边框 二、常用布局相关 2.1、display 2.2、盒子模型 2.2.1、基本概念 2.2.2、border 边框 2.2.3、padding 内边距 2.2.4、margin 外边距 2.3、弹…

gcc和makfile

gcc和makfile gcc预处理(进行宏替换)编译(生成汇编)汇编(生成机器可以识别的代码)连接(生成可以执行的文件或者库文件) makemakefile文件的编写 gcc 没安装的话,按照终端提示的安装命令安装就行 运行的格式: gcc [选项] [要编译的文件] [选项] [目标文件…

SylixOS BSP开发(八)

初始化FPU、MMU和Cache组件 本来想在不初始化这些部件的情况下把SylixOS先启动起来感受下,结果测试发现如果MMU不使能的话,系统启动过程中线程无法进行调度emm。。。所以只好把这一章节提前来讲了。这三个组件的初始化都是在bspInit.c中进行的。 1. FPU初…

Unity游戏开发中打造游戏攻击技能架构与设计

一、技能系统的设计 在 MOBA 游戏中,每个英雄角色都会有多个技能,这些技能可以分为普通攻击和技能攻击两种。普通攻击是英雄角色的基本攻击方式,而技能攻击则需要消耗一定的资源(如蓝量)才能使用。在设计技能系统时&a…

【面试经典150 | 链表】循环链表

文章目录 Tag题目来源题目解读解题思路方法一:哈希集合方法二:快慢指针方法三:计数 拓展其他语言python3 写在最后 Tag 【快慢指针】【哈希集合】【计数】【链表】 题目来源 141. 环形链表 题目解读 判断一个链表中是否存在环。 解题思路 …

(Java)中的数据类型和变量

文章目录 一、字面常量二、数据类型三、变量1.变量的概念2.语法的格式3.整型变量4.长整型变量5.短整型变量6.字节型变量 四、浮点型变量1.双精度浮点数2.单精度浮点数 五、字符型常量六、布尔型变量七、类型转换1.自动类型转换(隐式)2.强制类型转换(显式…

react的setState做了什么

1、为什么需要setState setState的作用是帮助我们更改数据的同时并且通知视图进行渲染。因为React并不会绑定视图和state,需要我们手动去更新视图。 2、setState什么时候是同步的,什么时候是异步的 setState这个方法在调用的时候是同步的,…

【人工智能Ⅰ】实验1:谓词表示法与产生式知识表示

实验1 谓词表示法与产生式知识表示 一、实验目的 1、熟悉谓词逻辑表示法; 2、理解和掌握产生式知识表示方法,实现产生式系统的规则库。 二、实验内容 要求通过C/C/python语言编程实现: 1、猴子摘香蕉问题 2、动物识别系统 &#xff08…

Spring无法加载静态属性和SpringBoot单元测试指定加载配置文件

一、Spring无法加载静态属性,怎么解决? Spring主要用于管理和注入Bean(对象)的实例属性,而不是静态属性。静态属性属于类本身,而不是类的实例,因此Spring的依赖注入机制不会处理它们。 看图&a…

项目部署Linux步骤

1、最小化安装centos7-环境准备 安装epel-release 安装epel-release,因为有些rpm包在官方库中找不到。前提是保证可以联网 yum install -y epel-release 修改IP net-tools net-tool:工具包集合,包含ifconfig等命令 yum install -y net-…

【MySQL-->数据操作】

文章目录 前言一、insert1.单行插入2.多行插入3.插入更新/替换 二、select1.全列查询2.指定列插入3.列别名4. 表达式计算5.去重6.where条件查询7.排序8.limit分页显示 三、update四、delete五、插入查询结果六、聚合函数六、聚合分组1.格式2.where和having的区别 前言 一、inse…

个人创业新机遇,零成本开启真人手办定制项目

桌上的日历变薄,2023年已经接近尾声,浅观这一年,您是否发现大家日常关注的重点有明显的变化,诸多社会事件和宏观数字的背后,潜藏着对经济的“不托底”,而当我们真正开始关注起用个人经济积累去对冲未来的不…

大数据Flink(一百零一):SQL 表值函数(Table Function)

文章目录 SQL 表值函数(Table Function) SQL 表值函数(Table Function) Python UDTF,即 Python TableFunction,针对每一条输入数据,Python UDTF 可以产生 0 条、1 条或者多条输出数据,此外,一条输出数据可以包含多个列。比如以下示例,定义了一个名字为 split 的Pyt…

【会员管理系统】篇二之项目搭建、初始化、安装第三方库

一、项目搭建 1.全局安装vue-cli npm install -g vue/cli查看版本信息 vue -V 2.创建项目 vue create 项目名称 回车 回车 剩余选择如下 之后等待项目创建 最后npm run serve 二、初始化配置 1.更改标题 打开public下的index,将title标签里的改成想要设置的…