【深度学习|学习笔记】 Extreme Learning Machine(极限学习机,ELM)的起源、原理、发展和应用(附代码)

【深度学习|学习笔记】 Extreme Learning Machine(极限学习机,ELM)的起源、原理、发展和应用(附代码)

【深度学习|学习笔记】 Extreme Learning Machine(极限学习机,ELM)的起源、原理、发展和应用(附代码)



欢迎铁子们点赞、关注、收藏!
祝大家逢考必过!逢投必中!上岸上岸上岸!upupup

大多数高校硕博生毕业要求需要参加学术会议,发表EI或者SCI检索的学术论文会议论文。详细信息可关注VX “学术会议小灵通”或参考学术信息专栏:https://blog.csdn.net/2401_89898861/article/details/146957339


一、起源

  • Extreme Learning Machine(ELM) 是由中国学者黄广斌(Guang-Bin Huang)在 2004 年提出的,它是一种针对单隐层前馈神经网络(SLFN, Single-Layer Feedforward Neural Networks)的快速训练算法

核心理念:

  • 随机生成输入层权重和隐藏层偏置
  • 只训练输出层权重(一次性通过最小二乘法求解)

这使得 ELM 具有惊人的训练速度,适用于大数据和实时计算场景。

二、原理

网络结构:

  • 输入层 → 单隐层(激活函数如 sigmoid/ReLU)→ 输出层

数学原理:

设:

  • 输入矩阵 X ∈ R N × d X∈R^{N×d} XRN×d N N N个样本, d d d维特征;
  • 隐藏层节点数为 L L L,激活函数为 g ( ⋅ ) g(⋅) g()
  • 输出为 Y ∈ R N × m Y∈R^{N×m} YRN×m m m m类或 m m m维输出;
ELM 的训练过程:
  • 随机生成输入权重 $W∈R^{d×L} 和偏置 b ∈ R L b∈R^L bRL
  • 计算隐藏层输出矩阵:
    在这里插入图片描述
  • 使用最小二乘法求输出权重 β β β

在这里插入图片描述
其中 H † H^† H 是广义逆(Moore-Penrose 伪逆)

三、发展

  • 2004–2010:提出ELM基础理论,应用于分类、回归等基本任务;
  • 2010–2015:发展出 Kernel ELM、Online ELM、Hierarchical ELM 等变种;
  • 2015–至今:
    将 ELM 与深度学习结合(如 Deep ELM、Stacked ELM);
    用于大规模数据、嵌入式设备、低功耗场景;
    学术界持续探讨其泛化能力与鲁棒性。

四、改进

在这里插入图片描述

五、应用领域

  • 图像识别:人脸识别、医学影像分析
  • 时间序列预测:如交通流量、电力负荷、金融预测
  • 工业控制:设备故障检测、工业分类
  • 遥感应用:地物分类、土地覆盖识别
  • 边缘计算/IoT:低功耗场景下的快速推理模型

六、Python代码实现(使用 NumPy)

import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import OneHotEncoder
from sklearn.metrics import accuracy_score

# 激活函数:sigmoid
def sigmoid(x):
    return 1 / (1 + np.exp(-x))

# Moore-Penrose 广义逆
def pseudoinverse(H):
    return np.linalg.pinv(H)

# Extreme Learning Machine
class ELM:
    def __init__(self, input_size, hidden_size, activation=sigmoid):
        self.input_size = input_size
        self.hidden_size = hidden_size
        self.activation = activation
        # 随机初始化输入权重和偏置
        self.W = np.random.randn(self.input_size, self.hidden_size)
        self.b = np.random.randn(self.hidden_size)

    def fit(self, X, y):
        H = self.activation(np.dot(X, self.W) + self.b)
        H_pinv = pseudoinverse(H)
        self.beta = np.dot(H_pinv, y)

    def predict(self, X):
        H = self.activation(np.dot(X, self.W) + self.b)
        output = np.dot(H, self.beta)
        return output.argmax(axis=1)

# 数据预处理
iris = load_iris()
X = iris.data
y = iris.target.reshape(-1, 1)

# One-hot 编码
encoder = OneHotEncoder(sparse=False)
y_onehot = encoder.fit_transform(y)

# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y_onehot, test_size=0.3, random_state=42)

# 初始化并训练ELM
elm = ELM(input_size=4, hidden_size=100)
elm.fit(X_train, y_train)

# 预测与评估
y_pred = elm.predict(X_test)
y_true = y_test.argmax(axis=1)
print("Accuracy:", accuracy_score(y_true, y_pred))

七、总结表格

在这里插入图片描述

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力毕业的小土博^_^

您的鼓励是我创作的动力!谢谢!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值