Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >深度学习理论篇之 ---- 开山之石

深度学习理论篇之 ---- 开山之石

作者头像
用户5410712
发布于 2022-06-01 11:43:04
发布于 2022-06-01 11:43:04
3900
举报
文章被收录于专栏:居士说AI居士说AI

深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能(AI, Artificial Intelligence)。

深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。深度学习是一个复杂的机器学习算法,在语音和图像识别方面取得的效果,远远超过先前相关技术。

深度学习在搜索技术,数据挖掘,机器学习,机器翻译自然语言处理,多媒体学习,语音,推荐和个性化技术,以及其他相关领域都取得了很多成果。深度学习使机器模仿视听和思考等人类的活动,解决了很多复杂的模式识别难题,使得人工智能相关技术取得了很大进步。

前言

在深度学习理论篇的上一次文章中,我们从总体上对深度学习、人工智能、机器学习进行了了解和他们的关系,并着重阐述了深度学习的现有方向和主流网络。今天的文章将继续铺开深度学习的理论基础,我们从零开始,不对,也不能说完全的从零开始,还是得具有一定的基础,不然,学起来还是有点吃力,一起来看看今天的文章吧!

、理论基础

1.1 专业基础

由于深度学习学科的特殊性和专业性,我们来看看学习深度学习的专业基础,何谓专业基础呢?通俗一点就是之前的专业是什么类型的?基础怎么样?之前的专业决定你对深度学习的促进作用,说到这个问题,我们要先了解深度学习细节部分,总的来说,深度学习=数学+计算机+逻辑思维能力。其实数学已经包括了一部分逻辑思维能力,但是逻辑思维能力并不是数学就可以完全概括的,逻辑思维能力可以在一定程度上决定你对深度学习的理解能力和今后的学习境界,通常来说,基本的逻辑思维的可以从高中到大学本科开始的,而这个时候,你的专业就显得特别重要了,可以单纯的想想,如果你的大学是文科专业,比如,音乐,艺术,管理等专业的话,可能逻辑思维能力得到锻炼的机会就较少,因此,如果以这样的文科专业进行深度学习的学习的话,可能有一点吃力,花费的时间也较长,但是也有不乏优秀者,学的很快。而这个问题面对理科专业的学生,如,电子,计算机,电气,机械等等专业,他们的逻辑思维能力就占据了优势,本身大学的专业基础课大部分是与数学、编程等相关的,特别是授课知识与实验大部分都是需要进行逻辑推理的,因此,他们的逻辑能力是一直在锻炼的,对于这样专业的学生来书,进入深度学习的话,正常情况下会学的快一点

一句话概括:专业基础决定逻辑思维能力,逻辑思维能力决定深度学习的起始速度和最终境界,尤为重要,因此,踏上深度学习的同学最好是理工科的学生,当然,文科的学生也不例外,有志者事竟成。

1.2 数学基础

深度学习的早期存在其实是数学的的不断推进,因此,数学能力是深度学习的基石也是以后更加高效算法开发的前提,举个简单的例子,会一般的数学,那么可能对于深度学习你就只会用,只会改,但是如果是高深的数学,那么,深度学习对你来说可能以为创造和超越,而不仅仅是会用。

就目前而言,深度学习的数学基础为:大学数学(主要是微积分和线性代数+概率论等等)+研究生数学,例如,深度学习的基础算法之一的BP算法,主要思想就是大学微积分的导数和偏导,梯度等等,这部分知识对于一个合格的大学生来说是必须要掌握的,也是深度学习入门的基础,否则后期进步空间有限,而研究生数学则是入进入深度学习其他领域的基石,例如,想要进如强化学习,你可能要先学习排队论等等。

二、计算机基础

2.1 硬件基础

说到硬件基础,其实是一个痛点,为什么这么说呢,因为深度学习的硬件配置要求比一般的办公硬件要高,CPU+内存条+显卡+固态都要给力才行,至于为啥没需要用到配置较好的硬件呢?深度学习有一个特点,大数据和训练,因此训练的时间快慢就决定了硬件的选择方向,而其中最重要的则是显卡,因为深度学习需要用到显卡才能达到加速的功能,否则你的模型可能需要训练一天,而别人的可能几个小时就搞定了,而且深度学习需要调试很多参数才能得到较好的模型,参数的每一次更改就是一次新的训练,所以,一个好的深度学习模型的诞生,无一不是经过多次的调试和较长时间的训练才能得出的结果,这一途,很少有捷径一说,硬件基础,深度学习之重器也!

