人工智能入门学习——ANN、CNN基本概念和考试核心代码

一、ANN(人工神经网络)

ANN = 用多层"线性变换 + 非线性激活"拟合函数关系

复制代码
输入 → 加权求和 → 非线性 → 再加权 → 输出

2. 结构拆解(考试最常挖空)

(1)Linear(线性层)

复制代码
y = Wx + b

做"特征变换 / 维度映射" 例如:10维 → 64维 → 1维


(2)ReLU(激活函数)

复制代码
ReLU(x) = max(0, x)

加入"非线性",否则整个网络只是线性回归

👉 没有 ReLU:ANN = 线性模型(很弱)

(3)Forward(前向传播)

复制代码
输入 → 一层层计算 → 得到预测值
x → Linear → ReLU → Linear → output

(4)Loss(损失函数)

衡量"预测错多少"

分类:CrossEntropyLoss

回归:MSELoss

(5)Optimizer(优化器)

根据 loss 更新参数 SGD Adam(最常用)

复制代码
W = W - lr * gradient

ANN通过多层Linear+ReLU进行非线性映射,在Forward中计算预测值,通过Loss衡量误差,并通过Optimizer反向更新参数。

二、CNN(卷积神经网络)

CNN = 处理"空间结构数据"(图像、遥感影像)

2. 每一层在干什么?

(1)Conv2d(卷积层)

核心作用:

提取局部特征(边缘、纹理、形状) 小窗口滑动+权重共享

👉 关键点:局部感受野;参数共享(比ANN省参数)

(2)Pooling(池化)

压缩信息 + 保留关键特征

MaxPooling:取最大值 AvgPooling:取平均值

👉 作用:降维;防止过拟合;增强平移不变性


(3)Flatten

把"二维特征图"拉成一维向量

复制代码
(32, 32, 64) → 65536

(4)Linear(分类器)

把特征 → 最终类别
CNN通过卷积层提取局部空间特征,池化层进行降维与特征压缩,Flatten将特征展平后输入全连接层完成分类或回归任务。

三、核心代码

🧠 模板1:机器学习标准流程(SVM / RF / LR)

python 复制代码
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score / rmse / r2

# 1. 数据
X = ...
y = ...

# 2. 切分
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

# 3. 模型
model = Model()

# 4. 训练
model.fit(X_train, y_train)

# 5. 预测
y_pred = model.predict(X_test)

# 6. 评价
score = metric(y_test, y_pred)

🧠 模板2:ANN(PyTorch)

python 复制代码
class ANN(nn.Module):
    def __init__(self):
        super().__init__()
        self.fc1 = nn.Linear(in_dim, 64)
        self.fc2 = nn.Linear(64, 1)

    def forward(self, x):
        x = F.relu(self.fc1(x))
        x = self.fc2(x)
        return x

训练:

python 复制代码
model = ANN()
criterion = nn.MSELoss()
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)

for epoch in range(E):
    output = model(x)
    loss = criterion(output, y)
    loss.backward()
    optimizer.step()
    optimizer.zero_grad()

🧠 模板3:CNN(遥感分类)

python 复制代码
class CNN(nn.Module):
    def __init__(self):
        super().__init__()
        self.conv1 = nn.Conv2d(3, 16, 3)
        self.pool = nn.MaxPool2d(2)
        self.fc = nn.Linear(16*X, num_classes)

    def forward(self, x):
        x = self.pool(F.relu(self.conv1(x)))
        x = x.view(x.size(0), -1)
        x = self.fc(x)
        return x

🧠 模板8:Accuracy

python 复制代码
from sklearn.metrics import accuracy_score
acc = accuracy_score(y_true, y_pred)

🧠 模板9:RMSE / MAE / R²

python 复制代码
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score

rmse = mean_squared_error(y_true, y_pred, squared=False)
mae = mean_absolute_error(y_true, y_pred)
r2 = r2_score(y_true, y_pred)

🧠 模板10:绘图(必考)

python 复制代码
import matplotlib.pyplot as plt

plt.plot(loss_list)
plt.show()

plt.scatter(y_true, y_pred)
plt.show()
相关推荐
fanged9 分钟前
总线学习3--SPI番外(TODO)
学习
AIsoft_868812 分钟前
会议录音转文字与AI纪要工具推荐:免费额度与核心功能对比指南
人工智能
sphw14 分钟前
nixnb: Jupyter Notebook 优雅分享
ide·人工智能·jupyter
mingo_敏17 分钟前
DeepAgents : 权限(Permissions)
人工智能·深度学习·langchain
合调于形26 分钟前
Bianfchheng (Liuu) 《边城(六)》字母标调拼音拼写实测案例
人工智能·自然语言处理·人机交互·语音识别·学习方法
凯丨1 小时前
AI 蠕虫来了:恶意文档如何通过 Copilot for Word 自我传播?
人工智能·c#·copilot
武子康1 小时前
GPT-5.6 Luna 降价 80%:Agent 真正该重算的是单次成功成本
人工智能·chatgpt·llm
Gu Gu Study1 小时前
ScoutLoop开放域深度研究引擎(agent的初步设计想法)
人工智能·python
HyperAI超神经1 小时前
15亿参数挑战机器人控制,MiniCPM-RobotManip正式开源;覆盖文本/图/视频/动作序列,英伟达发布全模态模型Cosmos3-Edge
人工智能·深度学习·机器人·多模态·图像生成·具身智能·智能体
搞科研的小刘选手1 小时前
【国际生态学协会主办】2026年生态环境与人工智能国际学术会议(ICAIEE 2026)
人工智能·生态环境·学术会议·会议推荐