【深度学习-第1篇】深度学习是什么、能干什么、要怎样学?

news2024/11/28 10:45:41

大概4年前本专栏发布了一篇关于神经网络的入门科普文章,到现在大概有小5k赞了(Mr.看海:神经网络15分钟入门!足够通俗易懂了吧)。

这几年人工智能发生了突飞猛进的发展,时至今日甚至发展出了GPT-4、Midjourney这样逆天的应用。专栏这些年一直在策划开启深度学习的系列化教程,奈何之前的括号先生挖的坑太多,所以一直在填模态分解、时频域分析、特征提取、降维等等方面的内容。最近终于把想讲的、该讲的差不多讲完了,所以从今天开始,本专栏将正式开启深度学习专题!

诚然现在网络上将深度学习的教程多如牛毛,不过我依然想把这部分内容完整梳理一遍,并希望能够尽可能直观地、生动地、全面地对深度学习的各种方法的方方面面进行讲解,会涵盖各种网络基本原理的讲解、MATLAB和python代码的实现、常见问题的解惑等等,深度学习的专题是一个比较庞大的选题,尤其配备的代码还需要反复校验与注释封装,所以文章更新可能会是一个比较长期的过程。

本篇作为专栏的第一篇,先来聊一聊深度学习是什么、能干什么、要怎样学?

https://fuxi.163.com/database/39

一、深度学习是什么?

我们常常会听到几个名词:神经网络、人工智能、深度学习、机器学习,这几个概念有什么区别呢?

人工智能是一门研究和开发智能机器的科学和技术。它旨在使机器能够模拟和展现人类的智能行为,如感知、理解、推理、学习和决策等。人工智能的目标是创造具有自主思考和学习能力的机器,使其能够完成复杂的任务并模仿人类的认知能力。人工智能的范畴在这几个概念中是最广的。

机器学习是实现人工智能的一种方法。机器学习是研究如何让计算机系统通过数据和经验自动学习和改进性能的领域。它使用各种算法和模型,包括神经网络,来训练机器从数据中学习规律和模式,以完成特定任务。通常可以认为机器学习属于人工智能的范畴。

神经网络是一种受到人脑神经系统启发的计算模型。它由大量的人工神经元组成,这些神经元通过连接权重相互连接,形成一个复杂的网络结构。神经网络可以通过学习和调整连接权重来处理输入数据,进行模式识别、分类、预测等任务。神经网络属于人工智能,也属于机器学习,但是要注意,并不是所有机器学习都是神经网络模型,比如支持向量机、决策树等等。

深度学习是以多层次的神经网络为基础,每一层的输出作为下一层的输入,形成层层传递和处理数据的结构。深度即层数,我们通常将很多层的神经网络模型称为深度学习,但是多少层以上算是深度学习呢,有说三层的,也有说八层的,没有一个很标准的说法,反正现在的深度学习网络层数是越来越多了。

所以这四个概念的包含关系大概是这样的:人工智能>机器学习>神经网络>深度学习

本专题我们将聚焦深度学习,但是强烈建议大家读一下本专栏之前写的两篇关于神经网络的基础科普文章,

  • Mr.看海:神经网络15分钟入门!足够通俗易懂了吧
  • Mr.看海:神经网络15分钟入门!——反向传播到底是怎么传播的?

这两篇是我们讲解深度学习的基础,理解了文章里的内容,基本就对于神经网络是什么、是怎样实现的有一个整体的认知,在后边的文章中有很多重复的概念我将不再复述。

那么总结一下,深度学习是什么呢?

  • 它是机器学习的一个分支,是一种基于人工神经网络的机器学习方法,旨在模仿人脑神经网络的工作方式,以实现对大规模数据进行学习和建模的能力。
  • 它通过构建多层神经网络,(通常)通过大量的数据和反向传播算法来自动学习数据的特征表示和模式。
  • 它的核心思想是利用多层神经网络的非线性变换能力,逐层提取数据的抽象特征表示。每一层神经网络都通过简单的线性和非线性变换将输入数据转化为更高级别的特征表示,从而逐步实现对数据的深层次理解和建模。这种层层叠加的结构使得深度学习模型能够处理和学习复杂的特征和关系,从而在许多领域取得了出色的性能。

二、深度学习能干什么?

深度学习的应用已经深入到我们生活的方方面面,比如进画画草草的拍照识图、比如金融市场的量化交易、比如车辆自动驾驶、比如某音上“这个男人叫小帅”这种语音合成、比如像“中国队勇夺世界杯”这种虚空作画。

