CS321N笔记(1)

1. 图像分类数据和label分别是什么,图像分类存在的问题与挑战

1)数据是输入的图片,label是图片的类别标签
2)图像分类需要大量的计算空间和时间,视觉角度的变化、光照变化、形态变化都可能导致图像的数据结构产生变化,然而图像的类别却是不变的,这是一个难点。背景的变化也是一个问题。即使是同一类物体见也有差异。找到一个可以同时处理这些问题的算法是很难的。

2. 使用python加载一张彩色图片,观察像素值

代码如下:

from PIL import Image
import torch
from torchvision import transforms
import numpy as np
import matplotlib.pyplot as plt

img_path = '/data/Images/1/8b9389c57c1eca099dc87931de0ff63752e4c0915c5bb81a2e4f70ad.jpg'

image = Image.open(img_path)
image = transforms.ToTensor()(image)
print(image.size())

fig=plt.figure()
img = np.transpose(image.numpy(),(1,2,0))
plt.imshow(img)

打印结果如下:
python加载的彩色图片

3. L1范数,L2范数数学表达式,分别适用于什么情况

L1范数适用于向量中某一元素具有重要意义的情况(旋转坐标系时,L1距离会发生改变),公式如下:
d 1 ( I 1 , I 2 ) = ∑ p ∣ I 1 p − I 2 p ∣ d_1(I_1,I_2) =\sum_p\vert I^p_1 -I^p_2\vert d1(I1,I2)=pI1pI2p
在这里插入图片描述
L2范数不会随着坐标轴的旋转而改变,适用于处理通用向量的分类问题,公式如下:
d 2 ( I 1 , I 2 ) = ∑ p ( I 1 p − I 2 p ) 2 d_2(I_1,I_2) =\sqrt{\sum_p( I^p_1 -I^p_2)^2} d2(I1,I2)=p(I1pI2p)2
在这里插入图片描述

4. KNN算法

KNN算法是在k个点中寻找最最接近自己的K个数据样本归为同一类,步骤[1]如下:
1)计算测试数据与各个训练数据之间的距离;
2)按照距离的递增关系进行排序;
3)选取距离最小的K个点;
4)确定前K个点所在类别的出现频率;
5)返回前K个点中出现频率最高的类别作为测试数据的预测分类。

KNN的算法的训练复杂度是 O ( 1 ) O(1) O(1),在测试时的复杂度是 O ( N ) O(N) O(N),KNN算法所需的计算时间很长,而且L1、L2这些距离衡量方式不适合测量图像直接的距离,因此不适用于图像问题。

5. cifar10数据集

cifar10 数据集具有10类图片包括:飞机、汽车、鸟、猫、狗、鹿等等。该数据集有50000个训练图片集以及10000个测试图片集,是现有的运用广泛的目标分类图像数据集。

6. 如何选择合适的超参数

为了选择合适的超参数,我们需要将数据集合理的划分。测试集需要和训练集验证集完全隔离开。

Reference

[1] https://www.cnblogs.com/ybjourney/p/4702562.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值