目录
训练过程
一、建立模型:
二、建立损失函数 J(w,b):
三、寻找最小损失函数的(w,b)组合
为什么需要激活函数
激活函数种类
二分法逻辑回归模型
线性回归模型
回归模型
训练过程
一、建立模型:
根据需求建立模型,从前面神经网络的结果可以知道,每一层都有若干个模型在运行,因此建立神经网络就需要先根据需求确定计算模型,也就是得到
逻辑回归模型公式为:
上面三层的神经网络的代码实现为:
import tensorflow as tf
from tensorflow.keras import Sequential
from tensorflow.keras.layers import Densemodel = Sequential([Dense(units = 25,activation='Sigmoid')Dense(units = 25,activation='Sigmoid')Dense(units = 25,activation='Sigmoid')
])
二、建立损失函数 J(w,b):
例如线性回归的
二分法逻辑回归的损失函数为:
代码实现为:
from tensorflow.keras.losses import BinaryCrossentropy
model.compile(loss = BinaryCrossentropy())
三、寻找最小损失函数的(w,b)组合
梯度下降法:
代码实现为:循环100次
model.fit(X,y,epochs=100)
为什么需要激活函数
可以看到在建立模型的过程中,代码中使用了activation激活函数。
Dense(units = 25,activation='Sigmoid')
如果不用激活函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合,这种情况就是最原始的感知机(Perceptron)。如果使用的话,激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。
具体的分析这个博主讲的很清楚,可以参考学习一下:
深度学习:神经网络中为什么需要使用激活函数?(超详细)_神经网络为什么需要激活函数-CSDN博客
激活函数种类
二分法逻辑回归模型
这种模型输出非0即1,可以选择Sigmoid
Dense(units = 25,activation='Sigmoid')
线性回归模型
这种输出可以是各种正负数值,可以仍然选用线性激活函数linear activation function
Dense(units = 25,activation='linear')
回归模型
输出只能是0以及正数,可以选择ReLU
Dense(units = 25,activation='relu')