再次深入学习深度学习|花书笔记1
我已经两年没有碰过深度学习了,写此文记录学习过程,加深理解。
深度学习
- 再次深入学习深度学习|花书笔记1
- 信息论
- 第四节 数值计算中的问题
- 上溢出 和 下溢出
- 病态条件
- 优化法
再次深入学习深度学习|花书笔记1
这本书说的太繁琐了,如果是想要基于这本书入门深度学习,大可不必。但是可以用来回炉再造,加深理解。
信息论
研究一个信号中信息包含多少的量化,在实际工作中,可以用到信息熵这种东西,约束生成的东西是精简的,合理的。
- 一个基本想法:发生的概率P(x)越低,说明信息量越大。发生概率是1,那么包含的信息量就是0了。
- 信息量的单位是奈特(nats).就是一个传递了1/e的发生概率的事件的信息。
- 当对数的底数是2,信息的单位就是bit比特。
I(x)=-log(P(x))
1 nats= -log(1/e)
1 bit= -log(1/2)
- 交叉熵,p,q是真实分布和非真实分布
- 归一化 保证所有元素的和为1.用在预处理阶段,不知道这种说法对不对,就是输入数据符合标准正态分布,也就是收到0-1之间再做正态分布。这可以应用在图像,声音,文本,具体的似乎是在数据集内进行操作。
第四节 数值计算中的问题
上溢出 和 下溢出
主要来自于计算机数字表示中的位数限制,接近0时候导致数值被舍为0;过大时导致近似为∞。
使用softmax激活函数。
def softmax(x):e_x = np.exp(x - np.max(x))return e_x / np.sum(e_x)
病态条件
当我们说一个数学名词是病态时,这个词意味着改动很小时扰动很大。包括病态方程组。
这可能对数据的精度有一定要求。
即使我们计算正确, 病态条件的矩阵也会放大预先存在的误差。
三点
- 梯度消失
- 梯度爆炸
- 梯度过缓
优化法
目的:最大化或最小化Loss函数/损失函数/代价函数/误差函数
方法:梯度下降法
f(x+t)近似f(x)+t*f'(x)
当t足够小?似乎是有这个条件的
最终到达如图所示的某个极值点,当然很可能是局部最优解。
基本的两个点是
- 如果有多个参数就求偏导
- 每次优化的步长随着训练时间的延长而缩小
这是在连续函数中的梯度优化算法,在离散函数中有叫爬山算法的东西,没有了解过。
由于梯度下降法的步长t并非数学定义下的无穷小量,梯度下降方向实际上并非一个严格的最优方向。
可以采用二阶导数 Hessian 矩阵/牛顿法优化梯度下降算法。