人工智能入门学习——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()
相关推荐
AI天行健7 分钟前
内容工作室 AI 视频量产选型:星宇智算无限画布能解决哪些生产卡点
人工智能·音视频
工匠解码11 分钟前
Agent 实现方式理论篇:从单轮调用到多 Agent 协作
人工智能
硅谷秋水16 分钟前
WLA³:面向语义、动力学与运动学的世界潜动作建模
人工智能·机器学习·计算机视觉·语言模型·机器人
@陈小鱼19 分钟前
基于CNN-Transformer的无袖带血压估计
人工智能·深度学习·神经网络·算法·cnn·transformer·血压
cu14328 分钟前
细谈GM7123C的具体功能与其应用
c语言·c++·人工智能·嵌入式硬件
W***259230 分钟前
Work Agent长程任务深度解读:AI自主执行复杂工作的底层机制
大数据·人工智能
金科AI评测笔记32 分钟前
App竞品数据平台信息整理
大数据·人工智能
Margrop35 分钟前
Ubuntu 22.04 硬升 26.04 实录:6KB/s 的下载、缩水的镜像,和一块“暂停营业”的牌子
人工智能
pride.li37 分钟前
ISP标定-BLC标定(Black Level Calibration,黑电平校准)
人工智能·计算机视觉·接口隔离原则
中伟视界43 分钟前
绿色矿山国标明日施行:边缘AI与AI布控球技术落地
大数据·人工智能·#深度学习·#机器视觉·#工业ai·#边缘计算·#矿山智能化