搭建网站硬件要求,文化创意产品设计,在线查企业,wordpress 做笔记本章提要
深度学习可以在较少参数量的情况下得到比较低的loss#xff1a; h a l l a r g min h ∈ H L ( h , D a l l ) h^{all}arg \min_{h \in H}L(h,D_{all}) hallargminh∈HL(h,Dall)
引入
如何权衡模型的复杂程度 Tradeoff of Model Complexity
理论上#…本章提要
深度学习可以在较少参数量的情况下得到比较低的loss h a l l a r g min h ∈ H L ( h , D a l l ) h^{all}arg \min_{h \in H}L(h,D_{all}) hallargminh∈HL(h,Dall)
引入
如何权衡模型的复杂程度 Tradeoff of Model Complexity
理论上理想与现实接近的方法
增加训练样本数量N越大 D t r a i n D_{train} Dtrain越接近 D a l l D_{all} Dall P ( D t r a i n i s b a d ) P(D_{train} \ is \ bad) P(Dtrain is bad)的概率越小。减少模型复杂性|H|候选项的数目越小 P ( D t r a i n i s b a d ) P(D_{train} \ is \ bad) P(Dtrain is bad)的概率越小。
矛盾点
数据集中样本的数量N我们难以控制为了理想和现实比较接近选了一个较小的|H|。|H|太小能选择的h数量太少可能找不到使 L ( h , D a l l ) L(h,D_{all}) L(h,Dall)最小的h。(大海捞针针不在大海)
|H|较大可以找到使 L ( h , D a l l ) L(h,D_{all}) L(h,Dall)最小的h但是这样理想和现实的差距比较明显。 在H中找出一个h使得 L ( h , D a l l ) L(h,D_{all}) L(h,Dall)最小把这个h称为 h a l l h^{all} hall h a l l a r g min h ∈ H L ( h , D a l l ) h^{all}arg \min_{h \in H}L(h,D_{all}) hallargminh∈HL(h,Dall) 最优情况(H很小但又可以让L很低)如果可以找到一个H ① H is Small 很少的候选成员 ② 成员h都是精英可以让Loss很低 问题深度学习如何做到这件事的
Why Hidden Layer
核心 可以通过一个Hidden Layer制造出所有可能的function 隐藏层 Hidden Layer是人工神经网络中的中间层位于输入层和输出层之间。它的作用是对输入数据进行特征提取和变换为最终的输出层提供高层次特征。 隐藏层的主要任务是通过线性变换和激活函数来捕捉数据中的复杂模式和特征。 怎么找一个function(network)来逼近随便画的一条线 可以用Piecewise Linear Curves逼近任何连续曲线 先将这条线分段然后将每个分段的端点连接起来得到分段函数(图中绿色的线) 使用这个分段函数来逼近原来的黑线。
在这个案例中可能绿色的线不是很逼近黑色的线但可以直觉的想如果分段分的越细那么就绿色的线越接近黑色的线。 可以使用一个hidden layer的neural network轻易制造出绿色的线。使用一个常数项一堆阶梯型的function制造绿色的线。 观察发现绿色的线常数项一堆特定形状的蓝色function(这里的特定形状指的是图上蓝色function的形状) 任何的function都可以hidden layer的neural network制造出来怎么表示阶梯型的function(蓝色的线)呢 方法1使用Sigmoid Function逼近蓝色的线。
蓝色的线也称为hard Sigmoid Function
Sigmoid Function(S形函数): y c 1 1 e − ( b w x 1 ) c s i g m o i d ( b w x 1 ) y c\frac{1}{{1e^{-(bwx_1)}}} c\;sigmoid(bwx_1) yc1e−(bwx1)1csigmoid(bwx1) 2. 方法2使用ReLURectified Linear Unit线性整流单元(两个水平线有一个转折点)表示Hard Sigmoid每一个hard sigmoid可以使用两个线性整流单元Rectified Linear Unit(ReLU)叠加 总结
方式1使用sigmoid function
hidden layer里每一个neural都可以制造出一个阶梯型的function把不同的sigmoid function加起来再加上常数项就可以得到绿色的线任何的Piecewise Linear Curves去逼近任何function
neural network选择的activation function 是sigmoidhidden layer通过设定不同的$ w,b $制造出不同的sigmoid function 方式2使用ReLUhidden layer里每一个neural选择的激活函数是ReLU 问题引出深度学习效果更好
每一列Neural叫做一个hidden layer很多hidden layer被叫做Deep,这一套技术被叫做Deep Learning深度学习
有一层hidden layer的neural可以产生任何的function那为什么还要搞deep network(多层hidden layer)
直觉当Layer越叠越越深的时候参数量越多模型越复杂理想越来越好。如果有足够的训练资料那么理想和现实也不会差太多。 所以深度学习需要很多的资料 这里的直觉只是我们通常这么认为但不一定正确 问题当参数量一样(未知参数量一样)的时候FatShort的网络和ThinTall的网络谁的效果更好
实验表明ThinTall的网络效果更好 为什么深度学习效果更好
虽然一层hidden layer的neural可以产生任何的function但往往用一个deep的架构更有效率。
:::tips deep learing的核心产生同一个function使用deep的架构需要的参数量更少可能需要较少的训练资料就可以了(不容易overfitting)。
::: 误解大模型很多个layer增加了参数如果没有足够的data就会产生overfitting。 原因探究为什么deep
类别案例
当剪窗花时直接剪操作很复杂但如果折起来剪比较有效率。
这里将纸对折的事情可以类比为deep learning里hidden layer做的事情。 当把一个network deep的时候会发生什么
一层的neural
一层的network里包含了两个neural输入为x输出为 a 1 a_1 a1采用的激活函数为ReLU。
假设参数已知第一个neural的weight1bias-0.5第二个neural的weight-1bias0.5。所以进入neural的x分别为x-0.5与-x0.5。
第一个neural当输入x0.5时输出2*输入。当输入x0.5时输出为0。
第二个neural当输入x0.5时输出2*输入。当输入x0.5时输出为0。 结合起来就可以得到输入的x和输出 a 1 a_1 a1之间的关系。 第二层的neural
将 a 1 b i a s a_1bias a1bias这里的bias设置为-0.5。
第二层第一个neural输入为 a 1 − 0.5 a_1-0.5 a1−0.5放入一个ReLU
第二次第二个neural输入为 − a 1 0.5 -a_10.5 −a10.5放入一个ReLU
可以很容易知道 a 1 a_1 a1和 a 2 a_2 a2的关系和 x x x和 a 1 a_1 a1的关系一致。
x从0-0.5时 a 1 a_1 a1从1-0 a 2 a_2 a2从1-0-1
x从0.5-1时 a 1 a_1 a1从0-1 a 2 a_2 a2从1-0-1 这里从课堂上的讲法来说只有当neural的输出2才会有这个结果所以弹幕说的老师课后更正应该是正确的。两个ReLu的结果2再求和得到输出。 第三层的neural a 2 a_2 a2和 a 3 a_3 a3的关系 a 1 a_1 a1和 a 2 a_2 a2的关系 x x x和 a 1 a_1 a1的关系。、
使用同样的思路可以得到 x x x与 a 3 a_3 a3的关系 以此类推
使用deep network输入x与输出y的关系如果有k层layers每层有两个neural总共 2 k 2k 2k个neural那么输出的y有 2 k 2^k 2k个线段。 参数量小比较简单的模型
使用一个shallow network表示同样的关系每一个neural只能制造一个线段 2 k 2^k 2k个线段需要 2 k 2^k 2k个neural。 参数量大比较复杂的模型复杂的模型更容易overfitting所以需要更多的资料 如果目标的function是复杂(也不用太复杂)且有规律的(音像、语音)那么deep network优于shallow network