神经网络基础知识学习笔记day1

一、二分分类
二分分类是将训练输入集x进过分类转换成结果集y,y是{0,1}的集合的方法,下面是一个例子:

神经网络基础知识学习笔记day1_第1张图片
这里将图片转换成矩阵:这幅图假设是64*64个像素点组成,每个像素点的rgb构成3个矩阵,这三个矩阵的特征向量是一个n = Nx = 64*64*3 = 12288维度的向量Xn,这张图片的分类结果(猫作为标签)y作为标签,0代表不是猫,1代表是猫。这个{Xn,y}作为一个训练集的元素,假设样本的大小是m ,那就有m个{Xn,y},训练的输入将组成n*m矩阵,结果将组成
1*m矩阵,用python的x.shape(n,m)可以创建一个这样的矩阵。

二、logistic回归
将二分分类的输入集x(可以理解为上例的图片)作为参数,和实数R和矩阵W(和x维度相同)作为一个新的参数,代入回归公式,也可以将b作为W0,将1作为X0形成新的矩阵代入右边的公式;损失函数代表y冒和样本结果y的相似程度,整个结果集的损失函数用平均值代替
神经网络基础知识学习笔记day1_第2张图片
神经网络基础知识学习笔记day1_第3张图片
我们的目标就是找到一个参数W和b使得损失函数值最小,用J(w,b)来作为损失函数,J(w,b)是一个凹型函数(凸函数),他有最值,梯度下降法就是通过不断的代入w,b去求偏导,找到这个J(w,b)损失函数的最小值。
神经网络基础知识学习笔记day1_第4张图片
梯度下降法就是不断迭代计算的过程,其中要用到多次循环,伪代码下图展示。当遇到单指令多数据计算时使用for循环是效率极差的,下图是对比。其中向量计算使用python的numpy的function 向量化计算,比普通的循环快300倍左右,所以我们遇到这样的情况尽量避免使用for循环,这个过程叫向量化。
神经网络基础知识学习笔记day1_第5张图片 神经网络基础知识学习笔记day1_第6张图片
以下是将求偏导的算法向量化的例子
神经网络基础知识学习笔记day1_第7张图片
利用python-numpy的广播机制,最终可简化成:
神经网络基础知识学习笔记day1_第8张图片
其中第一层循环是无法替换的,因为它表示要做多少个梯度,α表示成本因子是一个实数;
python的广播机制可以简化矩阵的计算,但是为了使代码更高质量,建议使用行向量或者列向量代替秩为1的数组。

你可能感兴趣的:(学习笔记,深度学习,神经网络,逻辑回归)