动手学深度学习 图像分类实例-多层感知机(一) 核心概念与激活函数的作用
动手学深度学习 多层感知机系列:
- 动手学深度学习 图像分类实例-多层感知机(一) 核心概念与激活函数的作用
- 动手学深度学习 图像分类实例-多层感知机(二) 多层感知机的从零开始实现
- 动手学深度学习 图像分类实例-多层感知机(三) 多层感知机的简洁实现
拜年期间 没有电脑 就在亲戚家无聊的时候随手翻了翻《DIVE INTO DEEP LEARNING》
复习多层感知机的时候发现这本书讲的蛮好的, 弥补了之前以为自己懂了的一些漏洞, 于是便决定回家记录下来。
并根据书中的实例 巩固一下 多层感知机系列文章的链接已
放至文章开头
前言
本文介绍多层感知机的基本概念和我的理解,
尽量以通俗易懂的方式介绍
以下是本篇文章正文内容
正文
之前写了一个softmax做图像分类系列的文章,其主要使用的是单层神经网络
然而深度学习主要关注的是多层模型, 所以书本以多层感知机为例, 介绍多层神经网络的概念
先看看单层神经网络和多层神经网络的对比
单层神经网络
其公式如下
写成向量的形式
o
(
i
)
=
x
(
i
)
W
+
b
o^{(i)}=x^{(i)}W+b
o(i)=x(i)W+b
多层神经网络
这里以两层为例
比起单层神经网络,它多包含了一层隐藏层,该层中有5个隐藏单元
假设隐藏层的输出为
H
H
H
则该多层感知机的公式为
H
=
X
W
h
+
b
h
H=XW_h+b_h
H=XWh+bh
O
=
H
W
o
+
b
o
O=HW_o+b_o
O=HWo+bo
也就是将隐藏层的输入直接作为输出层的输出, 这样如果联立上面的式子
虽然加入了隐藏层,但是却依然等易于一个单层神经网络 而且不难发现,无论加多少个隐藏层,它的本质还是和单层神经网络等价。
激活函数的重要性
对于上述问题, 解决办法就是对每层的输出增加一个非线性变化, 也就是使用我们常说的激活函数
对于各种激活函数的介绍可以看我这篇文章
多层感知机
因此多层感知机就是含有至少一个隐藏层的由全连接层组成的神经网络,且每个隐藏层的输出通过激活函数进行变换。
多层感知机的层数和各隐藏层中隐藏单元个数都是超参数。以单隐藏层为例并沿用本文之前定义的符号,多层感知机按以下方式计算输出
其中φ
表示激活函数。这样一来,就不会产生之前的问题了,这也突出了激活函数的重要。
- 在分类问题中,我们可以对输出
O
做softmax运算,并使用softmax回归中的交叉熵损失函数。 - 在回归问题中,我们将输出层的输出个数设为1,并将输出
O
直接提供给线性回归中使用的平方损失函数。
引用资料来源
本文内容来自吴振宇博士的Github项目
对中文版《动手学深度学习》中的代码进行整理,并用Pytorch实现
【深度学习】李沐《动手学深度学习》的PyTorch实现已完成