AI创作的“中国队勇夺世界杯” 图片来源:https://k.sina.cn/article_2437958991_p91504d4f02702fh7l.html

如果从本质上进行总结,常见的深度学习应用大概可以分成几大类:

1.分类:这可能是深度学习最常见的应用之一。在分类任务中,模型需要预测输入数据属于哪一个类别。例如,对于一张图像,模型可能需要预测图像是猫还是狗。其他的例子包括垃圾邮件检测(判断邮件是否为垃圾邮件)以及情感分析(判断一段文本的情感倾向是积极还是消极)。

猫狗图片分类识别 https://www.zhaoyabo.com/?p=4104

2.回归预测:在回归任务中,模型需要预测一个连续的数值,而不是一个类别。例如,根据一个房屋的特征(如面积、位置和房龄等)来预测其价格。

https://xueqiu.com/7239700492/146811654

3.时间序列预测:在时间序列预测任务中,模型需要预测序列中的下一个元素或一系列元素。例如,根据过去几个月的销售数据来预测下个月的销售量,比如股市走势预测。时间序列预测也可以是做回归预测的一种,但时间序列预测更加专注于处理具有时间依赖性的数据。

https://www.chaogu1688.com/1245.html

4.生成模型:生成模型是深度学习中的一个重要任务,目标是学习并理解输入数据的分布,以便生成新的数据样本。比如,生成对抗网络(GANs)就是生成模型的一种,被广泛用于生成类似真实的图像、音乐、语音等。 GPT主要涉及的任务类型是生成模型任务。

与机器人对话 https://www.bbc.com/news/technology-63861322

5.强化学习:强化学习是一种模型在环境中进行探索,并通过奖励和惩罚来学习如何实现其目标的机器学习方法。例如,训练一个游戏AI,如下棋或打电子游戏,以便它能够学习如何赢得比赛。

Dota世界冠军被OpenAI碾压,全程人类只推掉两座外塔 https://www.pingwest.com/a/186357

6.序列到序列(Seq2Seq)预测任务:这种类型的任务中,输入和输出都是序列,这种模型常见于自然语言处理领域,比如机器翻译、文本摘要等。

机器翻译 https://www.dataapplab.com/machine-translation-zhihu-ai-unemployment/

7.自然语言处理:深度学习在处理语音识别、情感分析、文本生成、问答系统等自然语言处理问题上表现出强大的能力。

情感分析 https://zhuanlan.zhihu.com/p/24944935

8.计算机视觉:深度学习已被广泛应用于目标检测、图像分割、人脸识别、3D物体重建等计算机视觉任务。

https://zhuanlan.zhihu.com/p/475512535

在上述分类中,任务类型往往不是完全相互独立的,而是有大量的交叉和融合。某些任务可能涵盖多个类型的元素,同时使用不同类型的技术来解决问题。比如chat-GPT需要理解用户的输入(自然语言处理),然后生成合适的响应(Seq2Seq预测),又比如自动驾驶系统需要使用到计算机视觉技术进行路面检测、行人检测等,同时还要通过强化学习来优化决策策略,以确保安全和有效地驾驶。如此种种,不一而足。

不过在本专栏中,我们会将有所侧重。我们将重点针对最常见的分类、回归预测和时间序列预测进行讲解和示范。其他应用方向可能会放在后边,在讲到相应的网络类型时再进行有针对性的讲解。

三、深度学习该怎样学?

深度学习是一个涵盖范围广泛的主题,涉及到数学、计算机科学和多种不同的技术。对于初学者来说,最有效的学习方法通常是边学边做。在理解理论的同时,通过编写代码和完成项目来实践并巩固你的理解。以下是一份为初学者设计的深度学习学习路径:

1. 数学基础知识

深度学习是一个高度数学化的领域,以下列出的数学知识是深度学习中必须掌握的:

  • 线性代数:这是深度学习的基石,你需要理解向量、矩阵和张量的操作,这对理解神经网络的计算过程至关重要。同时,其他概念如特征向量、特征值等也会在某些场景中使用。
  • 微积分:微积分在深度学习中的主要应用是用于优化。深度学习中常用的优化算法,如梯度下降,其背后的原理就是微积分。你需要了解导数、偏导数、梯度以及链式法则等概念。
  • 概率论和统计:深度学习中的很多概念,如损失函数、正则化、Bayes推理,都需要概率论和统计知识的支持。理解概率分布(如高斯分布、伯努利分布等)、期望、方差、协方差、条件概率、贝叶斯定理等概念是非常重要的。

