深度学习

一、下载安装Anaconda

anaconda是python的包管理器,可以很方便的管理不同项目的python环境,解决不同项目python包的环境冲突问题。

注意:python项目开发的时候要养成良好的习惯,不同的python项目要采取不同的python虚拟环境,不同的虚拟环境之间相互隔离,python版本和包均不共用。python虚拟环境的创建和管理常用anaconda.

安装步骤:

1.官网下载安装包:https://www.anaconda.com/download/success

2.双击exe文件开始安装

3.然后点击Next,同意协议,点击I Agree

3.两个选项均可,第一个是只为当前用户安装,第二个是为所有用户安装,,建议选择第二个选项。

4.修改安装路径,不安装到C盘即可。

5.这一步将下面三个选型进行勾选即可

接下来的几步,直接都点击next,就能直接完成安装了。最后一步点击Finish。

 

6.添加环境变量, 将自己的Anaconda的安装路径下的几个目录添加到环境变量中(我的安装路径为D:\anaconda3)

D:\anaconda3
D:\anaconda3\Scripts
D:\anaconda3\Library\bin
D:\anaconda3\Library\mingw-w64\bin

7.输入conda -Vconda --version, 查看安装的Anaconda版本

如上图显示,Anaconda安装并配置完成

二、PyCharm使用Anaconda管理多版本 Python 环境

当你需要在Pycharm 配置anaconda 的python版本解释器,而Pycharm中只能使用anaconda 低版本的python解释器,但你想要的却是高版本的python解释器 时!最好的处理是升级你的pycharm版本(推荐);如果是在特殊环境或不想升级pycharm时,可以参考下述操作。配置流程:

1.开始 ——> 打开Anaconda Prompt工具

2.查看conda版本

conda --version

3.查看当前Python版本

python --version

4.创建一个python3.10的环境

# 创建一个名为"python310"的新conda环境,并指定安装Python 3.10版本
conda create --name python310 python=3.10
# 当出现"Proceed ([y]/n)?"提示时,输入y并回车表示确认安装

# 查看环境列表
conda env list

# 激活环境(可以关闭命令窗口,重新激活一下)
conda activate python310

# 退出当前环境
conda deactivate

5.打开pycharm创建项目,使用前面创建的环境

查看环境地址

创建项目

三、深度基础

3.1.深度学习的定义

3.1.1.人工智能、机器学习、深度学习的概念以及之间的关系

1.人工智能(AI, Artificial Intelligence)

这是最广泛的概念,指的是使机器能够模拟人类智能行为的技术和研究领域。AI包括理解语言、识别图像、解决问题等各种能力。

  • AI是研究智能操作的计算代理
  • AI是使用计算机 来模拟而不是人脑

2.机器学习(ML, Machine Learning)

机器学习是实现人工智能的一种方法。它涉及到算法和统计模型的使用,使得计算机系统能够从数据中“学习”和改进任务的执行,而不 是通过明确的编程来实现。机器学习包括多种技术,如线性回归、支持向量机(SVM)、决策树等。

3.深度学习(DL, Deep Learning)

深度学习是机器学习中的一种特殊方法,它使用称为神经网络的复杂结构,特别是“深层”的神经网络,来学习和做出预测。深度学习特 别适合处理大规模和高维度的数据,如图像、声音和文本。

3.1.2.什么是深度学习?

深度学习是机器学习的一个特定分支(或者说子集)。‌ 它的核心思想是使用一种称为“‌人工神经网络‌”的结构,特别是包含多个“‌隐藏层‌”的深层网络结构,来从数据中自动学习和提取复杂的特征模式,从而完成各种智能任务。

  • 机器学习是实现人工智能的一种途径
  • 深度学习是机器学习的一种方法

  • 传统机器学习算术依赖人工设计特征,并进行特征提取,而深度学习方法不需要人工,而是依赖算法自动提取特征。
  • 深度学习模仿人类大脑的运行方式,从经验中学习获取知识。这也是深度学习被看做黑盒子,可解释性差的原因。

