【深度学习与神经网络】学习笔记1

本文介绍了深度学习中的K近邻算法(KNN),讨论了K值选择、距离度量和分类决策规则的影响,并提出了应对样本不平衡的解决方案。同时,文章还涉及线性分类损失函数的L2正则化,Softmax分类器以及梯度下降和反向传播在优化过程中的应用。
摘要由CSDN通过智能技术生成

对于图像处理方面的任务来说,常规的套路:

  1. 收集数据并给定标签
  2. 训练一个分类器
  3. 测试,评估
def train(train_images, train_labels):
    # build a model for images -> labels...
    return model

def predict(model, test_images):
    # predict test_labels using the model...
    return test_labels

在这里插入图片描述

K近临算法(KNN)

在这里插入图片描述

  • 如果K=3,绿色圆点的最近的3个邻居是2个红色小三角形和1个蓝色小正方形,少数从属于多数,基于统计的方法,判断绿色的这个待分类点属于红色的三角形一类
  • 如果K=5,绿色圆点的最近的5个邻居是2个红色三角形和3个蓝色的正方形,还是少数从属于多数,基于统计的方法,判定绿色的这个待分类点属于蓝色的正方形一类

对于未知类别属性数据集中的点:

  1. 计算已知类别数据集中的点与当前点的距离
  2. 按照距离依次排序
  3. 选取与当前距离最小的K个点
  4. 确定前K个点所在类别的出现概率
  5. 返回前K个点出现频率最高的类别作为当前点预测分类

概述:KNN算法本身简单有效,它是一种lazy-learning算法。分类器不需要使用训练集进行训练,训练时间复杂度为0。KNN分类的计算复杂度和训练集中的文档数目成正比,也就是说,如果训练集中文档总数为n,那么KNN的分类时间复杂度为O(n)。

对于K值的选取,距离度量和分类决策规则是该算法的三个基本要素。

  • KNN算法缺点:当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。
  • 解决办法:不同的样本给予不同的权重项

计算方法:
在这里插入图片描述
KNN算法代码:

import numpy as np

class NearestNeighbor:
    def __init__(self):
        pass

# 记录所有训练数据
def train(self, X, y):
    """X is N*D where each row is an example. Y is l-dimension of size N"""
    # the nearest neighbor classifier simply remembers all the training data
    self.Xtr = X
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值