[深度学习入门]基于Python的理论与实现[感知机、神经网络、误差反向传播法及相关技巧](一)

简介: 笔记

一、前言


 本文是本人在认真学习完[日]斋藤康毅所著《深度学习入门-基于Python的理论与实现》(因为封面上有条鱼,以下皆用《鱼书》代称之)后的学习心得与体会。至于为什么要把写成文字记录下来呢,一是为了我后续的学习方便快速地回忆之前的知识点,一是为了给同样在学习这本《鱼书》的朋友们提供一些帮助。


二、概述


 该书一共包含八个章节,暂且把它分成三大部分,分别涉及到:

 部分一:Python入门、感知机;

 部分二:神经网络、神经网络的学习、误差反向传播法、与学习相关的技巧(我觉得部分二是其精华所在)

 部分三:卷积神经网络、深度学习


三、正文部分


第一章:Python入门

 该章节主要介绍了Python基础内容,从Python的安装到Python基础的语法介绍,再到机器学习、深度学习中常用库:Numpy(用于数据的高效计算)、Matplotlib(用于图形的绘制)的介绍。

 可以选择安装Anaconda,它会自动安装一个基本的python,该python下已经装好了一大堆工具包,之后用到的超过一半的包不需要额外再去从pip上安装,之后也可以通过Anaconda下载一些第三方库。


第二章:感知机

 感知机是神经网络的起源算法。

 感知机接收多个输入信号(x1、x2 …),输出一个信号(只有1/0两种取值)。不同的输入信号对应不同的权重(w1、w2 …),当接收的信号总和(w1x1+w2x2 …)大于某个阈值(θ)时,才会输出1。

1.png2.png

用于调整输出信号为1的程度的阈值θ挪到公式左边,把(-θ)用b代替,通常叫做偏置

3.png

可以利用感知机构建逻辑电路:

 与门:仅在两个输入均为1时输出1,否则输出0。感知机构建条件很多,比如:(w1, w2, θ) = (0.5, 0.5, 0.7)。

 与非门:跟与门相反,仅在两个输入均为1时输出0,否则输出1。感知机构建条件很多,比如:(w1, w2, θ) = (-0.5, -0.5, -0.7)。

 或门:只要有一个输入信号是1,输出就为1。感知机构建条件很多,比如:(w1, w2, θ) = (1, 1, 0.7)。

 然而单层感知机无法实现异或门(仅当两个输入中的一方为1时,才会输出1)。

4.png

将上图转换为下图:

5.png

感知机的局限性就是它只能表示由一条直线分割的空间(线性空间)。y用○表示0,△表示1。感知机就是一条分割○△的直线。

6.png

要分开上图的○△,只能使用曲线分割出非线形空间。

 叠加感知机的层数可以来表示异或门。

7.png8.png

与门、与非门、或门均为单层感知机,而异或门是2层感知机。叠加了多层的感知机也称为多层感知机

  通过叠加层(加深层),感知机能进行更加灵活的表示(能够进行非线性的表示


第三章:神经网络

  神经网络和感知机最大的区别,其实就是激活函数不同。

9.png

上图就是一个简单的神经网络,最左侧一列为输入层,最右侧一列为输出层,中间一列为中间层(隐藏层)。

 几种激活函数:

 阶跃函数:随着输入函数不同,在阈值处发生急剧性的变化。感知机的激活函数就是它。

10.png

sigmoid函数:输出随着输入发生连续性的变化。

11.png

sigmoid函数的平滑性对神经网络的学习具有重要意义。

 相对于阶跃函数只能返回0或1,sigmoid函数可以返回0.731 、0.880等实数。

12.png

ReLU函数:在输入大于0时,直接输出该值;在输入小于等于0时,输出0。

13.png

14.png15.png

上述几种激活函数的代码实现(common/functions.py):

16.png17.png



相关文章
|
8月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
935 7
|
9月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
587 1
|
8月前
|
Cloud Native 算法 API
Python API接口实战指南:从入门到精通
🌟蒋星熠Jaxonic,技术宇宙的星际旅人。深耕API开发,以Python为舟,探索RESTful、GraphQL等接口奥秘。擅长requests、aiohttp实战,专注性能优化与架构设计,用代码连接万物,谱写极客诗篇。
1649 1
Python API接口实战指南:从入门到精通
|
8月前
|
存储 Java 调度
Python定时任务实战:APScheduler从入门到精通
APScheduler是Python强大的定时任务框架,通过触发器、执行器、任务存储和调度器四大组件,灵活实现各类周期性任务。支持内存、数据库、Redis等持久化存储,适用于Web集成、数据抓取、邮件发送等场景,解决传统sleep循环的诸多缺陷,助力构建稳定可靠的自动化系统。(238字)
1387 1
|
8月前
|
机器学习/深度学习 数据采集 人工智能
深度学习实战指南:从神经网络基础到模型优化的完整攻略
🌟 蒋星熠Jaxonic,AI探索者。深耕深度学习,从神经网络到Transformer,用代码践行智能革命。分享实战经验,助你构建CV、NLP模型,共赴二进制星辰大海。
|
9月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
1452 102
|
9月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
480 104
|
9月前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
373 103
|
9月前
|
机器学习/深度学习 人工智能 数据挖掘
Python:现代编程的首选语言
Python:现代编程的首选语言
398 82

推荐镜像

更多