4 人工神经元

在上一篇中,我们探讨了深度学习与机器学习之间的区别,认识到深度学习作为一种特殊的机器学习方法,其关键在于能够自动学习数据中的特征。今天,我们将深入了解深度学习的基础构件——人工神经元

什么是人工神经元?

人工神经元(Artificial Neuron)是神经网络的基本单元,灵感来源于生物神经元。它的主要任务是接收输入信号,进行处理,然后产生输出信号。每个人工神经元包含以下主要组成部分:

  • 输入:神经元接收来自其他神经元或外部数据的输入信号。
  • 权重:每个输入信号都有一个对应的权重,表示该信号的重要性。
  • 激活函数:对加权输入信号进行非线性变换,以决定输出信号的值。
  • 输出:经过激活函数处理后产生的信号,将被传递给其他神经元或作为最终输出。

人工神经元的数学模型

一个简单的人工神经元可以用以下数学公式表示:

  1. 加权和

$$
z = \sum_{i=1}^{n} w_i x_i + b
$$

其中:

  • $x_i$ 是来自前一层的输入信号。
  • $w_i$ 是对应的权重。
  • $b$ 是偏置(bias),用于调整输出。
  1. 激活函数

神经元的输出通常通过一个激活函数进行非线性变换,例如使用sigmoid、ReLU(整流线性单元)或tanh等。

$$
y = f(z)
$$

其中,$f$ 是激活函数,$y$ 是神经元的最终输出。

常见的激活函数

  • Sigmoid
    $$ f(z) = \frac{1}{1 + e^{-z}} $$
    Sigmoid函数的输出范围在(0, 1)之间,常用于二分类问题。

  • ReLU
    $$ f(z) = \max(0, z) $$
    ReLU函数在正区间线性增长,负区间输出为0,是当前深度学习中最常用的激活函数之一。

  • Tanh
    $$ f(z) = \tanh(z) = \frac{e^{z} - e^{-z}}{e^{z} + e^{-z}} $$
    Tanh函数的输出范围在(-1, 1)之间,适用于需要输出范围在负值和正值之间的场景。

人工神经元的实现

下面,我们用Python和NumPy简单实现一个具有单个神经元的前馈网络。代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import numpy as np

class Neuron:
def __init__(self, n_inputs):
self.weights = np.random.rand(n_inputs)
self.bias = np.random.rand(1)

def activation(self, z):
return 1 / (1 + np.exp(-z)) # Sigmoid Activation

def forward(self, inputs):
z = np.dot(inputs, self.weights) + self.bias
return self.activation(z)

# 示例:使用神经元进行预测
inputs = np.array([0.5, 0.75]) # 示例输入
neuron = Neuron(len(inputs))
output = neuron.forward(inputs)
print("神经元的输出:", output)

在上述代码中,我们定义了一个Neuron类,具备初始化权重和偏置的功能,并有forward方法实现前向传播。activation方法实现了sigmoid激活函数。

总结

人工神经元是构成神经网络的基础,它通过加权和、偏置、和激活函数的结合来对输入数据进行处理。理解人工神经元的工作原理是深入学习神经网络的关键。在下一篇文章中,我们将进一步探索神经网络的结构,以及多个神经元如何协同工作。

通过这一系列教程,我们希望帮助大家逐渐克服对深度学习的陌生感,开启探索人工智能的旅程。

作者

IT教程网(郭震)

发布于

2024-08-10

更新于

2024-08-10

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论