2.编程语言

同时,你需要熟悉至少一种编程语言。

Python是深度学习领域最常用的语言,有着大量的框架可以使用,以及海量的资料可以参考;

MATLAB则是(我认为)实现起来最简单的编程语言,可以快速实现你想做的研究。

在本专栏中我将使用python和MATLAB都进行深度学习的实现,在这过程中你可以挑选出自己更喜欢的方法。

3. 学习深度学习和神经网络

可能有些教程会在开始深度学习之前,讲解一些机器学习的内容,比如决策树、支持向量机等等,不过我人建议这些理论可以用到哪学到哪,否则这些繁杂的概念可能会成为学习路上擂起的第一道退堂鼓,况且其中很多概念在深度学习中是用不到的。

深度学习可以从前馈神经网络开始,然后是反向传播算法(这两篇已经写好了,就是这两个:神经网络15分钟入门!足够通俗易懂了吧反向传播到底是怎么传播的?);

然后是卷积神经网络(CNN)、循环神经网络(RNN)以及深度信念网络、深度生成模型、深度强化学习等,要理解这些模型的工作原理和如何训练它们。

本专栏会带着大家一个个啃下它们。

4. 项目实践

理论学习的同时,务必动手实践。可以开始做一些简单的项目,例如手写数字识别(MNIST数据集)或者简单的图像分类(CIFAR-10数据集),或者时间序列方面可以预测一下股票走向(虽然不一定靠谱)。

5. 持续学习和关注新进展

深度学习是一个快速发展的领域,新的研究和技术不断涌现。因此,需要定期阅读新的研究论文和博客文章,关注最新的进展。

结语

以上是本专栏深度学习的开篇词,总之按照本专栏的内容,我会带着大家从零开始逐渐实现对深度学习的全面了解和掌握。

对该内容感兴趣的同学们欢迎关注本专栏:与信号处理有关的那些东东

同时我开了一个专门收录我写的神经网络及深度学习内容的专栏,也欢迎大家关注:看海的深度学习专栏

谢谢支持!

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

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

相关文章

经典高并发服务器设计逻辑

都是面试必问的八股,不管理不理解用不用得上,背就完事了。 服务器模型 对于并发量比较大的服务器,即listen监听端口一直忙碌于处理新建连接的场景,一般在主线程里面accept新的客户端连接并生成新连接的socket,然后将这…

Unity制作二次元卡通渲染角色材质——2、色阶化光影的多种做法对比

Unity制作二次元材质角色 回到目录 大家好,我是阿赵。 这里继续讲二次元角色渲染。之前说过,最基本的卡通渲染,包含了色阶化光影和描边二个元素。所以这里先来说一下色阶化光影的多种做法对比。 一、光照模型和色阶化的说明 从上一篇文章里…

拿捏-哈夫曼树构建及编码生成(建议收藏)

文章目录 哈夫曼树的基本概念哈夫曼树的构建构建思路代码实现 哈夫曼编码的生成编码生成思路代码实现 完整代码展示及代码测试 哈夫曼树的基本概念 在认识哈夫曼树之前,你必须知道以下几个基本术语: 1、什么是路径? 在一棵树中,从…

Kafka 分区

分区是 Kafka 的核心功能,对于 Kafka 的存储结构、消息的生产消费方式都至关重要。 Partition(分区) 每 topic 都可以分成多分区,每个分区都是一组有序的、不可变的记录序列,每个分区在存储层面是 append log 文件。…

python中Requests发送json格式的post请求方法