2.2 编程基础

好的模型,好的算法,不光停留于思想,行驶于纸笔,而更应该看到实际的效果,深度学习的算法实现必然离不开计算机语言,因此,为什么说专业基础特别重要了吧,因为,编程基础可能就来自于你的专业基础了,如今的深度学习,编程基础主要是python、C++两门语言,Python是如今最受欢迎的语言,深度学习的很多网络都是用Python语言来实现的,而C++则多用于工业界的落地,一个好的深度学习算法诞生可能是用Python编写代码的,但是应用在实际的场景时通常会采用C++重写代码,便于后期维护,集成和嵌入等等。

因此,如果大学的时候就拥有了编程基础,那么对于深度学习将会是很大的助力,这一点对于计算机、电子等专业的同学来说,十分具有优势,毋庸置疑,期待深度学习遇见更好的你们。

2.3 深度学习框架

深度学习的广泛使用和传播,开源框架在一定深度上起到了推动作用,目前的深度学习大多数是基于几个著名的开源框架实现的, 这里主要介绍三个平台。

1.Tensorflow

TensorFlow™是一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现,其前身是谷歌的神经网络算法库DistBelief 。

Tensorflow拥有多层级结构,可部署于各类服务器、PC终端和网页并支持GPU和TPU高性能数值计算,被广泛应用于谷歌内部的产品开发和各领域的科学研究 。

TensorFlow由谷歌人工智能团队谷歌大脑(Google Brain)开发和维护,拥有包括TensorFlow Hub、TensorFlow Lite、TensorFlow Research Cloud在内的多个项目以及各类应用程序接口(Application Programming Interface, API) 。自2015年11月9日起,TensorFlow依据阿帕奇授权协议(Apache 2.0 open source license)开放源代码 。

2. Keras

Keras是一个由Python编写的开源人工神经网络库,可以作为Tensorflow、Microsoft-CNTK和Theano的高阶应用程序接口,进行深度学习模型的设计、调试、评估、应用和可视化 。

Keras在代码结构上由面向对象方法编写,完全模块化并具有可扩展性,其运行机制和说明文档有将用户体验和使用难度纳入考虑,并试图简化复杂算法的实现难度 。 Keras支持现代人工智能领域的主流算法,包括前馈结构和递归结构的神经网络,也可以通过封装参与构建统计学习模型 。在硬件和开发环境方面,Keras支持多操作系统下的多GPU并行计算,可以根据后台设置转化为Tensorflow、Microsoft-CNTK等系统下的组件 。

3. Pytorch

PyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序。2017年1月,由Facebook人工智能研究院(FAIR)基于Torch推出了PyTorch。它是一个基于Python的可续计算包,提供两个高级功能:1、具有强大的GPU加速的张量计算(如NumPy)。2、包含自动求导系统的的深度神经网络。

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

PyTorch既可以看作加入了GPU支持的numpy,同时也可以看成一个拥有自动求导功能的强大的深度神经网络。除了Facebook外,它已经被Twitter、CMU和Salesforce等机构采用 。

关于深度学习平台的实践,我们在代码实践环节会进行讲解,主要设计Tensorflow和Keras框架,大家可以先进行了解,我们我们再来深入。

结语

深度学习的基础分享到此结束了,我们从理论基础与计算机基础出发,较为认真的分析了深度学习之路需要用到的数学基础,专业基础,硬件基础等等,由此说明,入门深度学习需要一定的条件,不是可以随便就可以入门的,但是,我依旧坚信,不管做什么研究和学习,兴趣和坚持是永远的动力和支撑,深度学习这一门新兴学科,是属于全人类的,任何人都可以自由,开放的可以学习,没有国籍,种族,性别,社会地位的限制,期待,深度学习的路上,遇见更好的,你们,我们!

