斯坦福CS231n课程笔记(第二课)

斯坦福课程

1、图像分类

Challenges:光照、角度、尺度、形变、遮挡等。

2、数据驱动

图像分类一般方法:

def classify(image):
    # 算法
    return class_label

数据驱动方法:

# 训练模型
def train(train_images, train_labels):
    # ML算法
    return model
# 预测结果
def predict(model, test_images):
    # 预测
    return test_labels

3、L1距离(曼哈顿)

d 1 ( I 1 , I 2 ) = ∑ p ∣ I 1 p − I 2 p ∣ d_1(I_1,I_2) = \sum _p |I^p_1 - I^p_2| d1(I1,I2)=pI1pI2p

import numpy as np

class NearestNeighbor:
    def __init__(self):
        pass
    #训练数据
    def train(self, X, y):
        self.Xtr = X
        self.ytr = y
        
    def predict(self, X):
        num_test = X.shape[0]
        Ypred = np.zeros(num_test, dtype = self.ytr.dtype)
        #计算每一个测试图像的L1距离,预测标签
        for i in xrange(num_test):
            distances = np.sum(np.abs(self.Xtr - X[i, :]), axis=1)
            min_index = np.argmin(distances)
            Ypred[i] = self.ytr[min_index]
            
        return Ypred

缺点:对于图像来说,训练过程快,而测试过程需要一个个去比对L1距离,所以测试过程非常慢。

L1距离(曼哈顿)
d 1 ( I 1 , I 2 ) = ∑ p ∣ I 1 p − I 2 p ∣ d_1(I_1,I_2) = \sum _p |I^p_1 - I^p_2| 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,K近邻方法根据最近距离分类

超参数: K=1, 3, 5

L1, L2距离
K=1, 5
数据集:
在这里插入图片描述

5、线性分类

在这里插入图片描述

W→10×3072 权重训练
X→3072×1 输入图像
b→10×1 偏执项(对于不公平训练集,使训练更加偏向于较多的类)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小吕同学吖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值