《深度学习入门--基于python的理论与实现》——斋藤康毅读书笔记

写在前面

终于研究生的事情告一段落,没想到研究生还能做自己喜欢的领域,导师人也很好。从今天开始再把基础完整的过一遍,沉下心来去学一门知识,做好一件事。

第二章:感知机

学习目的:感知机作为神经网络(深度学习)的起源算法,因此学习感知机的构造也就是学习通向神经网络和深度学习的一种重要思想。

2.1感知机是什么

感知机接收多个信号,输出一个信号。但是感知机的信号只有“流/不流”(1/0)两种。0对应“不传递信号”,1对“应传递信号”。
感知机
其中x1、x2作为两个输入信号,y为输出信号,w1,w2是权重(weight的首字母)。图中的○称为“神经元”或者“节点”。输入信号被送往神经元时,会分别乘以固定对应的权重(w1x1,w2x2).神经元会计算传送过来的信号总和w1x1+w2x2,只有当这个总和超过了某个界定的值时,才会输出1,也称为“神经元被激活”。这里称这个界定的值为“阈值”
在这里插入图片描述
感知机的多个输入信号都有自己的权重,这些权重发挥着控制各个信号的重要性的作用。权重越大,对应该权重的信号的重要程度就越大。

2.2简单的逻辑电路

2.2.1与门(and gate)

与门是有两个输入一个输出的门电路。与门仅在两个输入均为1时输出位1,其余都为0。
在这里插入图片描述
那么如何用感知机来表示这个与门?其实有无数种表示方法:(w1,w2,)=(0.5,0.5,0.7),(w1,w2,)=(0.5,0.5,0.8)或者(w1,w2,)=(1.0,1.0,1.0)

2.2.2与非门和或门

与非门就是颠倒了与门的输出结果 ,仅当x1,x2同时为1时,输出结果为0,其余都为1。
在这里插入图片描述
那么如何用感知机来表示这个与门?其实有无数种表示方法:只要实现把与门的参数值的符号取反就能实现与非门。

或门是“只要有一个输入信号是1,输出就为1”
在这里插入图片描述
tips:感知机是人工干预考虑了参数的值,而机器学习的课题就是将这个决定参数的工作让计算机自动进行。学习是确定合适的参数的过程,而人要做的是思考感知机的构造(模型),并把训练数据交给计算机。

2.3感知机的实现

2.3.1与门感知机的实现

与门感知机

def END(x1,x2):#定义一个感知机的函数
    w1,w2,theta=0.5,0.5,0.7
    tmp=x1*w1+x2*w2
    if tmp<=theta:
        return 0
    elif tmp>theta:
        return 1

2.3.2导入权重和偏置

在这里插入图片描述
虽然与上一个式子符号不同,但是表达的内容是完全一样的。其中b成为偏置(bias);w1,w2称为权重(weight)。感知机会计算输入信号和权重的乘积,然后再加上偏置,如果这个值大于0则输出1,如果小于0则输出0。

2.3.3使用权重和偏置的实现

使用权重和偏置实现与门

def AND(x1,x2):
    x=np.array([x1,x2])
    w=np.array([0.5,0.5])
    b=-0.7
    temp=np.sum(w*x)+b
    if temp<=0:
        return 0
    else:
        return 1

==其中w1,w2是控制输入信号重要性的参数,而偏置是调整神经元被激活的难易程度的参数。==比如b=-0.1,则只要输入信号的加权和大于-0.1,神经元就会被激活;如果b=20,则输入信号的加权和大于20,神经元才能被激活。

使用权重和偏置实现与非门

def NEND(x1,x2):
    x=np.array([x1,x2])
    w=np.array([-0.5,-0.5])#仅权重和偏置与AND不同!
    b=-0.7
    temp=np.sum(w*x)+b
    if temp<=0:
        return 0
    else:
        return 1
 

使用权重和偏置实现或门

def OR(x1,x2):
    x=np.array([x1,x2])
    w=np.array([0.5,0.5])
    b=-0.2
    temp=np.sum(w*x)+b
    if temp>=0:
        return 1
    else:
        return 0

与门、与非门、或门是具有相同构造的感知机,区别仅在于他们的权重和偏置参数不一样。因此仅通过设置不同的权重和参数的值就能实现不同的感知机。

2.4感知机的局限性

2.4.1异或门

异或门也被称为逻辑异或电路,仅当x1或x2中的一方为1时,才输出1,其余都为0。
在这里插入图片描述
其实用感知机是无法实现异或门的!
首先说一下或门,当(b,w1,w2)=(-0.5,1,1)时,满足或门的真值表。此时感知机可表示为
在这里插入图片描述
根据式子(2.3)可以得知,直线0.5+x1+x2=0把空间分为两个部分,其中一个输出为1,一个输出为0.
在这里插入图片描述
其中黄色部分为感知机输出为0的区域,图中三角形表示0,菱形表示1,要实现感知机,只需要把三角形和菱形分开就行。图中蓝色 的直线也将三角形和菱形分开了。
那么换成异或门来看看?
在这里插入图片描述
很显然,一条直线已经不能把三角形和菱形分开了!

2.4.2线性和非线性

