【深度学习】焦点概念-人工神经网络(Artificial Neural Network, ANN)

[复制链接]
发表于 2025-11-12 16:21:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
人工神经网络是一种受生物神经体系开导的呆板学习模子,旨在通过毗连大量的节点(称为神经元或节点)来模仿人脑的学习方式。它是一种在监督学习和非监督学习中广泛应用的深度学习模子。

人工神经网络的根本布局

一个人工神经网络通常由以下三个部分构成:

  •         输入层(Input Layer):
            担当输入数据,每个神经元代表一个特性。
  •         埋伏层(Hidden Layers):
            通过权重、偏置和激活函数对输入举行处置惩罚,可以有一层或多层,决定了模子的表达本领。
  •         输出层(Output Layer):
            提供终极的猜测效果,输出层的神经元数量取决于任务范例(如分类的种别数)。
神经元

每个神经元的输出由输入的加权和颠末激活函数盘算得出:
 

此中:

  • :权重
  • :输入
  • :偏置
  • :激活函数
激活函数

常见激活函数包罗:

  • Sigmoid:

  • ReLU:

  • Tanh:

  • Softmax: 用于多分类任务,输出概率分布。

工作原理


  •         前向传播(Forward Propagation):
            数据从输入层通过埋伏层到输出层,逐层盘算效果。
  •         丧失函数(Loss Function):
            用于评估猜测值与现实值之间的差距。比方:

    • 均方毛病(MSE):回归题目
    • 交织熵(Cross Entropy):分类题目

  •         反向传播(Backpropagation):
            通过链式法则盘算丧失函数对每个参数的梯度,并用梯度降落算法更新参数,优化模子。

常见范例的人工神经网络


  •         前馈神经网络(Feedforward Neural Network, FNN):
            数据单向活动,无环路,是最底子的神经网络范例。
  •         卷积神经网络(Convolutional Neural Network, CNN):
            得当处置惩罚图像数据,通过卷积层提取特性。
  •         循环神经网络(Recurrent Neural Network, RNN):
            得当处置惩罚序列数据,可以或许捕获时间依赖关系。
  •         天生对抗网络(Generative Adversarial Network, GAN):
            包罗天生器和鉴别器,用于天生与真实数据相似的样本。
  •         自动编码器(Autoencoder):
            用于降维或去噪,通过学习输入数据的紧凑体现举行重构。

示例代码

以下是一个简单的多层感知器(MLP)在 TensorFlow 中实现的分类示例:
  1. import tensorflow as tf
  2. from tensorflow.keras.models import Sequential
  3. from tensorflow.keras.layers import Dense
  4. from tensorflow.keras.datasets import mnist
  5. from tensorflow.keras.utils import to_categorical
  6. # 加载 MNIST 数据集
  7. (X_train, y_train), (X_test, y_test) = mnist.load_data()
  8. X_train = X_train.reshape(-1, 28 * 28).astype('float32') / 255.0
  9. X_test = X_test.reshape(-1, 28 * 28).astype('float32') / 255.0
  10. y_train = to_categorical(y_train, 10)
  11. y_test = to_categorical(y_test, 10)
  12. # 构建模型
  13. model = Sequential([
  14.     Dense(128, activation='relu', input_shape=(28*28,)),
  15.     Dense(64, activation='relu'),
  16.     Dense(10, activation='softmax')  # 10 类分类
  17. ])
  18. # 编译模型
  19. model.compile(optimizer='adam',
  20.               loss='categorical_crossentropy',
  21.               metrics=['accuracy'])
  22. # 训练模型
  23. model.fit(X_train, y_train, epochs=10, batch_size=32, validation_split=0.2)
  24. # 评估模型
  25. loss, accuracy = model.evaluate(X_test, y_test)
  26. print(f"Test Accuracy: {accuracy:.2f}")
复制代码
运行效果
  1. Epoch 1/10
  2. 1500/1500 [==============================] - 3s 2ms/step - loss: 0.2661 - accuracy: 0.9229 - val_loss: 0.1471 - val_accuracy: 0.9562
  3. Epoch 2/10
  4. 1500/1500 [==============================] - 2s 2ms/step - loss: 0.1114 - accuracy: 0.9668 - val_loss: 0.1018 - val_accuracy: 0.9703
  5. Epoch 3/10
  6. 1500/1500 [==============================] - 3s 2ms/step - loss: 0.0769 - accuracy: 0.9755 - val_loss: 0.0972 - val_accuracy: 0.9714
  7. Epoch 4/10
  8. 1500/1500 [==============================] - 2s 1ms/step - loss: 0.0582 - accuracy: 0.9820 - val_loss: 0.0962 - val_accuracy: 0.9727
  9. Epoch 5/10
  10. 1500/1500 [==============================] - 2s 1ms/step - loss: 0.0463 - accuracy: 0.9846 - val_loss: 0.0908 - val_accuracy: 0.9748
  11. Epoch 6/10
  12. 1500/1500 [==============================] - 2s 2ms/step - loss: 0.0354 - accuracy: 0.9886 - val_loss: 0.1065 - val_accuracy: 0.9720
  13. Epoch 7/10
  14. 1500/1500 [==============================] - 2s 1ms/step - loss: 0.0308 - accuracy: 0.9896 - val_loss: 0.1528 - val_accuracy: 0.9607
  15. Epoch 8/10
  16. 1500/1500 [==============================] - 2s 1ms/step - loss: 0.0230 - accuracy: 0.9921 - val_loss: 0.1050 - val_accuracy: 0.9735
  17. Epoch 9/10
  18. 1500/1500 [==============================] - 2s 1ms/step - loss: 0.0238 - accuracy: 0.9923 - val_loss: 0.1078 - val_accuracy: 0.9747
  19. Epoch 10/10
  20. 1500/1500 [==============================] - 2s 1ms/step - loss: 0.0184 - accuracy: 0.9942 - val_loss: 0.1165 - val_accuracy: 0.9735
  21. 313/313 [==============================] - 1s 1ms/step - loss: 0.1037 - accuracy: 0.9741
  22. Test Accuracy: 0.97
复制代码

人工神经网络的优缺点

长处


  •         非线性映射本领强:
            得当复杂任务,如图像辨认、自然语言处置惩罚。
  •         自动特性提取:
            无需手动筹划特性,模子可以学习特性。
  •         高度可扩展性:
            网络规模可调解,顺应差别任务。
缺点


  •         训练时间长:
            特殊是深层网络,必要大量盘算资源。
  •         必要大规模数据:
            对数据量敏感,小数据集易过拟合。
  •         缺乏可表明性:
            很难表明网络为何得出某一猜测效果。

应用范畴


  • 盘算机视觉: 图像分类、目的检测、语义分割。
  • 自然语言处置惩罚: 呆板翻译、文本天生、感情分析。
  • 语音处置惩罚: 语音辨认、语音合成。
  • 游戏: 深度强化学习在棋类游戏中的应用。
  • 保举体系: 个性化内容保举。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表