一. 机器学习分类体系
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 线性回归
Python
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 决策树分类
Python
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聚类
Python
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降维
Python
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掩码预测
Python
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
Python
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)
Python
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实现经验回放与目标网络...
注:本文代码需安装以下依赖:
Bash
pip install scikit-learn matplotlib gym transformers torch
学习书籍文档
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)
学习视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。
项目实战源码
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。
大模型面试题
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。