机器学习各大模型原理深度剖析
通俗来说,机器学习模型就是一种数学函数,它能够将输入数据映射到预测输出。更具体地说,机器学习模型是一种通过学习训练数据,来调整模型参数,以最小化预测输出与真实标签之间的误差的数学函数。
机器学习中的模型种类繁多,例如逻辑回归模型、决策树模型、支持向量机模型等,每一种模型都有其适用的数据类型和问题类型。同时,不同模型之间存在着许多共性,或者说有一条隐藏的模型演化路径。
以联结主义的感知机为例,通过增加感知机的隐藏层数,我们可以将其转化为深度神经网络。而对感知机加入核函数就可以转化为 SVM。这一过程直观地展示了不同模型之间的内在联系,以及模型间的转化可能。按照相似点,本文将模型分为如下 6 个大类,逐个深入剖析。
一、神经网络(联结主义)类的模型
联结主义类模型是一种模拟人脑神经网络结构和功能的计算模型。其基本单元是神经元,每个神经元接收来自其他神经元的输入,通过调整权重来改变输入对神经元的影响。神经网络是一个黑箱子,通过多层的非线性隐藏层的作用,可以达到万能近似的效果。
代表模型有 DNN、SVM、Transformer、LSTM。某些情况下,深度神经网络的最后一层可以看作是一个逻辑回归模型,用于对输入数据进行分类。而支持向量机也可以看作是特殊类型的神经网络,其中只有两层:输入层和输出层,SVM 额外地通过核函数实现复杂的非线性转化,达到和深度神经网络类似的效果。
1. 深度神经网络 (DNN)
深度神经网络(Deep Neural Network,DNN)由多层神经元组成,通过前向传播过程,将输入数据传递到每一层神经元,经过逐层计算得到输出。每一层神经元都会接收上一层神经元的输出作为输入,并输出到下一层神经元。DNN 的训练过程是通过反向传播算法实现的。在训练过程中,计算输出层与真实标签之间的误差,并将误差反向传播到每一层神经元,根据梯度下降算法更新神经元的权重和偏置项。通过反复迭代这个过程,不断优化网络参数,最终使得网络的预测误差最小化。
优点:
- 强大的特征学习能力:DNN 可以自动学习数据的特征,无需手动设计特征。
- 高度非线性及泛化能力:能够拟合复杂的数据分布。
缺点:
- 需要大量参数:这可能导致过拟合问题,需要正则化手段。
- 计算量大:训练时间长,对硬件要求高。
- 解释性较弱:难以理解内部具体的决策逻辑。
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import Adam
from keras.losses import BinaryCrossentropy
import numpy as np
# 构建模型
model = Sequential()
model.add(Dense(64, activation='relu', input_shape=(10,))) # 输入层有 10 个特征
model.add(Dense(64, activation='relu')) # 隐藏层有 64 个神经元
model.add(Dense(1, activation='sigmoid')) # 输出层有 1 个神经元,使用 sigmoid 激活函数进行二分类任务
model.(optimizer=Adam(learning_rate=), loss=BinaryCrossentropy(), metrics=[])
x_train = np.random.rand(, )
y_train = np.random.randint(, size=)
model.fit(x_train, y_train, epochs=, batch_size=)


