chapter1 神经网络的表述
1.模型表示
基础神经元: X0=1 偏置、参数
又可称为权重,激活函数sigmoid:
2.神经网络:
关于层:
第一层为输入层,最后一 层为输出层,中间一层为隐藏层。我们为每一层都有一个偏差单位。
关于节点:
——代表第𝑗 层的第 𝑖 个激活单元。
——从第 𝑗 层映射到第𝑗 + 1 层时的权重的矩阵,例如
代表从第一层映射到第二层的权重的矩阵。其尺寸为:行数=第 𝑗 + 1层的单元数,列数=第j层单元数+1。例如:上图所示的神经网络中
的尺寸为 3*4。
:在第j层的第n个激活单元到第j+1层的第m个神经元的偏执。如:
的偏置为:
3.向量化:向量化后x为一维向量,theta为二维矩阵,相乘过后先不要经过sigmoid函数才能激活。
4.直观理解
逻辑与:
逻辑或:
逻辑非:
构造同或逻辑神经网络(有点像数电):
第二部分:神经网络的学习:
符号:
m:训练样本个数
输入集:X(x)
输出:y
神经网络的层数:L
:该层神经元个数
1.代价函数:
2.反向传播算法(待补充)
用
来表示误差:L4误差:
L3误差:
,
是sigmoid的导数L2误差:
L1:因为是输入层,不存在误差
假设不做正则化,则偏导数:
算法:
3.反向传播(略)
4.展开参数:
5.梯度检验
问题:复杂模型进行梯度下降的时候,会存在一些不易察觉的错误,可能导致代价在减小但是结果并不是最优解。
解决方案:梯度数值检验,在代价函数上沿着切线方向选择两个非常近的点
,并计算这两个点导数的平均值用以估算梯度。
6.综合起来
第一层单元数为输入特征数,最后一层为训练结果类的数量
如果有多个隐藏层,应确保他们党员个数相同,一般单元越多越好。
1. 参数的随机初始化
2. 利用正向传播方法计算所有的ℎ𝜃(𝑥)
3. 编写计算代价函数 𝐽 的代码
4. 利用反向传播方法计算所有偏导数5. 利用数值检验方法检验这些偏导数
6. 使用优化算法来最小化代价函数
ps:应随机初始化,不能让初始值都为0,不然第二层所有激活值都一样,结果也都一样