斯坦福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距离(曼哈顿)

在这里插入图片描述

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距离,所以测试过程非常慢。
斯坦福CS231n课程笔记(第二课)_第1张图片

4、设置超参数

KNN,K近邻方法根据最近距离分类
超参数:
K=1, 3, 5
L1, L2距离
斯坦福CS231n课程笔记(第二课)_第2张图片
数据集:
斯坦福CS231n课程笔记(第二课)_第3张图片

5、线性分类

斯坦福CS231n课程笔记(第二课)_第4张图片
W→10×3072 权重训练
X→3072×1 输入图像
b→10×1 偏执项(对于不公平训练集,使训练更加偏向于较多的类)

你可能感兴趣的:(深度学习)