网站功能模块有哪些,辽宁建设工程招标信息网,网站更新后 为什么不显示,济南广告设计公司前十名笔记为自我总结整理的学习笔记#xff0c;若有错误欢迎指出哟~ 【吴恩达课程笔记专栏】 【深度学习】吴恩达课程笔记(一)——深度学习概论、神经网络基础 【深度学习】吴恩达课程笔记(二)——浅层神经网络、深层神经网络 【深度学习】吴恩达课程笔记(三)——参数VS超参数、深度… 笔记为自我总结整理的学习笔记若有错误欢迎指出哟~ 【吴恩达课程笔记专栏】 【深度学习】吴恩达课程笔记(一)——深度学习概论、神经网络基础 【深度学习】吴恩达课程笔记(二)——浅层神经网络、深层神经网络 【深度学习】吴恩达课程笔记(三)——参数VS超参数、深度学习的实践层面 【深度学习】吴恩达课程笔记(四)——优化算法 吴恩达课程笔记——超参数调试、batch norm、Softmax 回归 九、超参数调试1.调试处理超参数优先级 2.超参数数值搭配选择方法3.为超参数选择合适的范围标尺4.超参数调整实践Pandas VS Caviar熊猫法鱼子酱法 十、batch norm1.归一化网络的激活函数2.把batch norm拟合进神经网络使用的位置batch norm拟合进神经网络batch norm与minibatch一起使用[l]参数没有意义 3.batch norm为什么好用问题的提出总结 4.测试时的batch norm 十一、Softmax 回归1.Softmax 回归简介简介计算方法softmax回归举例 2.训练一个 Softmax 分类器Softmax 名称来源怎样训练带有 Softmax 输出层的神经网络反向传播步骤或者梯度下降法 九、超参数调试
1.调试处理
超参数优先级 红色第一黄色第二紫色第三没框的基本不调
2.超参数数值搭配选择方法 超参数少的时候可以像左面一样均匀取点研究效果。
超参数多的时候可以选择随机取点研究效果。如果此时发现某点及其附近的效果比其它部分好那么就在这附近的区域较为密集地再多取一些点。如此研究直到得出足够满意的超参数搭配。如下图
3.为超参数选择合适的范围标尺
举例说明 神经网络某层的神经元个数可以取50-100间均匀随机值 神经网络层数可以取2-4间均匀随机值 学习率可以取0.0001-1间不均匀随机值 α 1 0 − 4 ∗ n p . r a n d o n . r a n d ( ) 例子中的范围为 [ − 4 , 0 ] \alpha10^{-4*np.randon.rand()}\\ 例子中的范围为[-4,0] α10−4∗np.randon.rand()例子中的范围为[−4,0] 标尺长上面这样。这样可以给不同的数量级分配相同的搜索资源。
指数平均的 可以取0.9-0.999间不均匀随机值。
因为指数平均计算的是1/(1- )个数的平均值这个式子在beta接近1的时候对beta更加敏感因此应该令beta越接近1时给相应的beta范围分配更多的搜索权重。 如图所示对1- 施以类似上面的学习率的计算即可达到效果。
实际上即使不使用这类换标尺的方法只要有足够数据或者能恰当的使用逐渐缩小超参数组合范围的方法也可以较快的算出超参数的恰当值。
4.超参数调整实践Pandas VS Caviar
熊猫法
同时运行一个模型观察其性能随时间变化手动调整超参数
鱼子酱法
同时运行多个模型不进行人工干预。全部训练完毕后选出训练结果较好的模型。
十、batch norm
1.归一化网络的激活函数 含义将z进行归一化。即将z的分布调整到平均值为0值分布调整到0-1之间方差为1。
目的使得神经网络的参数计算更有效率
注意在训练隐藏层的时候有时候为了发挥sigmoid、tanh等的效果你不希望数据的方差变为1那么你就没必要对z归一化 z ( 1 ) , . . . , z ( m ) —— z [ l ] ( i ) , i 为 1 到 m 的某个隐藏层 i μ 1 m ∑ i m z ( i ) σ n o r m 2 1 m ∑ i m ( z i − μ ) 2 z n o r m ( i ) z ( i ) − μ σ 2 ϵ z^{(1)},...,z^{(m)} ——z^{[l](i)},i为1到m的某个隐藏层i\\ \mu\frac{1}{m}\sum_{i}^{m}z^{(i)} \\ \sigma_{norm}^{2}\frac{1}{m}\sum_{i}^{m}(z_i-\mu)^{2} \\ z_{norm}^{(i)}\frac{z^{(i)}-\mu}{\sqrt{\sigma^{2}\epsilon}}\\ z(1),...,z(m)——z[l](i),i为1到m的某个隐藏层iμm1i∑mz(i)σnorm2m1i∑m(zi−μ)2znorm(i)σ2ϵ z(i)−μ 但是有时候我们不希望z分布在0-1、平均值为0也许分布在别的地方会更有意义。 z ˜ ( i ) γ z n o r m ( i ) β 如果 γ β 如下 : γ σ 2 ϵ β μ 那么 z ˜ ( i ) z ( i ) \~z^{(i)}\gamma z_{norm}^{(i)}\beta\\ 如果\gamma \beta如下: \\ \gamma\sqrt{\sigma^{2}\epsilon} \\ \beta\mu \\ 那么\~z^{(i)}z^{(i)} z˜(i)γznorm(i)β如果γβ如下:γσ2ϵ βμ那么z˜(i)z(i)
2.把batch norm拟合进神经网络
使用的位置
前向传播中在计算出z后使用激活函数前 每个单元负责计算两件事。第一它先计算 然后应用其到激活函数中再计算 。每个圆圈代表着两步的计算过程。
batch norm拟合进神经网络 没有应用 Batch 归一化: 把输入拟合到第一隐藏层然后首先应用 [1] 和 [1] 计算 [1]。 接着把 [1] 拟合到激活函数以计算 [1]。 应用 Batch 归一化Batch 归一化是发生在计算和之间的。 把输入拟合到第一隐藏层然后首先应用 [1] 和 [1] 计算 [1]。 第一层将 [1] 值进行 Batch 归一化简称 BN此过程将由 [1] 和 [1] 两参数控制这一操作会给你一个新的规范化的 [1] 值̃[1] 然后将其输入激活函数中得到 [1]即 [1] [1] (̃[l]。 第二层应用 [1] 值来计算 [2]此过程是由 [2] 和 [2] 控制的。与你在第一层所做的类似通过 [2] 和 [2] 将 [2] 进行 Batch 归一化得到 ̃[2]再通过激活函数计算出 [2]。 注意这里的这些 [1] [2]等等和超参数没有任何关系。 [1] [2]等等是算法的新参数 接下来你可以使用想用的任何一种优化算法比如使用梯度下降法来执行它。更新参数 为 [l] [l] - [l]。你也可以使用 Adam 或 RMSprop 或 Momentum以更新参数 和 并不是只应用梯度下降法。 后者是用于 Momentum、 Adam、 RMSprop 或计算各个指数的加权平均值。
batch norm与minibatch一起使用 第一个 mini-batch{1}
应用参数[1]和[1] 计算[1]Batch 归一化减去均值除以标准差由[1]和[1]得到̃[1]再应用激活函数得到[1]应用参数[2]和[2]计算[2]然后继续下去
继续第二个 mini-batch{2}
继续第三个 mini-batch{3}
[l]参数没有意义 在使用 Batch 归一化其实你可以消除参数 [l]或者设置为 0参数变成[l] [l][[l-1]
然后对[l]进行归一化̃[l] [l]z[l] [l]最后会用参数[l]以便决定̃[l]的取值。
**总结**Batch 归一化z[l]所有的偏移最终都由归一化确定了 [l]参数没有意义所以由控制参数[l]代替来影响转移或偏置条件。
3.batch norm为什么好用
问题的提出 如上图如果你的训练集是左边的那些黑猫那么你的训练样本分布可以由左侧坐标系图代替。如果你的训练集是右边那些花猫那么你的样本分布可由右侧坐标图代替。
假设你分别用两组训练集训练两个模型那么由于样本分布不同最后得到的“找猫函数”也会不同。
现在你希望有一个模型能同时识别黑猫和不同颜色的猫但是由上可知如果你同时用黑猫和花猫的训练集进行训练就容易让神经元感到“迷惑”
总结 Batch 归一化从神经网络后层角度而言前层不会左右移动的那么多因为被均值和方差所限制使后层的学习工作变得更容易些。Batch 归一化有轻微正则化效果
4.测试时的batch norm μ 1 m ∑ i m z ( i ) σ n o r m 2 1 m ∑ i m ( z i − μ ) 2 z n o r m ( i ) z ( i ) − μ σ 2 ϵ z ˜ ( i ) γ z n o r m ( i ) β \mu\frac{1}{m}\sum_{i}^{m}z^{(i)} \\ \sigma_{norm}^{2}\frac{1}{m}\sum_{i}^{m}(z_i-\mu)^{2} \\ z_{norm}^{(i)}\frac{z^{(i)}-\mu}{\sqrt{\sigma^{2}\epsilon}}\\ \~z^{(i)}\gamma z_{norm}^{(i)}\beta\\ μm1i∑mz(i)σnorm2m1i∑m(zi−μ)2znorm(i)σ2ϵ z(i)−μz˜(i)γznorm(i)β
测试时我们可能不使用minibatch而是一个一个的过训练样本。这个时候训练集的平均数 和方差 2 怎么获得呢 使用指数加权平均计算 使用流动平均来粗略估算 使用深度学习框架自默认的方式估算
十一、Softmax 回归
1.Softmax 回归简介
简介
softmax回归是logistic回归的一般形式它做的不只是二分分类也可以做多分分类 区分四个种类class0-其他、1-猫、2-狗、3-鸡
定义C为种类数这里C4可以看到输出层有四个神经元他们分别输出结果是0、1、2、3的概率且总和为1 输出结果是一个4*1的向量。
计算方法 左侧是softmax输出层激活函数计算方法 z [ l ] W [ l ] a [ l − 1 ] b [ l ] S o f t m a x 激活函数 : a [ l ] g [ l ] ( z [ l ] ) t e z [ l ] a [ l ] e z [ l ] ∑ j 1 4 t i a i [ l ] t i ∑ j 1 4 t i z^{[l]} W^{[l]}a^{[l-1]} b^{[l]} \\ Softmax 激活函数: a^{[l]}g^{[l]}(z^{[l]})\\ te^{z^{[l]}} \\ a^{[l]}\frac{e^{z^{[l]}}}{\sum_{j1}^{4}t_i} \\ a_i^{[l]}\frac{t_i}{\sum_{j1}^{4}t_i} \\ z[l]W[l]a[l−1]b[l]Softmax激活函数:a[l]g[l](z[l])tez[l]a[l]∑j14tiez[l]ai[l]∑j14titi 右侧是一个例子
softmax回归举例 2.训练一个 Softmax 分类器
Softmax 名称来源
hardmax 会把向量变成这个向量[1 0 0 0] 与hardmax 对比Softmax所做的从到概率的映射更为温和
怎样训练带有 Softmax 输出层的神经网络 举例单个样本为猫这个样本中神经网络的表现不佳这实际上是一只猫但却只分配到 20%是猫的概率所以在本例中表现不佳。
用什么损失函数来训练这个神经网络?
损失函数 L ( y ^ , y ) − ∑ j 1 C y j l o g y ^ j y 1 y 3 y 4 0 y 2 1 则 L ( y ^ , y ) − l o g y ^ 2 L ( y ^ , y ) 越小越好则 y ^ 2 需要尽量大 L(ŷ,y)-\sum_{j1}^{C}y_jlogŷ_j \\ y_1 y_3 y_4 0y_2 1则L(ŷ,y)-logŷ_2 \\ L(ŷ,y)越小越好则ŷ_2需要尽量大 L(y^,y)−j1∑Cyjlogy^jy1y3y40y21则L(y^,y)−logy^2L(y^,y)越小越好则y^2需要尽量大
反向传播步骤或者梯度下降法
公式 d z [ l ] y ^ − y dz^{[l]}ŷ-y dz[l]y^−y