*在tensorflow中训练神经网络的代码:
逻辑回归模型:
1.指定如何在给定输入x和参数的情况项目,计算输出
2.指定损失和成本
3.最小化
*如何在tensorflow中训练神经网络---->将逻辑回归模型成本函数的三个步骤映射到训练神经网络中:
1.该代码指定了神经网络的整个架构,告诉了tensorflow需要的一切
2.指定什么是损失函数,同时定义我们用来训练神经网络的成本函数
损失函数:二元交叉熵
3.最小化成本函数,其中最重要的是计算偏导数,那么此时调用tensorflow库中的fit函数,就可利用反向传播的方法计算
*激活函数的类型:
线性激活函数 信号激活函数 ReLU激活函数
如何选择激活函数–>
1、输出层的激活函数,取决于输出层要预测的y标签是什么
Y=0/1(二进制分类问题):Sigmoid
Y=+/-:线性激活函数
Y>=0:ReLU
2、隐藏层的激活函数,一般用ReLU作为默认激活函数
为什么神经网络中要用激活函数–>
如果使用线性激活函数,或者不使用激活函数时,那么大型的神经网络计算出的值就等于线性回归函数的输出
*多类分类问题:
当输出的y值不止为0/1时,而是有多个输出;即只输出一个数字,但这个数字可以有很多种值的可能,选择很多
使用softmax回归算法:
~Softmax模型是逻辑回归模型的泛化
~其成本函数:
当aj越小,则L越大;
所以当aj无限接近1时,则说明与准确值越来越接近了,L越小
~神经网络的softmax输出:
~softmax输出的激活函数:
不再用中间值a代替了,直接将最原始的公式代入式中,让tensorflow可以重新排列术语,使计算这种数值更准确;
此时,则改变了激活函数,不再用softmax,而使用线性激活函数
*多标签分类问题:
1、将三类问题放在一个神经网络中时:对于输出层的每一个结点,分别使用一次sigmoid激活函数;即将三类问题放在一个向量中输出
2、当然也可以按图中第一行所示,分为三个神经网络分别输出检测
*优化方法:
代替梯度下降,更快的降低成本函数,找到参数值-----Adam(自适应矩估计)
当尔法过小,下降速度太慢时,可自动增大尔法;
当尔法过大,使方向来回摇摆时,可自动减小尔法;
尔法在全程并不是唯一值,可自动变化
该方法的代码,与原来相比,仅是多了一步选择Adam优化器:
但是该方法需要默认初始尔法值,图中举例为10^-3
*其他神经网络层类型:
之前我们见到的都是密集层神经网络,即下一层都会受到上一层的激活
~卷积层:每个神经元都只能看到输入的局部信息(可重叠),是一个有限的局部输入窗口
所以此时会涉及架构参数的选择如:每个神经元可以看到的输入窗口有多大、一层有几个神经元。。。
由卷积层构成的网络:卷积神经网络