上图中无法用一条直线将三角形和菱形分开,但如果把“直线”这条限制去掉就可以了。
感知机的局限性就在于他只能表示由一条直线分割的空间。弯曲的曲线就不能用感知机表示
在这里插入图片描述
如图,这样由曲线分割而成的空间称为非线性空间,由直线分割而成的空间称为线性空间。

2.5多层感知机

2.5.1已有门电路组合

单层感知机无法表示异或门,单层感知机无法分离线性空间。但是组合感知机(叠加层)可以实现异或门。
在这里插入图片描述
在这里插入图片描述
异或门的实现

def X1OR(x1,x2):
    s1=NAND(x1,x2)
    s2=OR(x1,x2)
    y=AND(s1,s2)
    return y

在这里插入图片描述
异或门是一种多层结构的神经网络,将最左边的一列称为第0层,中间的一列称为第1层。与门,或门是单层感知机,而异或门是2层感知机。叠加了多层的感知机称为多层感知机。

tips:上图所示的感知机由3层构成,但实质上拥有权重的层实质上只有2层(第0层和第1层,第1层和第2层之间),所以称之为2层感知机,不过有的文献认为其是三层构成的,称为“3层感知机”

单层感知机无法表示的东西,通过增加一层就可以解决,也就是说通过叠加层(加深层),感知机就能灵活的表示。

2.6从非门到计算机

已有研究表明:2层感知机(严格的说是激活函数使用了非线性的sigmoid函数的感知机)可以表示任意函数

2.7本章小结

1.感知机是具有输入和输出的算法。给定一个输入之后,并输出一个既定的值

2.感知机将权重和偏置设定为参数

3.使用感知机可以表示与门和或门等逻辑电路

4.异或门无法通过单层感知机来表示

5.使用2层感知机可以实现异或门

6.单层感知机只能表示线性空间,而多层感知机可以表示非线性空间

7.多层感知机在理论上可以表示计算机

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 深度学习是一种机器学习技术,可以通过模拟人类大脑的神经网络结构来实现智能决策和预测。Python是一种广泛使用的编程语言,也是深度学习中使用最多的语言之一。 如果你想入门深度学习并使用Python进行实现,可以参考一些经典的教材和资源,例如《Python深度学习》(Francois Chollet著)、《深度学习入门:基于Python理论实现》(斋藤康毅著)等。这些教材通常会介绍深度学习的基础理论Python的基本语法和深度学习框架(如TensorFlow、Keras等)的使用方法,同时也会提供一些实例代码和练习题帮助你快速上手。 此外,你也可以通过在线课程和MOOC平台学习深度学习Python编程。例如,Coursera、Udacity和edX等平台都提供了相关课程,可以根据自己的需求和兴趣进行选择。 ### 回答2: 深度学习入门:基于Python理论实现,是一本介绍深度学习的较为全面的教程。本书主要介绍了人工神经网络,包括基于反向传播算法的多层感知器、卷积神经网络、循环神经网络等基本模型以及它们的实现方法,同时还介绍了一些高级话题,如深度强化学习、生成模型等等。 在本书中,作者通过大量的编程实例来演示深度学习的应用。这些实例包括用深度学习算法进行手写数字识别、图像分类、语音识别和自然语言处理等任务。由于Python是目前流行的机器学习工具之一,因此这本书的实现过程都使用了Python编程语言。 具体来说,本书的主要内容包括人工神经网络基础知识、多层感知器模型、卷积神经网络模型、循环神经网络模型、生成模型、 强化学习、深度学习框架等方面,同时还包括很多深度学习的应用案例。作者采用了基础理论、数学公式、实例程序和实验数据等不同形式的阐释方法,使读者既能够理解深度学习的基本原理,也能够掌握它的实现方法。 此外,本书还提供了大量的参考文献和网上资源,使读者可以进一步深入学习和研究深度学习。在阅读本书的同时,读者可以根据作者提供的代码和数据,通过实际操作来进一步巩固理论知识和应用技能。 总之,深度学习入门:基于Python理论实现是一本非常实用的深度学习教材,可以帮助初学者更好地了解深度学习的基本概念和方法,提高实际应用的技能。 ### 回答3: 深度学习是一种人工智能技术,可用于训练计算机识别和理解大量数据。《深度学习入门:基于Python理论实现》这本书是入门者学习深度学习的必读之书。以下是本书的内容概述。 本书的第一部分介绍了深度学习的基础概念和理论,包括神经网络、反向传播算法、损失函数等。介绍了基本的深度学习模型,如前馈神经网络、卷积神经网络和循环神经网络。此外,还介绍了优化算法和正则化技术。 在第二部分中,作者使用Python编程语言实现了各种深度学习模型,使用的是许多广泛使用的深度学习框架,如TensorFlow和PyTorch。学习者获得从头开始编写深度学习算法的经验,同时实际应用中必备的PyTorch和TensorFlow经验。 在第三部分中,本书涵盖了几个应用案例,包括图像分类、语音识别和自然语言处理。幸运的是,这些案例通过代码演示展示,确保即使您没有实际应用经验也能操作成功。 总的来说,《深度学习入门:基于Python理论实现》是一本适合想要学习深度学习的初学者的绝佳书籍。其提供了深度学习的基本理论和核心技术,同时应用Python编程语言演示了实现技术。由此学习者可以建立深度学习专业的技术栈和能力,在人工智能领域有更广阔的发展空间。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值