1.二分类与符号表示
2.logistic回归模型(可以看做一个非常小的神经网络)
(左侧蓝色的表示方法更好)
预测值y的值介于0到1之间
(i)上标,表示输入的训练集的数据
3.损失函数
功能:当预测值y帽与测试集中的y越接近,损失函数越小
损失函数是衡量单个样本数据的训练情况,而下面的成本函数反映整个样本数据的表现。(成本函数时所有损失函数值求平均得到的)
成本函数衡量了参数w和b在训练集上的效果。
在训练logistic回归模型时,目的是要找到合适的W和B参数值,使得成本函数的值最小。
4.梯度下降算法(来学习出最优的w和b)
从(w,b)空间任意一点出发,沿着梯度最大的方向迭代,总能到达使成本函数J(w,b)最小的点。即梯度下降算法。
梯度下降算法的具体实现(单个样本数据):
固定b不变,每次用w-adw来代替上一次的w,dw为该点处成本函数J对w的导数,a为学习率(可理解为步长),多次迭代后可到达J值最小的位置处。
对多个样本数据应用梯度下降算法:
整体dw1等于各个数据的dw1求平均(for循环)
以上为一个梯度下降,还需要重复多次应用
注:当n很大时,即有dw1\dw2\dw3…dwn,则内部还可用for循环(但深度学习领域,n大,for循环低效→解决:向量化)
5.向量化来代替for循环!
对比python中for循环和向量化的计算速度:下图看出向量化方法快了300倍!
尽量避免使用for循环!用内置函数或者其他算法。
用内置函数代替for
其他向量值函数(调用numpy)
用向量化取代一个for
不用for:(正向传播)
总结:用向量化代替for循环的python代码实现
(多次使用梯度下降算法,还可再用for)
6.python中的广播
编程时关于向量的细节:
神经网络结构图:
W【1】为【4,3】矩阵:W【1】表示第一层网络中的w,4行表示该层网络包含4个函数(隐层中的单元数目),3表示每个数据有三个特征
前向传播与后向传播
随机初始化时,W不能全部初始为0,b可以
w一般初始化为很小的值,如0.01
多层神经网络(用for循环)
W与B的矩阵维度!
Z【1】为n[1]行,m列
m为训练集的大小
神经网络“小”:指隐层中的单元数
神经网络“深”:指隐层数目多
(一般用深层网络更好,若层数过少,则需要的单元数会特别多)
正向传播和反向传播过程:
多层的反向传播公式:
参数与超参数