实战:图像分类(CIFAR-10)
引子MNIST 的准确率刷到 99% 了,然后呢? 你换了张真实照片——模糊的、带噪点的、背景花里胡哨的——CNN 直接掉到 70%。 不是你模型不行,是 MNIST 太简单了。 CIFAR-10 就是下一个台阶:32×32 彩色图片,10 个类别,真正的”AI 能不能分清猫和狗”。 训练集:50,000 张 测试集:10,000 张 彩色(3 通道 RGB),32×32 像素 10 类:飞机、汽车、鸟、猫、鹿、狗、青蛙、马、船、卡车 跟 MNIST 的本质区别:颜色 + 纹理 + 形状才是特征,纯像素不够。 前置知识 实战:手写数字识别(MNIST) 神经网络架构详解:CNN 卷积神经网络 一、基线 CNN先拿一个比 MNIST 那篇更深的 CNN,看 CIFAR-10 的难度。 12345678910111213141516171819202122232425262728293031323334353637383940import torchfrom torch import nnfrom torch.utils.data import DataLoaderfrom...
实战:手写数字识别(MNIST)
引子你学了 PyTorch,懂了张量怎么算、梯度怎么传——但脑子里还是空的。 “学完了理论,我不知道怎么组合起来。” 这是我从后台看到最多的私信。所以这篇来了:一次完整的实战,从数据到模型到调优。 你能写出一个识别手写数字的程序,就说明你真正理解了深度学习的基础管线。 前置知识 PyTorch 实战(二):构建第一个全连接网络 神经网络架构详解:CNN 卷积神经网络 看完这两篇再来,手感会好很多。 一、MNIST 数据集长什么样?MNIST 是计算机视觉界的”Hello World”。 训练集:60,000 张 28×28 灰度手写数字(0-9) 测试集:10,000 张 每个像素 0-255,白色背景、黑色笔迹 12345678# 看一眼数据长什么样子import torchimport torchvisionimport matplotlib.pyplot as plttrain_data = torchvision.datasets.MNIST(root='./data', train=True, download=True)print(f&q...
NLP 入门:文本预处理与词向量
引言 对计算机来说,”你好”和”hello”只是两个字节序列,它不懂”你好”背后的含义。 NLP(自然语言处理) 要做的事就是让计算机理解人类语言。但文本数据有个麻烦——它不像图片那样天然有像素坐标结构。 本文带你走完 NLP 的标准流程:原始文本 → 清洗 → 分词 → 向量化 → 词嵌入,这是后续一切 NLP 任务的基础。 前置知识 机器学习入门:概念与分类全解 Python 编程基础(一):从零搭建你的AI开发环境 一、NLP 的核心挑战1.1 语言 vs 计算机 语言 计算机 “苹果很好吃” 字节序列 “我今天买了苹果手机” 同一个词,不同意思 “I am running” ~ “The running water” 同一个词,不同词性 “苹果很好吃” ~ “我吃了苹果” “苹果”出现了位置变了 三个核心问题: 分词 — 一句话拆成什么单位? 歧义 — 同一个词在不同上下文什么意思? 表示 — 怎么把词变成计算机能算的数字向量? 1.2 NLP 的典型任务1234567分词/词性标注 ─── 基础任务(管道上游) ↓命名实体识...
计算机视觉入门:图像处理基础
引言计算机视觉(CV)是 AI 最成熟的落地领域之一: 手机人脸解锁 自动驾驶识别行人和车辆 医学影像辅助诊断 电商以图搜图 短视频滤镜和特效 所有这些技术的底层都是图像处理。这篇文章从像素开始,带你走完”传统图像处理 → 深度学习特征提取 → CV 任务全景”的完整路径。 前置知识 数学基础(一):线性代数——让机器学会看向量 神经网络架构详解:CNN 卷积神经网络 看完 CNN 那篇再来,效果好一倍。 一、图像在计算机中的表示1.1 一张图片 = 一个三维数组123灰度图 (Grayscale): [H×W] — 每个像素 0-255 的亮度值彩色图 (RGB): [H×W×3] — 三个通道:红/绿/蓝RGBA 图: [H×W×4] — 多一个 Alpha(透明度) 像素值范围通常是 0-255(8 位),深度学习会归一化到 0-1 或 -1~1。 123456789101112131415import cv2import matplotlib.pyplot as...
神经网络架构详解:RNN 与 LSTM
引言CNN 处理的是图片——有空间结构。那文本、语音、股价、视频呢?这些是序列数据,长度不固定,前后有依赖关系。 “I love this movie” 和 “I don’t love this movie”——同一个词 “love”,因为前面有个 “don’t”,意思完全反了。 RNN(循环神经网络) 就是为序列数据设计的——它能记住前面看到的信息来影响当前的判断。 但 RNN 有个致命缺陷:长期依赖问题——看了 100 个词之后,第 1 个词的信息基本被遗忘了。这就是 LSTM(长短期记忆网络) 要解决的问题。 前置知识 深度学习入门指南:从零开始理解神经网络 PyTorch 实战(二):构建第一个全连接网络 理解神经网络的基本概念就够了。 一、为什么需要 RNN?传统网络的问题1234567传统神经网络(全连接 / CNN):输入 → [网络] → 输出每个输入独立处理,没有"记忆"能力。"I am from China, I speak ______"→ 需要记住前面说了 "China" 才能预测 &q...
神经网络架构详解:CNN 卷积神经网络
引言上一篇文章我们用全连接网络实现了手写数字识别——但你知道吗?如果换成人脸识别、自动驾驶场景,全连接网络基本不 work。 原因很简单:全连接把 28×28 的图片展平成 784 个独立的像素,完全丢掉了空间结构信息。 一张猫的图片,把像素随机打乱,全连接网络认不出来了。 CNN(卷积神经网络) 就是来解决这个问题的——它用卷积核在图片上滑动,保留空间结构,捕捉局部特征。这也是为什么 CNN 统治了计算机视觉领域近十年。 前置知识 PyTorch 实战(二):构建第一个全连接网络 AI数学基础(一):线性代数——让机器学会看向量 需要已经会用 PyTorch 搭网络、跑训练循环。 一、CNN 的核心思想为什么全连接不行?全连接层的参数量 = 输入维度 × 输出维度。对于一张 256×256 的彩色图片: 12输入: 256 × 256 × 3 = 196,608全连接层(128个神经元): 196,608 × 128 ≈ 2500 万参数 2500 万个参数就一层! 三层下去直接上亿,根本训不动。 CNN 的三大优势 全连接 CNN 每个像素独立 局...
PyTorch 实战(二):构建第一个全连接网络
引言上篇文章我们学了张量操作和自动微分——相当于拿到了砖头和水泥。这篇我们来盖第一栋房子:用 PyTorch 的 nn.Module 构建全连接神经网络,完成手写数字识别。 写完这篇文章的代码,你就走通了深度学习的完整流程:数据加载 → 模型定义 → 训练 → 评估。 前置知识 PyTorch 实战(一):张量操作与自动微分 机器学习入门:概念与分类全解 尤其是 PyTorch(一)中的 requires_grad、backward()、梯度更新——这些是本文的基础。 一、项目结构总览12345678910111213┌──────────────┐ ┌──────────────┐ ┌──────────────┐│ DataLoader │────▶│ Model │────▶│ Trainer ││ 数据加载器 │ │ 模型定义 │ │ 训练循环 │├──────────────┤ ├──────────────┤ ├──────────────┤│ - MNIST 数...
PyTorch 实战(一):张量操作与自动微分
引言 上一篇文章用了 KNN 做分类,KNN 并不需要梯度。但从神经网络开始,自动求导(Autograd) 就成了最核心的基础设施。 PyTorch 之所以成为深度学习领域的第一框架(没有之一),两个原因: 动态计算图 — 边运行边构建,调试方便,灵活度高 自动求导 — 你只需要定义前向传播,反向传播自动算好 本文从零开始,带你掌握 PyTorch 的两大核心:张量操作 和 自动微分。 前置知识 Python 编程基础(二):变量、数据类型和基本运算 Python 编程基础(三):NumPy——AI工程师的第一件武器 AI数学基础(一):线性代数——让机器学会看向量 会用 NumPy 就够了,PyTorch 的 Tensor API 和 NumPy 几乎一模一样。 一、安装与配置1pip install torch torchvision torchaudio 验证安装: 12345import torchprint(f"PyTorch 版本: {torch.__version__}")print(f"CUDA 可用...
机器学习入门:概念与分类全解
引言你学了 Python,补了数学,知道神经网络长什么样——但机器学习到底是什么? 简单说:机器学习就是让计算机从数据中自动学习规律,然后用学到的规律做预测或决策。 传统编程是你告诉计算机每一步怎么做,机器学习是你给计算机大量例子,让它自己找出规则。 比如识别猫: 传统编程:写规则「有尖耳朵、有胡须、会喵喵叫 → 是猫」——太死板,换只品种就不认了 机器学习:给 10 万张猫和狗的图片,让模型自己发现「猫的特征分布」——新图片来了也能猜 看完这篇,你会掌握机器学习的三大分类、核心概念,并且能手写第一个分类模型。 前置知识 Python 编程基础(一):从零搭建你的AI开发环境 AI数学基础(二):概率论——教机器做不确定的决策 只要会 Python 基础语法就能跟上。不需要高等数学。 一、机器学习的三大分类所有的机器学习问题都可以归入三类: 1. 监督学习(Supervised Learning)有标签数据,模型学习「输入 → 输出」的映射关系。 123# 训练数据:既有特征(花的尺寸),又有标签(品种)# 特征: [花萼长度, 花萼宽度, 花瓣长度, 花瓣宽度]# 标...
AI数学基础(一):线性代数——让机器学会"看"向量
AI数学基础(一):线性代数——让机器学会”看”向量300年前那个改变世界的夜晚1691年的一个秋夜,法国小镇上,一个17岁的少年在昏暗的烛光下写日记。他的名字叫亚伯拉罕·棣莫弗(Abraham de Moivre)。 这个少年可能不会想到,他那天晚上在日记里随手画的一个坐标系——用两条垂直的直线来表示平面上的点的位置——会在300多年后,成为让人工智能”看见”这个世界的基础工具。 你想想看,当你用手机拍照时,照片在电脑眼里是什么? 就是一堆数字。 一张1920×1080的图片,在AI眼里就是一个1920×1080的数字矩阵。每个数字代表一个像素的亮度或颜色值。AI要”看懂”这张图,就得对这些数字进行运算——而这些运算,全都是线性代数。 所以今天,咱们就来聊聊:线性代数到底是什么?为什么AI离不开它? 一、标量、向量、矩阵:从地图坐标到Excel表格1. 标量:就是一个数字最简单的开始。标量(scalar)就是一个单独的数字。 15、3.14、-2、100 比如:”今天气温23度”——这个”23”就是标量。它只有一个数值,没有方向。 2. 向量:有方向的数组向量(vector...