总结说明:

  • 所有深度学习都是机器学习,但并非所有机器学习都是深度学习。深度学习的崛起源于其在处理特定类型的大数据问题上的卓越 能力,尤其是那些传统机器学习算法难以处理的复杂问题。然而,对于某些任务和数据集,更简单的机器学习方法可能更加有效 和适合。
  • 在深度学习的过程中,每一层神经网络都对输入数据进行处理,从而学习到数据中的特征和模式。例如,在图像识别任务中,第 一层可能会识别边缘,第二层可能会识别形状,更深的层则可能识别复杂的对象特征,如面孔。这些层通过大量数据的训练,逐 渐优化它们的参数,从而提高模型的识别或预测能力。
  • 深度学习的关键之一是“反向传播”算法,它通过计算损失函数(即实际输出与期望输出之间的差异)并将这种误差反馈回网络 的每一层,来调整每层的权重。这种方法使得网络能够从错误中学习并不断改进。
  • 深度学习的一个重要的概念是“特征学习”,这意味着深度学习模型能够自动发现和利用数据中的有用特征,而无需人工介入。 这与传统的机器学习方法不同,后者通常需要专家提前定义和选择特征。
  • 深度学习的成功依赖于大量的数据和强大的计算能力。随着数据量的增长和计算技术的发展,深度学习模型在图像和语音识别、 自然语言处理、游戏、医疗诊断等多个领域取得了显著成就。它通过提供更精确和复杂的数据处理能力,推动了人工智能技术的 飞速发展。然而,这种技术也面临挑战,如需求大量的训练数据,模型的复杂性和不透明性,以及对计算资源的高需求。尽管如 此,深度学习仍然是当今最激动人心的技术前沿之一,其应用潜力巨大。

3.2.深度学习的优缺点

1.优点

  • 精度高,性能优于其他的机器学习算法,甚至在某些领域超过了人类
  • 随之计算机硬件的发展,可以近似任意的非线性函数
  • 近年来在学界和业界受到了热捧,有大量的框架和库可供调。

2.缺点

  • 黑箱,很难解释模型是怎么工作的
  • 训练时间长,需要大量的计算资源
  • 网络结构复杂,需要调整超参数多
  • 部分数据集上表现不佳,容易发生过拟合

3.3.深度学习发展史

 

3.4.深度学习的应用场景

(1)图像识别和处理

  •  物体检测:从图片中识别和定位不同的物体。
  •  面部识别:用于安全系统和个性化服务。
  •  医学影像分析:识别疾病标志,如癌症筛查中的肿瘤 检测。

(2)自然语言处理(NLP)

  •  机器翻译:如谷歌翻译等工具。
  •  语音识别:用于语音助手和自动语音转文字服务。
  •  文本生成:自动撰写新闻稿、生成创意内容等。

(3)音频处理

  •  音乐生成:创造新的音乐作品。
  •  语音合成:如智能助手中的自然语音反馈。

(4)视频分析

  •  行为分析:在安全监控中分析人类行为。
  •  实时视频处理:用于增强现实和虚拟现实应用。

(5)游戏和仿真

  •  AI对战:在复杂的游戏中模拟人类玩家。
  •  环境模拟:创建逼真的虚拟环境和情境。

(6)自动驾驶汽车

  •  环境感知:理解和解释周围环境。
  •  决策制定:自动驾驶过程中的安全决策。

(7)推荐系统

  •  个性化推荐:在电子商务、社交媒体和娱乐平台中推 荐产品或内容。

(8)金融领域

  •  风险评估:信贷评分和投资风险分析。
  •  欺诈检测:识别异常交易行为。

(9)医疗领域

  •  药物发现:加速新药物的研发。
  •  疾病预测和分析:基于患者数据预测疾病风险。

3.5.深度学习的常用框架

1.TensorFlow

