本文較長,建議點贊收藏,以免遺失。更多AI大模型應用開發學習視頻及資料,盡在聚客AI學院。
一. 人工智能、機器學習與深度學習的關系
1.1 概念層次解析
-
人工智能(AI):使機器模擬人類智能的廣義領域
-
機器學習(ML):通過數據驅動的方法讓系統自動改進性能
-
深度學習(DL):基于多層神經網絡的機器學習子領域
關系示意圖:
人工智能???機器學習???深度學習
二. PyTorch環境配置
2.1 Conda環境管理
#?創建虛擬環境??
conda?create?-n?pytorch_env?python=3.9??
#?激活環境??
conda?activate?pytorch_env??
#?安裝PyTorch(根據CUDA版本選擇)??
conda?install?pytorch?torchvision?torchaudio?pytorch-cuda=12.1?-c?pytorch?-c?nvidia??#?GPU版本??
conda?install?pytorch?torchvision?torchaudio?cpuonly?-c?pytorch??#?CPU版本
2.2 驗證安裝
import?torch??
print(torch.__version__)????????????#?輸出:2.0.1??
print(torch.cuda.is_available())????#?輸出:True(GPU可用時)
三. 數學基礎與張量操作
3.1 標量、向量、張量
代碼示例:張量創建與操作
#?創建張量??
x?=?torch.empty(2,?3)??#?未初始化??
y?=?torch.zeros(2,?3,?dtype=torch.int32)??
z?=?torch.randn(2,?3)??#?標準正態分布??
#?數學運算??
a?=?torch.tensor([[1,2],[3,4]],?dtype=torch.float32)??
b?=?torch.tensor([[5,6],[7,8]],?dtype=torch.float32)??
print(a?+?b)????#?逐元素加法??
print(a?@?b.T)??#?矩陣乘法
四. 數據預處理與線性代數
4.1 數據標準化
from?torchvision?import?transforms??
transform?=?transforms.Compose([??transforms.ToTensor(),??transforms.Normalize(mean=[0.485,?0.456,?0.406],???std=[0.229,?0.224,?0.225])??
])??
#?應用到數據集??
dataset?=?datasets.CIFAR10(...,?transform=transform)
4.2 線性代數核心操作
#?矩陣分解??
A?=?torch.randn(3,?3)??
U,?S,?V?=?torch.svd(A)??#?奇異值分解??
#?特征值計算??
eigenvalues?=?torch.linalg.eigvalsh(A)??
#?張量縮并??
tensor?=?torch.einsum('ijk,jl->ikl',?a,?b)
五. 神經網絡基礎
5.1 神經元數學模型
-
wi:權重
-
bb:偏置(提供平移能力)
-
ff:激活函數
代碼示例:單神經元實現
class?Neuron(nn.Module):??def?__init__(self,?input_dim):??super().__init__()??self.linear?=?nn.Linear(input_dim,?1)??self.activation?=?nn.Sigmoid()??def?forward(self,?x):??return?self.activation(self.linear(x))??
neuron?=?Neuron(3)??
output?=?neuron(torch.tensor([0.5,?-1.2,?0.8]))
六. 模型訓練全流程
6.1 訓練要素定義
6.2 典型訓練循環
model?=?nn.Sequential(??nn.Linear(784,?128),??nn.ReLU(),??nn.Linear(128,?10)??
)??
criterion?=?nn.CrossEntropyLoss()??
optimizer?=?torch.optim.Adam(model.parameters(),?lr=0.001)??
for?epoch?in?range(10):??for?inputs,?labels?in?train_loader:??optimizer.zero_grad()??outputs?=?model(inputs.view(-1,?784))??loss?=?criterion(outputs,?labels)??loss.backward()??optimizer.step()??print(f'Epoch?{epoch+1},?Loss:?{loss.item():.4f}')
七. 激活函數與反向傳播
7.1 常見激活函數對比
7.2 反向傳播數學原理
鏈式法則示例:
其中?z=∑wixi+bz=∑wixi+b,y=f(z)y=f(z)
代碼示例:手動實現反向傳播
x?=?torch.tensor(2.0,?requires_grad=True)??
y?=?torch.tensor(3.0)??
w?=?torch.tensor(1.0,?requires_grad=True)??
b?=?torch.tensor(0.5,?requires_grad=True)??
#?前向計算??
z?=?w?*?x?+?b??
loss?=?(z?-?y)**2??
#?反向傳播??
loss.backward()??
print(w.grad)??#?輸出:4.0?(?loss/?w?=?2*(wx?+?b?-?y)*x?=?2*(2+0.5-3)*2?=?4)
注:本文代碼基于PyTorch 2.0+版本實現,運行前需安裝:
pip?install?torch?torchvision?matplotlib
更多AI大模型應用開發學習視頻及資料,盡在聚客AI學院。