机器学习 第五章 神经网络
1. 神经元模型
1.1 什么是神经元模型?
神经元模型是神经网络的基本单元,就像生物神经元一样,它接收来自其他神经元的输入信号,通过带权重的连接传递,然后通过激活函数处理产生输出。
1.2 M-P神经元模型
1943年,McCulloch和Pitts提出了M-P神经元模型,这个模型非常简单,但却是现代神经网络的基础。在这个模型中,神经元接收到来自几个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过激活函数处理以产生神经元的输出。
1.3 激活函数
激活函数是神经元模型中的关键部分,它决定了神经元的输出。常见的激活函数有阶跃函数和Sigmoid函数。阶跃函数将输入值映射为输出值“0”或“1”,而Sigmoid函数则将输入值挤压到(0,1)输出值范围内。
1.4 代码实现
import numpy as np
def sigmoid(x):
return 1 / (1 + np.exp(-x))
class Neuron:
def __init__(self, weights, bias):
self.weights = weights
self.bias = bias
def forward(self, inputs):
total = np.dot(inputs, self.weights) + self.bias
return sigmoid(total)
#示例
weights = np.array([0.5, -0.3])
bias = 0.1
neuron = Neuron(weights, bias)
inputs = np.array([1, 0])
output = neuron.forward(inputs)
print("Neuron output:", output)
2. 感知机与多层网络
2.1 感知机
感知机由两层神经元组成,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元。感知机能容易地实现逻辑与、或、非运算。
2.2 多层网络
多层网络包含输入层、隐层和输出层,能够解决非线性可分问题。常见的多层前馈神经网络结构如图5.6所示。
2.3 代码实现
Python复制
import numpy as np
def sigmoid(x):
return 1 / (1 + np.exp(-x))
def sigmoid_derivative(x):
return x * (1 - x)
class Layer:
def __init__(self, input_size, output_size)