TensorFlow是Google开发的一款开源软件库,专为深度学习或人工神经网络而设计。TensorFlow允许你可以使用流程图创建神经网络 和计算模型。它是可用于深度学习的最好维护和最为流行的开源库之一。TensorFlow框架可以使用C++也可以使用Python。你可以使用 TensorBoard进行简单的可视化并查看计算流水线。其灵活的架构允许你轻松部署在不同类型的设备上。不利的一面是,TensorFlow没有符号循环,不支持分布式学习。此外,它还不支持Windows。

  • ➢ 出生地:Google
  • ➢ 特点:计算图、分布式训练效果强、底层C构建速度快,生态强大
  • ➢ 主要调包语言:Python、C/C++、JS
  • ➢ 评价:对标Pytorch、学术界没市场了、部署更加的方便
  • ➢ 入门推荐:建议做工程的小伙伴入门

2.Pytorch

Pytorch是Meta(前Facebook)的框架,前身是Torch,支持动态图,而且提供了Python接口。是一个以Python优先的深度学习框架,不仅能够实现强大的GPU加速,同时还支持动态神经网络。Python是现在学术界的霸主,对于想要做学术的同学绝对首推(重点)。

  • ➢ 出生地:FaceBook
  • ➢ 特点:生态强大、入门爽歪歪、代码量少(重点)
  • ➢ 主要调包语言:Python、C/C++
  • ➢ 评价:入门很快、速度有点慢、部署很垃圾、学术界的霸主
  • ➢ 入门推荐:想要做学术的同学绝对首选,几乎现在顶会论文的代码都是这个框架写的。

3.PaddlePaddle

百度推出的深度学习框架,算是国人最火的深度学习框架了。更新了2.0的高级API与动态图后,Paddle更加的强大。百度有很多 PaddlePaddle的教程,对于初学者来说还是相当不错的。PaddlePaddle有很多便捷的工具,比如Detection、CV、NLP、GAN的工具 包,也有专门的可视化工具(远离Tensorboard的支配)。

  • ➢ 出生地:百度
  • ➢ 特点:计算图动态图都支持、有高级API、速度快、部署方便、有专门的平台
  • ➢ 主要调包语言:Python、C/C++、JS
  • ➢ 入门推荐:如果没有卡那就非常适合,如果算力不缺,建议先看看Pytorch,当然也可以PaddlePaddle。

4.ONNX

ONNX是一种针对机器学习所设计的开放式的文件格式,用于存储训练好的模型。它使得不同的人工智能框架(如Pytorch, MXNet)可以 采用相同格式存储模型数据并交互。用大白话说就是是一个中间件,比如你Pytorch的模型想转换别的,就得通过ONNX,现在有的框架 可以直接转,但是在没有专门支持的时候,ONNX就非常重要了,万物先转ONNX,ONNX再转万物。ONNX本身也有自己的模型库以及 很多开源的算子,所以用起来门槛不是那么高。

  • ➢ 出生地:有点多,很多大厂一起整的
  • ➢ 特点:万能转换
  • ➢ 主要调包语言:Python、C/C++
  • ➢ 入门推荐:不用刻意学习,用到了再看。

3.6.主流算法模型

1.卷积神经网络(CNN)

  • ➢ 适用于图像识别、视频分析、医学影像等。
  • ➢ 特别擅长处理带有空间关系的数据。

2.循环神经网络(RNN)及其变体(如LSTM、GRU)

  • ➢ 适用于时间序列数据处理,如语音识别、音乐生成、自然语言处理。
  • ➢ 能够处理序列数据中的时间动态性。

3.Transformer架构

  • ➢ 引领自然语言处理的新浪潮,如BERT、GPT系列。
  • ➢ 适用于复杂的语言理解和生成任务。

4.自编码器(Autoencoders):

  • ➢ 用于数据降维、去噪、特征学习等。
  • ➢ 在异常检测和数据生成中也有应用。

5.生成对抗网络(GANs):

  • ➢ 用于图像生成、艺术创作、数据增强等。
  • ➢ 擅长生成逼真的图像和视频。
posted @ 2025-06-02 17:14  酒剑仙*  阅读(121)  评论(0)    收藏  举报