Deep Learning入门---基本概念

只总结概要,细节请看书中内容


《深度学习入门:基于Python的理论与实现》

Deep Learning from Scratch

🔗 code : https://gitee.com/jrcreat/deep-learning-scratch/

• ISBN:978-7-115-48558-8

核心内容与特点

  1. 从零开始实现深度学习
    • 本书不使用任何外部深度学习框架(如TensorFlow、PyTorch),而是从零开始用Python实现神经网络的核心算法,帮助读者深入理解底层原理。
  2. 理论与实践结合
    • 不仅讲解深度学习的基础理论(如感知机、神经网络、损失函数、梯度下降等),还通过可运行的Python代码逐步实现经典网络(如卷积神经网络)。
  3. 内容结构清晰
    • 共8章,从Python基础、感知机、神经网络、误差反向传播、卷积神经网络到深度学习应用,循序渐进。
  4. 强调"为什么"
    • 不仅介绍"怎么做",还深入探讨"为什么",例如:为什么加深网络层数能提高精度?为什么隐藏层重要?
  5. 实用技巧与案例分析
    • 包含学习率调整、权重初始化、正则化、Dropout、Batch Normalization等实践技巧,以及图像识别、自动驾驶、强化学习等应用案例。

目录结构概览

• 第1章:Python入门(NumPy、Matplotlib基础)

• 第2章:感知机(与门、或门、异或门,多层感知机)

• 第3章:神经网络(激活函数、Softmax、手写数字识别)

• 第4章:神经网络的学习(损失函数、梯度下降、误差反向传播)

• 第5章:误差反向传播法(计算图、链式法则、实现)

• 第6章:学习技巧(参数更新、权重初始化、正则化、超参数优化)

• 第7章:卷积神经网络(CNN结构、卷积层、池化层、LeNet/AlexNet)

• 第8章:深度学习(网络加深、历史、应用案例、未来展望)

本书理念
• "不闻不若闻之,闻之不若见之,见之不若知之,知之不若行之"
强调通过亲手实现代码来真正理解深度学习,而非仅停留在理论或调用框架API。

注意事项
• 使用Python 3.x,依赖NumPy和Matplotlib库。
• 不涉及最新研究进展或深度学习框架的使用,专注于基础原理。
• 以图像识别为主题,未涵盖自然语言处理或语音识别。

第一章:Python入门

重点名词:

  • Python:一种简单易记、开源的动态类型编程语言,本书使用Python 3.x实现深度学习。
  • NumPy:用于高效操作多维数组的外部库,提供广播功能,支持数组间的算术运算。
  • Matplotlib:用于绘制图形的外部库,可可视化数据和模型结果。
  • 解释器(对话模式):交互式运行Python代码的环境,适合快速测试和实验。
  • 脚本文件:保存为.py文件的Python程序,可通过终端执行。
  • 类:用户自定义的数据类型,通过class关键字定义,包含构造函数__init__和方法。
  1. Python简介
    • Python是一种简单、易读、易记的编程语言,开源且免费。
    • 适合初学者和专业人士,广泛应用于科学计算、机器学习、深度学习等领域。
    • 本书使用Python 3.x版本。
  2. Python安装与外部库
    • 推荐使用Anaconda发行版(Python 3.x版本),集成了NumPy、Matplotlib等库。
    • 本书主要依赖的外部库:
    • NumPy:用于数值计算,提供高效的数组操作和数学算法。
    • Matplotlib:用于数据可视化,绘制图形和图像。
  3. Python基础
    • Python解释器:支持交互式编程(对话模式),可直接执行算术运算、定义变量等。
    • 数据类型:包括整数(int)、浮点数(float)、字符串(str)、布尔型(bool)等。
    • 数据结构:
    • 列表(list):有序集合,支持索引和切片。
    • 字典(dict):键值对集合。
    • 控制流:
    • if语句:条件分支。
    • for语句:循环遍历。
    • 函数:可定义和调用函数,支持参数传递。
    • 类:可自定义类,通过__init__方法初始化实例。
  4. NumPy库
    • 数组生成:使用np.array()创建多维数组(如向量、矩阵、张量)。
    • 算术运算:支持元素级运算和广播功能(不同形状数组间的运算)。
    • 数组操作:访问元素、切片、条件筛选等。
    • 性能优势:底层通过C/C++实现,兼顾Python易用性和高性能。
  5. Matplotlib库
    • 图形绘制:使用pyplot模块绘制简单图形(如正弦曲线)。
    • 图像显示:使用imshow()显示图像,imread()读取图像。
  6. 运行方式
    • 解释器模式:交互式执行代码。
    • 脚本文件模式:将代码保存为.py文件后运行。
  7. 本章重点
    • Python是深度学习实现的理想工具,因其简洁性和强大的库支持。
    • 掌握NumPy和Matplotlib是后续实现深度学习的基础。
    • 通过实践(编写和运行代码)加深理解。
    关键点总结
    • Python 3.x + NumPy + Matplotlib 是本书的核心工具组合。
    • 从基础语法到数组运算、图形绘制,为后续神经网络和深度学习实现做准备。
    • 强调"动手实践",通过代码理解概念。

