1.神经网络基础:
1.1深度学习和神经网络之间的关系:神经网络有很多层,当层数比较多(也就是神经网络比较深)的时候,就变成了深度学习。
1.2神经网络大致原理:通过一层层的神经元(每个神经元计算都是近似线性计算,y = w * x + b),一段段线性,来拟合一些映射,从而根据特征X预测出y。有输入层、隐藏层和输出层。
1.3深度学习的优势:以前机器学习模型性能,随着数据量增大会提高,但是很快会到达瓶颈。深度学习通过使用深层的神经网络延迟瓶颈的到来。越深的神经网络,瓶颈出现可能越晚。
1.4logistic回归预测y值为0或1,是二分分类问题。y = w * x + b值可能不介于0,1,可以用sigmod函数将其值限定在0,1间。
2.学习过程:
2.1正向传播:根据输入的特征,各个神经元计算y = w * x + b,再对其调用激活函数,得到最后的结果。第n-1层的输出作为第n-2层的输入,如:第1层输出a1 * k矩阵(k往往是样本数量,传播过程一直作为列的总数而不变),标记为A1,第二层有a2个神经元,则第二层的w矩阵a1 * a2,其转置后与A1相乘,得到a2 * K的矩阵。
2.2损失函数和成本函数:
2.2.1损失函数:单个样本正向传播得到的结果与样本标签之间的差异。损失函数最好只有一个极值,防止出现局部最优(而非全局最优)的情况。
2.2.2成本函数:所有样本(一个batch里的)损失函数的平均值。
2.3反向传播:传播目的是根据成本函数(代表预测值与真实值的差异)调整各层参数w和b。所以反向传播w和b要减去学习率和成本函数对w,b的微分。这样越来越靠近样本与标签的映射。
3.激活函数:可以设置在隐藏层和输出层,作用于(w * x + b)。
3.1 sigmod函数:作用后的值处于(0,1),但是当y值很大或很小时,sigmod函数值很接近,斜率很小,梯度下降很慢。ReLu函数(修正函数,值非负)可以弥补。
3.2 tanh函数:值在(-1,1),形状如sigmod函数。和sigmod函数都有数据中心化的效果,使其均值在0附近(sigmod函数均值在0.5附近)
3.3 ReLu函数:z = max(0,y)缺点是y<0时斜率为0,可以用:
3.4带泄露的ReLu函数:z = max(0.01z,z)
3.5 softmax激活函数:用于输出层,输出层输出的不是一个值,而是n * 1向量,关系到结果属于n个分类的概率,其概率计算如下:将向量里n个值分别做e的指数,得到的幂所占比例即为概率。