本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习内容,尽在聚客AI学院。
一. 机器学习分类体系
1.1 按学习范式分类
二. 监督学习(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([2, 4, 6])
# 训练模型
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)
三. 无监督学习(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[0, 4].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实现经验回放与目标网络...
注:本文代码需安装以下依赖:
pip install scikit-learn matplotlib gym transformers torch
更多AI大模型应用开发学习内容,尽在聚客AI学院。