[深度学习入门]基于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



相关文章
|
11天前
|
分布式计算 大数据 数据处理
Python入门与大数据处理环境配置指南
**Python入门与大数据处理环境配置** Python作为高级编程语言,因其简洁语法和丰富库资源,成为数据处理、AI和大数据分析首选。本文旨在介绍Python基础和环境配置,特别是针对大数据处理的环境搭建。首先,讲解Python语言基础,包括语言概述、基本语法(变量、数据类型、控制流语句、函数和模块)。接着,讨论如何安装Python环境,以及安装NumPy、Pandas等大数据处理库。对于大数据处理,可以选择本地环境或搭建分布式环境,如Hadoop和Spark,并提供相关API示例。最后,列出环境配置中可能遇到的问题及解决方案,如版本不兼容、库安装失败等,并提供参考资料以供深入学习。
28 3
|
15天前
|
人工智能 IDE 开发工具
【Python学习篇】Python基础入门学习——你好Python(一)
【Python学习篇】Python基础入门学习——你好Python(一)
19 1
|
2天前
|
网络协议 安全 Java
Java网络编程入门涉及TCP/IP协议理解与Socket通信。
【6月更文挑战第21天】Java网络编程入门涉及TCP/IP协议理解与Socket通信。TCP/IP协议包括应用层、传输层、网络层和数据链路层。使用Java的`ServerSocket`和`Socket`类,服务器监听端口,接受客户端连接,而客户端连接指定服务器并交换数据。基础示例展示如何创建服务器和发送消息。进阶可涉及多线程、NIO和安全传输。学习这些基础知识能助你构建网络应用。
10 1
|
9天前
|
IDE 开发工具 Python
Python初学者如何入门?
【6月更文挑战第14天】Python初学者如何入门?
17 5
|
11天前
|
开发者 Python
入门实战丨Python小游戏经典案例
入门实战丨Python小游戏经典案例
19 4
|
11天前
|
机器学习/深度学习 PyTorch TensorFlow
|
9天前
|
开发者 Python
GitHub飙升!京东认证的“Python编程入门三剑客”究竟好在哪?
Python凭借着简单易学、功能强大,已经跃居TIOB编程语言榜首,并且已经开始了它的霸榜之旅。如何选择一套适合自己的Python学习教程,是每个Python爱好者面临的首要问题。
|
10天前
|
机器学习/深度学习 算法 数据挖掘
机器学习新手也能飞:Python+Scikit-learn让你轻松入门!
【6月更文挑战第12天】Python和Scikit-learn降低了机器学习的门槛,让初学者也能轻松涉足。Python以其易用性及丰富的库支持成为机器学习首选语言,而Scikit-learn作为开源机器学习库,提供多种算法和工具。通过简单示例展示了如何使用两者处理鸢尾花数据集进行分类,体现其在实践中的高效便捷。掌握这两者,能助你在机器学习领域不断探索和创新。
|
16天前
|
数据可视化 API Python
豆瓣评分9.4!堪称经典的Python入门圣经,你还没看过吗?
最理想的新人入门书应该满足两个特点:第一就是内容通俗易懂;第二就是要有实战,能够让读者在学完之后知道具体怎么用。 今天给小伙伴们分享的这份Python入门手册,在为初学者构建完整的Python语言知识体系的同时,面向实际应用情境编写代码样例,而且许多样例还是后续实践项目部分的伏笔。实践项目部分的选题经过精心设计,生动详尽又面面俱到。
|
15天前
|
存储 Python
【Python学习篇】Python基础入门学习——Python基础语法(二)
【Python学习篇】Python基础入门学习——Python基础语法(二)
25 1

热门文章

最新文章