第六天:机器学习:神经网络

重点理解神经元网络的结构(权重、分层等)

机器学习中的神经网络结构

在现代机器学习领域,神经网络是一种极为重要的模型。它模仿了人脑的工作方式,通过一系列简单的计算单元(神经元)来处理复杂的任务。本文将详细介绍神经网络的基本结构及其工作原理,包括神经元、权重、层、前向传播、反向传播、激活函数、训练过程以及正则化方法。


1. 引言

神经网络在机器学习中的地位举足轻重,广泛应用于图像识别、自然语言处理、预测分析等领域。理解神经网络的结构和工作机制对于掌握机器学习技术至关重要。


2. 神经网络的基本结构

神经元(Neuron)

神经元是神经网络的基本组成单元,每个神经元接受多个输入,经过处理后输出一个结果。

y = f ( ∑ i = 1 n w i x i + b ) y = f\left(\sum_{i=1}^{n} w_i x_i + b\right) y=f(i=1nwixi+b)

其中, x i x_i xi 是输入, w i w_i wi是权重, b b b是偏置, f f f 是激活函数, y y y是输出。
在这里插入图片描述


3. 权重(Weights)

权重决定了输入对神经元输出的影响程度。训练过程中,通过调整权重来优化网络性能。

输出 = f ( ∑ i w i ⋅ x i + b ) \text{输出} = f(\sum_{i} w_i \cdot x_i + b) 输出=f(iwixi+b)

在这里插入图片描述


4. 神经网络的层(Layers)

神经网络由多个层组成:

输入层(Input Layer)

接收原始输入数据。

隐藏层(Hidden Layers)

包含多个神经元,对输入数据进行特征提取。

输出层(Output Layer)

生成最终预测结果。

在这里插入图片描述


5. 前向传播(Forward Propagation)

前向传播是指数据从输入层经过隐藏层到达输出层的过程。每个层的输出作为下一层的输入。

a ( l + 1 ) = f ( W ( l ) a ( l ) + b ( l ) ) a^{(l+1)} = f(W^{(l)} a^{(l)} + b^{(l)}) a(l+1)=f(W(l)a(l)+b(l))

其中, a ( l ) a^{(l)} a(l)是第 l l l 层的输出, W ( l ) W^{(l)} W(l) 是第 l l l 层的权重矩阵。

!](https://i-blog.csdnimg.cn/direct/7b4c2958cde249e8a581bfb184d0849d.png#pic_center)

在这里插入图片描述


6. 反向传播(Backward Propagation)

反向传播通过计算损失函数的梯度来调整权重,使得预测结果逐步接近真实值。

∂ L ∂ W = ∂ L ∂ a ( l ) ⋅ ∂ a ( l ) ∂ z ( l ) ⋅ ∂ z ( l ) ∂ W \frac{\partial L}{\partial W} = \frac{\partial L}{\partial a^{(l)}} \cdot \frac{\partial a^{(l)}}{\partial z^{(l)}} \cdot \frac{\partial z^{(l)}}{\partial W} WL=a(l)Lz(l)a(l)Wz(l)
在这里插入图片描述


7. 激活函数(Activation Functions)

激活函数引入非线性,使得神经网络能够拟合复杂的函数。

  • Sigmoid函数: σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+ex1
  • ReLU函数: f ( x ) = max ⁡ ( 0 , x ) f(x) = \max(0, x) f(x)=max(0,x)
  • Tanh函数: tanh ⁡ ( x ) = e x − e − x e x + e − x \tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} tanh(x)=ex+exexex

在这里插入图片描述


8. 神经网络的训练

神经网络的训练包括前向传播计算输出,计算损失函数,反向传播更新权重。

import tensorflow as tf

# 定义神经网络结构
model = tf.keras.models.Sequential([
    tf.keras.layers.Dense(128, activation='relu', input_shape=(input_dim,)),
    tf.keras.layers.Dense(64, activation='relu'),
    tf.keras.layers.Dense(output_dim, activation='softmax')
])

# 编译模型
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

# 训练模型
model.fit(train_data, train_labels, epochs=10)

9. 过拟合与正则化(Overfitting and Regularization)

过拟合 是模型在训练数据上表现良好,但在测试数据上表现不佳的现象。

正则化 方法帮助防止过拟合,如 L1、L2 正则化和 Dropout。

# 添加L2正则化
model.add(tf.keras.layers.Dense(128, activation='relu', kernel_regularizer=tf.keras.regularizers.l2(0.01)))

# 使用Dropout
model.add(tf.keras.layers.Dropout(0.5))

10. 总结

通过上述介绍,我们了解了神经网络的基本结构和工作原理,包括神经元、权重、层、前向传播、反向传播、激活函数、训练过程及正则化方法。神经网络在实际应用中的重要性不断提升,是机器学习研究和应用的重要方向。


11. 参考资料

  • 17
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值