🌟 学习新技能,从神经网络开始! 🌟
最近深入学习了《神经网络基础》这门课,感觉收获满满!今天就来跟大家分享一下我的学习心得,希望能帮到同样对神经网络感兴趣的你哦!📚
🔥 什么是神经网络?
首先,让我们从基础开始。神经网络(Artificial Neural Network, ANN),简称NN,是一种模仿生物神经网络结构和功能的计算模型。想象一下我们的大脑,由无数的神经元连接而成,每个神经元接收输入信号,处理后再通过轴突输出。神经网络就是模仿这个过程,通过大量的“人工神经元”和它们之间的连接来解决问题。🧠
🌱 神经网络的构建
神经网络由三大层构成:输入层、隐藏层和输出层。
- 输入层:接收外部数据。
- 隐藏层:对数据进行处理,每一层的输出都是下一层的输入,每一层之间都有权重连接。
- 输出层:给出最终结果。
想象一下,这些层就像一座工厂的生产线,原材料(输入数据)经过多道工序(隐藏层)加工,最终变成产品(输出结果)。🏭
🌈 激活函数:让网络“活”起来
激活函数是神经网络中的关键,它给网络带来了非线性因素,让网络能够拟合各种复杂的曲线。常见的激活函数有Sigmoid和Tanh。
-
Sigmoid:将输入映射到(0, 1)之间,适用于二分类问题的输出层。但有个缺点是,当输入值过大或过小时,梯度会接近0,导致“梯度消失”现象。💡
-
Tanh:将输入映射到(-1, 1)之间,图像以0为中心,比Sigmoid收敛速度快,但同样存在梯度消失的问题。可以在隐藏层使用Tanh,输出层使用Sigmoid。🌀
📈 动手实践:画出激活函数图像
为了更好地理解激活函数,我动手用Python和PyTorch库画出了Sigmoid和Tanh的函数图像及其导数图像。看着图像中曲线的变化,我对激活函数的特性有了更直观的感受!🖼️
import torch
import matplotlib.pyplot as plt
# Sigmoid 示例
x = torch.linspace(-20, 20, 1000)
y = torch.sigmoid(x)
plt.plot(x, y)
plt.title('Sigmoid 函数图像')
plt.grid()
plt.show()
# Tanh 示例
x = torch.linspace(-20, 20, 1000)
y = torch.tanh(x)
plt.plot(x, y)
plt.title('Tanh 函数图像')
plt.grid()
plt.show()
通过这次学习,我不仅了解了神经网络的基本原理,还亲手实践了激活函数的可视化。如果你也对神经网络感兴趣,不妨动手试试,相信你会有不一样的收获!🚀
#学习笔记 #神经网络 #激活函数 #Python编程