<深度学习入门>读书笔记1

《深度学习入门》—— 斋藤康毅著

神经网络的结构

1. 符号说明

输入层与第一层隐含层之间的符号表示以及说明:
注意权重符号的表示,上标表示层,下标表示神经元编号
<深度学习入门>读书笔记1_第1张图片
通常网络带有偏置b,因此网络结构变成:
<深度学习入门>读书笔记1_第2张图片

2. 数学表示

图3-17的 a1 ( 1 ) ^{(1)} (1)通过加权信号和偏置的和,按如下方式进行计算。
在这里插入图片描述
如果写成矩阵的形式,则为:
在这里插入图片描述
其中,各矩阵可以写成:
<深度学习入门>读书笔记1_第3张图片
注意:输入X是一行,表示为一维矢量/数组,说明输入有2个;
   权重W是二维数组,每一列代表一个神经元“发出的”权重。因此行数为上一层节点数,列数为本层节点数,如例子中所示为2*3数组,则表示上层有2个节点,本层有3个神经元;
   偏置B是一维矢量/数组,个数与W的列数相等,也就是本层有3个神经元,则偏置个数也为3。
   A表示本层的输出(非最终输出,还需要经过激活函数才是真正的输出),也是下一层的输入,相当于下一层的X,所以形式与X一样,为一维矢量/数组,个数为本层神经元个数,本例中为3。

利用python编程,代码如下:

X = np.array([1.0, 0.5])
W1 = np.array([[0.1, 0.3, 0.5], [0.2, 0.4, 0.6]])
B1 = np.array([0.1, 0.2, 0.3])

print(X.shape) # (2,)
print(W1.shape) # (2, 3)
print(B1.shape) # (3,)

A1 = np.dot(X, W1) + B1

3. 激活函数

上述表示并不完整,神经元的真正输出并不是上层的简单加权和,而有可能是非线性的,需要经过激活函数。完整的神经元网络图如下:
<深度学习入门>读书笔记1_第4张图片
图中由a到z中间经过激活函数h(),z为神经元最终的输出。
激活函数有多种,sigmoid函数,阶跃函数,ReLU函数,等

3.1 sigmoid函数

<深度学习入门>读书笔记1_第5张图片

3.2 阶跃函数

x>0, 输出即为1,反之为0

3.3 ReLU函数,rectified linear unit

在这里插入图片描述
图形表示:
<深度学习入门>读书笔记1_第6张图片

4. 输出层函数

恒等函数和softmax函数

4.1 恒等函数

<深度学习入门>读书笔记1_第7张图片
<深度学习入门>读书笔记1_第8张图片

4.2 softmax函数


在这里插入图片描述
<深度学习入门>读书笔记1_第9张图片
softmax函数在使用时需要特别注意“溢出”问题,因此可以采用改进的表达式:
<深度学习入门>读书笔记1_第10张图片
C’一般选择输入信号中最大的值。
在这里插入图片描述

你可能感兴趣的:(深度学习)