Deep learning - Neural Network & Deep learning .02

2 Basics of Neural Network programming
2.1 Binary classification

n(x)表示输出的特征向量维度,有时也简写成n

单个样本由一对(x,y)表示
组织一个输入矩阵X按列排列,每一列是一条数据x,n(x)表示的是特征向量的维度,x(m)表示的是训练集的个数
同样的,Y也要组织成按列排列的矩阵,Y是一个1xm大小的矩阵
经过实践发现按列排列的矩阵对于DL的效果更好
有用的惯例:混合不同的训练样本数据 - 在这里数据是指单个x或y,或者之后其他的数目数据,混合不同训练样本的数据,并将他们按列排列,像我们之前对x和y做的那样
2.2 Logistic Regression model

y^代表的是真实标签y的估计,y^是当给定输入特征值x时,预测标签y为1的概率,即 y^=P(y=1|x)
sigmoid函数的作用就是把线性函数的值压缩在0~1之间,z轴就是线性函数(w^T*x+b)

参数w、b通常分开看待,这里b对应一个偏置量
有时,会遇到函数中定义了一个额外的特征x0,并让x0等于1,这时x∈R^n(x)+1,y^=σ(θ^Tx),θ集合包含θ(0)~θ(n(x)),θ(0)代替了参数b,θ(1~n(x))代替了参数w;这种升维是为了省去偏差参数b
而事实上,实现神经网络时,把参数b和w当作相互独立的参数会更简单
2.3 Logistic Regression cost function

Loss function 损失函数 = Error function 误差函数 表示为 L(y^,y)
使用x^(i)表示具体的参数实例
Squared error 平方误差 会产生非凸函数,使得后续的梯度下降可能取到局部最优解,得不到全局最优解
Binary cross entropy 二元交叉熵 能够很好的产生凸函数


Binary cross entropy公式下:如果y=1,那么y^要尽可能的大,因y^为sigmoid函数,所以y^要无限接近于1
Binary cross entropy公式下:如果y=0,那么y^要尽可能的小,因y^为sigmoid函数,所以y^要无限接近于0
目前很多函数都粗略的有这样效应:if y=1 so y^趋近1 ,if y=0 so y^趋近0
Loss(Error) function 损失(误差)函数 针对单个训练实例,能够衡量单一实例训练的好坏
Cost function 代价函数 能够衡量整个训练集训练的好坏,也体现了所有参数的成本(代价) 表示为 J(w,b)
在优化逻辑回归模型时,我们要试着去找参数w和b,以此来缩小J的整体成本