编辑:玥怡居士|审核:小圈圈居士

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT进阶之旅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Deep Learning(花书)教材笔记-Math and Machine Learning Basics(线性代数拾遗)
\(L^p\) norm 定义如右: \(||x||_p=(\sum_i|x_i|^p)^{\frac{1}{p}}\) for \(p∈R,p≥1\).
marsggbo
2018/12/21
1.1K1
【深度学习基础】预备知识 | 线性代数
深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础,结合当代大数据和大算力的发展而发展出来的。深度学习最重要的技术特征是具有自动提取特征的能力。神经网络算法、算力和数据是开展深度学习的三要素。深度学习在计算机视觉、自然语言处理、多模态数据分析、科学探索等领域都取得了很多成果。本专栏介绍基于PyTorch的深度学习算法实现。 【GitCode】专栏资源保存在我的GitCode仓库:https://gitcode.com/Morse_Chen/PyTorch_deep_learning。
Francek Chen
2025/01/22
2080
【深度学习基础】预备知识 | 线性代数
动手学DL——深度学习预备知识随笔【深度学习】【PyTorch】
多加一个括号,结果都是一致的,都是表示二维张量,张量形状都是(4,9),所以二维有两种写法,但再加一层括号,形状就变成了(1,4,9)三维,判断维数技巧:最外面的括号去掉开始数,比如:
来杯Sherry
2023/07/24
4420
动手学DL——深度学习预备知识随笔【深度学习】【PyTorch】
【动手学深度学习】深入浅出深度学习之PyTorch基础
启动jupyter notebook,使用新增的pytorch环境新建ipynb文件,为了检查环境配置是否合理,输入import torch以及torch.cuda.is_available() ,若返回TRUE则说明实验环境配置正确,若返回False但可以正确导入torch则说明pytorch配置成功,但实验运行是在CPU进行的,结果如下:
SarPro
2024/04/02
5130
【动手学深度学习】深入浅出深度学习之PyTorch基础
深度学习中的数学(二)——线性代数
线性可分的定义:线性可分就是说可以用一个线性函数把两类样本分开,比如二维空间中的直线、三维空间中的平面以及高维空间中的超平面。(所谓可分指可以没有误差地分开;线性不可分指有部分样本用线性分类面划分时会产生分类误差的情况。)
润森
2022/09/22
9500
深度学习中的数学(二)——线性代数
D2L学习笔记03:从零实现一个线性回归
接下来将从零开始实现线性回归整个方法,包括数据流水线、模型、损失函数和小批量随机梯度下降优化器。虽然现代的深度学习框架几乎可以自动化地进行所有这些工作,但从零开始实现可以确保你真正知道自己在做什么。同时,了解更细致的工作原理将方便我们自定义模型、自定义层或自定义损失函数。 在这一节中,我们将只使用张量和自动求导。
Hsinyan
2022/08/30
1.1K0
D2L学习笔记03:从零实现一个线性回归
深度学习基础入门篇[六(1)]:模型调优:注意力机制[多头注意力、自注意力],正则化【L1、L2,Dropout,Drop Connect】等
在深度学习领域,模型往往需要接收和处理大量的数据,然而在特定的某个时刻,往往只有少部分的某些数据是重要的,这种情况就非常适合Attention机制发光发热。
汀丶人工智能
2023/04/22
1.2K0
深度学习基础入门篇[六(1)]:模型调优:注意力机制[多头注意力、自注意力],正则化【L1、L2,Dropout,Drop Connect】等
【数值计算方法(黄明游)】解线性代数方程组的迭代法(一):向量、矩阵范数与谱半径【理论到程序】
  矩阵的范数是定义在矩阵空间上的实值函数,用于度量矩阵的大小或度量。对于一个矩阵
