深度学习中的一些基础知识

1.Epoch和
1.1 Epoch
搜索百度后会发现在模型中引入解释变量,有一个重要的翻译:”纪元” 。什么是纪元呢?
在古代,通常一位皇帝登基到落幕称为一个年号纪元,中途改政则更换年号重新计算纪元;在现代社会,通常一个世纪,100年 , 称为一个纪元 。
在深度学习中没有100年 , 没有皇帝的概念,但深度学习中有数据集的概念 。
抽象一下,100年看成一个庞大的数据集,你的大脑相当于一个模型 。我们从2000年开始,到2100结束为一个纪元,这期间所经历的事 。人等等 , 都要完整输入到你的大脑(模型) , 到最后你躺着椅子上会给出一个答案,我有没有虚度这一生 。
即在深度学习中Epoch:所有训练样本都已经输入到模型中 , 称为一个 Epoch 。比如你有100W条,则代表100W都输入到了模型中
1.2
搜索百度我们会理解,中文为:批大小
还记得上面Epoch举的例子吗?如果不分批 , 直接将这100年所有的信息输入到一个人的大脑(模型),模型会训练缓慢 , 加重CPU或者GPU的负担,也无法获得一个好的结果 。所以我们会分批输入数据 。比如==100等等 。
同时要注意: 和of是不同的
比如1W条数据,==100的情况下,就会划分出100个即 of
1.3
同样搜索百度会发现,有一个重要的翻译:”迭代” 。什么是迭代呢?
这里要区分清楚,迭代和递归的含义 。

递归:指的是在函数定义中使用函数自身的方法 。(A调用A)
迭代:重复反馈过程的活动,每一次迭代的结果会作为下一次迭代的初始值 。(A重复调用B)
那在深度学习中充当什么角色呢?
举个例子:1W条数据,分成100个,那么就是100 。运行所有的数据进行训练,完成1个epoch,需要进行100次 。
就好比这篇文章很长,看完这篇文章称为一个Epoch,其中作者分为了4个版块,即我需要分步看4次(),每块2500字为大小 。经过多伦Epoch阅读,最终给予一个正确的评价 。
2.反向传播
神经网络的推理所进行的处理相当于神经网络的正向传播 。顾名思义 ,  正向传播是从输入层到输出层的传播 。此时,构成神经网络的各层从输入向输出方向按顺序传播处理结果 。之后我们会进行神经网络的学习,那时会按与正向传播相反的顺序传播数据(梯度),所以称为反向传播
2.1 链式法则
链式法则是复合函数的求导法则在模型中引入解释变量,其中复合函数是由多个函数构成的函数 。理解误差反向传播法的关键是链式法则
y = f(x) 和 z = g(y) 这两个函 数 。如 z = g(f(x)) 所示,最终的输出 z 由两个函数计算而来 。此时,z 关 于 x 的导数可以按下式求得:
链式法则的重要之处在于,无论我们要处理的函数有多复杂(无论复合了多少个函数),都可以根据它们各自的导数来求复合函数的导数 。也就是说,只要能够计算各个函数的局部的导数 , 就能基于它们的积计算最终的整体的导数 。
2.2 正向传播
2.3 反向传播
反向传播用蓝色的粗箭头表示,在箭头的下方标注传 播的值 。此时,传播的值是指最终的输出 L 关于各个变量的导数 。
关于 z 的导数是 ?L /?z,关于 x 和 y 的导数分别是 ?L /?x 和 ?L /?y
利用链式法则,反向传播中流动 的导数的值是根据从上游(输出侧)传来的导数和各个运算节点的局部导数 之积求得的 。因此 , 在上面的例子中 ,  ?L/?x = ?L/?z?z/?x , ?L/?y = ?L/?z?z/?y
2.4 加法节点
z = x + y 这个基于加法节点的运算 。此时,分别解析性地求得 ?z/?x = 1, ?z/?y = 1 。所以
加法节点将上游传来的值乘以 1,再将该梯度向下游传播 。也就是说,只是原样地将从上游传来的梯度传播出去
2.5 乘法节点
乘法节点是 z = x × y 这样的计算 。此时,导数可以分别求出 , 即 ?z/?x = y 和 ?z/?y = x 。因此,乘法节点的反向传播会将“上游 传来的梯度”乘以“将正向传播时的输入替换后的值” 。
2.6 分支节点
严格来说 , 分支节点并没有节点,只有两根分开的线 。此时,相同的值 被复制并分叉 。因此,分支节点也称为复制节点 。反向传播是上游传来的梯度之和 。
后续更新RNN、LSTM、知识
【深度学习中的一些基础知识】本文到此结束 , 希望对大家有所帮助 。