问题:做requests请求时遇到如下报错: {“code”:“500”,“message”:"JSON parse error: Cannot construct instance of com.bang.erpapplication.domain.User (although at least one Creator exists): no String-argument constructor/factory …

唠一唠程序员的那些事

作为一名互联网摸爬滚打多年的老兵,我可以从以下角度提供一些信息: 加班是家常便饭:程序员往往需要加班来满足项目需求或完成任务。这意味着他们经常会在晚上、周末或节假日工作。代码不仅仅是工作:对于大多数程序员来说&#xff…

【C++】成员对象和成员函数分开存储

欢迎来到博主 Apeiron 的博客,祝您旅程愉快 ! 时止则止,时行则行。动静不失其时,其道光明。 目录 1、缘起 2、详解 3、代码清单 1 3.1、类中定义成员变量 3.2、类中定义成员函数 4、代码清单 2 5、总结 1、缘起 “成员变量…

SpringBoot 增强Controller方法,@ControllerAdvice注解的使用

参考资料 ControllerAdvice 用法SpringBoot使用ControllerAdvice注解 目录 一. ControllerAdvice注解作用二. ControllerAdvice注解 assignableTypes属性2.1 ControllerAdvice增强类2.2 Controller层2.3 效果 三. ControllerAdvice注解 basePackages属性3.1 ControllerAdvic…

踩坑|以为是Redis缓存没想到却是Spring事务!

前言 最近碰到了一个Bug,折腾了我好几天。并且这个Bug不是必现的,出现的概率比较低。一开始我以为是旧数据的问题,就让测试重新生成了一下数据,重新测试。由于后面几轮测试均未出现,我也就没太在意。 可惜好景不长&…

【LeetCode】260. 只出现一次的数字 III

260. 只出现一次的数字 III(中等) 思路 这道题是136. 只出现一次的数字 的进阶版,需要找出两个仅出现一次的元素。有了上一题的基础,我们很容易就想到要用异或来解决,但是由于这题最终会剩下两个不同的元素&#xff0…

设置和使用DragGAN:搭建非官方的演示版

DragGAN的官方版还没有发布,但是已经有非官方版的实现了,我们看看如何使用。DragGAN不仅让GAN重新回到竞争轨道上,而且为GAN图像处理开辟了新的可能性。正式版本将于本月发布。但是现在已经可以在一个非官方的演示中试用这个新工具了 DragGAN…

数据结构:二叉树(初阶)

朋友们、伙计们,我们又见面了,本期来给大家解读一下二叉树方面的相关知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门到精通 …

Unix/C/C++进阶--SocketCAN 编程

Unix/C/C进阶--SocketCAN 编程 1 介绍1.1 socketcan 简介1.2 can 发展历程1.3 can总线优点 2 知识点2.1 CAN详解--书籍、网站2.2 CAN详解--CAN与com口介绍2.3 CAN详解--各家CAN分析仪与软件的比较2.4 转载:CAN总线终端电阻2.5 如何破解汽车--CAN协议(can…

3.8 电路布线

博主简介:一个爱打游戏的计算机专业学生博主主页: 夏驰和徐策所属专栏:算法设计与分析 1.最优子结构的证明: 我的理解: 对于电路布线问题的最优子结构性质,我们可以通过数学推导进行证明。下面是对证明的…

conda在 powershell下不能激活虚拟环境

这里写自定义目录标题 问题原因解决办法增加环境变量修改PowerShell 策略初始化conda环境安装或更新conda 结果 问题原因 powershell正常是不行的,但是在cmd中是可以的 问题产生的原因有很多: 必须无法识别activate.bat激活无反应 解决办法 增加环…

【JavaSE】Java基础语法(四十六):枚举

文章目录 1. 概述2. 定义格式3. 枚举的特点4. 枚举的方法 1. 概述 枚举是一种特殊的数据类型,它列出了一组预定义的常量,并使用标识符来引用这些常量。枚举的用途很广泛,下面列举了几个常见的应用场景: 管理常量:如果您…

计算机组成原理---第三章存储系统 习题详解版

(一)精选课内习题 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 (二)精选课后习题 1.设有一个具有20位地址和32位字长的存储器,问: (1)该存储器能存储多少个字节的信息? (2)如果存储器由512k8位的SR…

Linux :: vim 编辑器:详解:文本复制/粘贴/剪切/删除 与 撤销普通操作及撤销撤销操作

前言:本篇是 Linux 基本操作篇章的内容! 笔者使用的环境是基于腾讯云服务器:CentOS 7.6 64bit。 学习集: C 入门到入土!!!学习合集Linux 从命令到网络再到内核!学习合集 前文&#x…

chatgpt赋能python:Python去掉None:提高代码效率,优化SEO

Python去掉None:提高代码效率,优化SEO 作为一名有10年Python编程经验的工程师,我发现Python中会频繁出现None类型的变量。这种情况在代码中一旦过多,就会影响程序的效率,同样也会影响SEO的排名。因此,为提…

【数据仓库架构】什么是 Azure Synapse,它与 Azure Data Bricks 有何不同?

Azure Synapse Analytics 是一项针对大型公司的无限信息分析服务,它被呈现为 Azure SQL 数据仓库 (SQL DW) 的演变,将业务数据存储和宏或大数据分析结合在一起。 在处理、管理和提供数据以满足即时商业智能和数据预测需求时,Synapse 为所有工…