Qomolangma
2024/07/30
1700
【数值计算方法(黄明游)】解线性代数方程组的迭代法(一):向量、矩阵范数与谱半径【理论到程序】
张量分解与应用-学习笔记[01]
未来将以张量如何切入深度学习及强化学习领域等方面进行研究和探讨。希望这个长篇能够坚持下去。
LyWang
2019/12/14
3.2K0
张量分解与应用-学习笔记[01]
【数值计算方法(黄明游)】迭代法的一般形式与收敛性定理
【数值计算方法(黄明游)】解线性代数方程组的迭代法(一):向量、矩阵范数与谱半径【理论到程序】
Qomolangma
2024/07/30
1220
【数值计算方法(黄明游)】迭代法的一般形式与收敛性定理
D2L学习笔记02:线性回归
回归(regression)是能为一个或多个自变量与因变量之间关系建模的一类方法。在自然科学和社会科学领域,回归经常用来表示输入和输出之间的关系。在机器学习领域中的大多数任务通常都与预测(prediction)有关。当我们想预测一个数值时,就会涉及到回归问题。常见的例子包括:预测价格(房屋、股票等)、预测住院时间(针对住院病人等)、预测需求(零售销量等)。
Hsinyan
2022/08/30
7480
D2L学习笔记02:线性回归
【机器学习数学基础】线性代数基础
线性代数 一、基本知识 本书中所有的向量都是列向量的形式: \[\mathbf{\vec x}=(x_1,x_2,\cdots,x_n)^T=\begin{bmatrix}x_1\\x_2\\ \vdots \\x_n\end{bmatrix}\] 本书中所有的矩 \(\mathbf X\in \mathbb R^{m\times n}\) 都表示为: \[\mathbf X = \begin{bmatrix} x_{1,1}&x_{1,2}&\cdots&x_{1,n}\\ x_{2,1}&x_{2
10JQKA
2018/12/11
6520
【机器学习数学基础】线性代数基础
使用 C# 入门深度学习:线性代数
张量(Tensor):在 Pytorch 中,torch.Tensor 类型数据结构就是张量,结构跟数组或矩阵相似。
痴者工良
2025/03/26
770
使用 C# 入门深度学习:线性代数
D2L学习笔记00:Pytorch操作
张量表示由一个数值组成的数组,这个数组可能有多个维度。具有一个轴的张量对应数学上的向量(vector);具有两个轴的张量对应数学上的矩阵(matrix);具有两个轴以上的张量没有特殊的数学名称。
Hsinyan
2022/08/30
1.7K0
PyTorch中Tensor的操作手册
默认下,Tensor为‘torch.FloatTensor’类型,若要改为double类型的,则需要执行
孔西皮
2023/10/18
6580
PyTorch中Tensor的操作手册
线性代数 - 1 - 基础知识
线性代数,基础知识,温故知新。 定义 向量: 向量默认为列向量: image.png 矩阵 \mathbf{X} \in \mathbb{R}^{m \times n},表示为: image.png 范数 向量范数 1-范数 各个元素的绝对值之和 image.png 2-范数 每个元素的平方和再开平方根 image.png p-范数 image.png 其中正整数p≥1,并且有 \lim _{p \rightarrow \infty}\|X\|_{p}=\m
为为为什么
2022/08/05
2.3K0
线性代数 - 1 - 基础知识
【干货】深度学习中的线性代数---简明教程
线性代数对于理解机器学习和深度学习内部原理至关重要,线性代数是有关连续值的数学。许多计算机科学家在此方面经验不足,传统上计算机科学更偏重离散数学。这篇博文主要介绍了线性代数的基本概念,包括标量、向量、矩阵、张量,以及常见的矩阵运算,并且也有相应的Python代码实现。
昱良
2018/09/29
8300
《deep learning》学习笔记(2)——线性代数
http://blog.csdn.net/u011239443/article/details/77942575
小爷毛毛_卓寿杰
2019/02/13
5410
《deep learning》学习笔记(2)——线性代数
「深度学习」PyTorch笔记-01-基础知识
互联网万物基于ChatGPT,学习深度学习之前,先来请教一下ChatGPT如何进行学习。
曼亚灿
2023/05/18
9850
「深度学习」PyTorch笔记-01-基础知识
einsum is all you needed
不仅如此,和其它pytorch中的函数一样,torch.einsum是支持求导和反向传播的,并且计算效率非常高。
lyhue1991
2023/02/23
2K0
einsum is all you needed
推荐阅读
相关推荐
Deep Learning(花书)教材笔记-Math and Machine Learning Basics(线性代数拾遗)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档