机器学习四大范式终极指南:从监督学习到强化学习的开发者指南

412 阅读3分钟

本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习内容,尽在聚客AI学院。

一. 机器学习分类体系

1.1 按学习范式分类

image.png

image.png

二. 监督学习(Supervised Learning)

2.1 基本定义

在给定输入-输出对(X,Y)(X,Y)的条件下,学习从输入到输出的映射函数f:X→Yf:X→Y。

2.2 典型应用

  • 分类:垃圾邮件检测(准确率>99%)
  • 回归:房价预测(MAE<$10,000)
  • 序列标注:命名实体识别(F1>0.92)

2.3 常见算法与代码

2.3.1 线性回归

from sklearn.linear_model import LinearRegression  
import numpy as np  
# 生成数据  
X = np.array([[1], [2], [3]])  
y = np.array([246])  
# 训练模型  
model = LinearRegression()  
model.fit(X, y)  
# 预测  
print(model.predict([[4]]))  # 输出: [8.]

2.3.2 决策树分类

from sklearn.tree import DecisionTreeClassifier  
from sklearn.datasets import load_iris  
# 加载数据  
iris = load_iris()  
X, y = iris.data, iris.target  
# 训练模型  
clf = DecisionTreeClassifier(max_depth=2)  
clf.fit(X, y)  
# 可视化决策树  
from sklearn.tree import plot_tree  
plot_tree(clf, feature_names=iris.feature_names)

image.png

三. 无监督学习(Unsupervised Learning)

3.1 基本定义

从未标注数据中挖掘隐藏模式,无需人工标注指导。

3.2 典型应用

  • 客户分群:电商用户行为聚类
  • 异常检测:金融交易异常识别(检出率>85%)
  • 数据压缩:MNIST图像从784维降至2维可视化

3.3 常见算法与代码

3.3.1 K-Means聚类

from sklearn.cluster import KMeans  
import matplotlib.pyplot as plt  
# 生成数据  
X = np.random.rand(300,2)  
# 聚类  
kmeans = KMeans(n_clusters=3)  
labels = kmeans.fit_predict(X)  
# 可视化  
plt.scatter(X[:,0], X[:,1]c=labels)  
plt.show()

3.3.2 PCA降维

from sklearn.decomposition import PCA  
# MNIST降维  
pca = PCA(n_components=2)  
X_pca = pca.fit_transform(X)  
# 可视化  
plt.scatter(X_pca[:,0], X_pca[:,1]c=y)  
plt.show()

四. 自监督学习(Self-Supervised Learning)

4.1 基本定义

通过设计代理任务从无标注数据中自动生成监督信号,学习通用表示。

4.2 典型应用

  • 文本预训练:BERT的掩码语言建模
  • 图像对比学习:SimCLR的特征对齐
  • 视频时序预测:预测下一帧

代码示例:BERT掩码预测

from transformers import BertTokenizer, BertForMaskedLM  
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')  
model = BertForMaskedLM.from_pretrained('bert-base-uncased')  
input_text = "The capital of France is [MASK]."  
inputs = tokenizer(input_text, return_tensors='pt')  
outputs = model(**inputs)  
predicted_index = outputs.logits[04].argmax()  
print(tokenizer.decode([predicted_index]))  # 输出: paris

五. 强化学习(Reinforcement Learning)

5.1 基本定义

智能体通过与环境交互,根据奖励信号优化策略π:S→Aπ:S→A。

5.2 典型应用

  • 游戏AI:AlphaGo、Dota2 OpenAI Five
  • 机器人控制:机械臂抓取(成功率>95%)
  • 资源调度:云计算任务分配

5.3 常见算法与代码

5.3.1 Q-Learning

import gym  
import numpy as np  
env = gym.make('FrozenLake-v1')  
Q = np.zeros([env.observation_space.n, env.action_space.n])  
# 训练参数  
alpha = 0.8  
gamma = 0.95  
num_episodes = 2000  
for i in range(num_episodes):  
    state = env.reset()  
    done = False  
    while not done:  
        action = np.argmax(Q[state,:] + np.random.randn(1,env.action_space.n)*(1./(i+1)))  
        next_state, reward, done, _ = env.step(action)  
        Q[state,action] += alpha * (reward + gamma*np.max(Q[next_state,:]) - Q[state,action])  
        state = next_state

5.3.2 深度强化学习(DQN)

import torch  
import torch.nn as nn  
import torch.optim as optim  
class DQN(nn.Module):  
    def __init__(self, input_dim, output_dim):  
        super().__init__()  
        self.fc = nn.Sequential(  
            nn.Linear(input_dim, 128),  
            nn.ReLU(),  
            nn.Linear(128, output_dim)  
        )  
    def forward(self, x):  
        return self.fc(x)  
# 使用PyTorch实现经验回放与目标网络...

image.png

:本文代码需安装以下依赖:

pip install scikit-learn matplotlib gym transformers torch

更多AI大模型应用开发学习内容,尽在聚客AI学院