一、使用TensorFlow构建和训练简单神经网络的代码
代码部分:
导入TensorFlow和Keras相关模块(
Sequential
、Dense
)创建一个顺序模型,包含3个全连接层:
第一层:25个神经元,sigmoid激活
第二层:15个神经元,sigmoid激活
输出层:1个神经元,sigmoid激活(二分类任务)
使用二元交叉熵损失函数(
BinaryCrossentropy
)编译模型调用
fit
方法训练模型(100个epoch)
注释说明:
解释了
epochs
的含义(梯度下降的步数)图示标注了第一层"25 units"的神经元数量
底部提出问题:给定(x,y)样本集时,如何在代码中构建和训练这样的模型
二、模型训练步骤
模型训练的三个核心步骤:
第一步:定义模型结构(如何通过参数w,b计算输出 fw,b(x))
第二步:定义损失函数(单个样本)和成本函数(所有样本的平均损失)
第三步:通过训练数据最小化成本函数 f(w,b)
逻辑回归的具体实现:
前向传播公式:z=w⋅x+b,fx=sigmoid(z)
逻辑损失函数:二元交叉熵公式
参数更新:梯度下降(显示w和b的更新公式)
神经网络的实现对比:
使用Keras的
Sequential
模型和Dense
层构建网络结构直接调用
compile
方法设置二元交叉熵损失通过
fit
方法训练(100个epoch)
注:图片中神经网络部分的代码是简略表示(用Dense(...)
省略了具体参数),与第一张图的详细实现互为补充。