第二章总结:感知机

重点名词解释:

  • 感知机 :由Frank Rosenblatt在1957年提出的算法,接收多个输入信号并输出一个信号,是神经网络的起源。
  • 权重:控制输入信号重要性的参数,值越大对应信号越重要。
  • 偏置:调整神经元激活容易程度的参数,决定输出信号为1的阈值。
  • 激活函数:决定神经元是否激活的函数,感知机中使用阶跃函数。
  • 与门、与非门、或门:基本逻辑电路,感知机可通过调整权重和偏置实现。
  • 异或门:非线性可分问题,单层感知机无法表示,需通过多层感知机(叠加层)实现。
  • 多层感知机:叠加多层的感知机,可表示非线性空间,理论上能构建计算机。

核心概念:

感知机是一种简单的算法,接收多个输入信号,输出一个信号(0或1)。它是神经网络和深度学习的基础。

关键要点:

  1. 结构与原理:

感知机通过权重控制输入信号的重要性,偏置调整神经元激活的难易程度。

数学表达式:当加权总和超过阈值时输出1,否则输出0。

  1. 逻辑电路实现:

通过调整权重和偏置,感知机可以表示与门、与非门、或门等基本逻辑电路。

但单层感知机无法表示异或门(非线性问题)。

  1. 局限性:

单层感知机只能表示线性空间,无法处理非线性问题(如异或门)。

通过叠加多层感知机(多层结构)可以解决非线性问题,实现异或门。

  1. 多层感知机:

通过组合多个感知机(叠加层),可以表示复杂函数,理论上甚至能构建计算机。

多层感知机是神经网络的基础,能够进行非线性表示。

意义:

感知机是理解神经网络和深度学习的起点,其多层结构的思想为后续复杂模型奠定了基础。

相关推荐
前端不太难2 小时前
为什么 AI 游戏更适合鸿蒙?
人工智能·游戏·harmonyos
Cry丶2 小时前
我的创作纪念日
人工智能·我的创作纪念日
youcans_2 小时前
【HALCON 实战入门】2. HALCON 快速入门
图像处理·人工智能·计算机视觉·halcon
Shorasul2 小时前
安装宝塔面板提示端口被占用_查找并终止占用进程
jvm·数据库·python
蓉蓉的数码视界2 小时前
当人形机器人走进我们的生活
人工智能
紧固视界2 小时前
汽车紧固件有哪些?应用场景与技术要求全解析(2026上海紧固件展专题)
人工智能·汽车·上海紧固件展·上海紧固件专业展
xwz小王子2 小时前
CFC:基于双层世界模型的角色 - 流体耦合仿真
人工智能
2401_871696522 小时前
macOS 中使用 launchd 每分钟执行一次 PHP 脚本的完整配置指南
jvm·数据库·python
吕源林2 小时前
MongoDB副本集在网络闪断后如何快速恢复_重连机制与心跳超时(electionTimeoutMillis)
jvm·数据库·python