由图像分类浅谈深度学习
图像分类:计算机视觉核心任务
每一张图片被表示为三维数组的形式
图片由像素点拼接(0-255)
像素点越大在该处的亮度越高
每个像素点的范围都是(0-255)
照射角度,光照强度,形状改变,部分遮蔽(最核心),背景混入都是图像分类需要考虑的地方。
图像分类常规套路
1 收集数据并给定标签
2 训练一个分类器(神经网络)
3 测试,评估
def train(train_images,train_labels):
#build a model for images -> labels…
return model //训练函数
def predict(model,test_images):
#predict test_label using the model…
return test_labels //预测函数
k-近邻算法(不能使用)
计算已知类别数据集中的点与当前点的距离,按照距离依次排序,指定一个k值,选取与当前点距离最小的k个点,确定前k个点所在类别的出现概率,返回前k个点出现频率最高的类别作为当前点预测分类。
优点:简单有效,训练时间复杂度为0
缺点:训练集中文档数与计算复杂度成正比,效率太低。
测试集只能最后用,所以需要新的验证方式
交叉验证:
可以将训练集分为几部分,一部分用来做验证集(调节参数);
1 2 3 4->5
1 3 4 5->2
…
卷积神经网络的应用
卷积操作 ,可以简单的理解成为在一幅图图像上用了10个卷积核从而产生了第一层,REUL就是max(0,thresh)函数,就是说,大于thresh的就是255,否则就是0。POOL操作就是把上一层的结果进行放缩,例如把上一层的2*2邻域内的像素相加,加biase,作用于sigmoid函数之后的结果。之后我们会来详细的探讨这些操作。最后呢有一个softmax回归。就是对应于逻辑回归,softmax可以是多分类器。会发现是一个汽车的概率最大了,我们认为这个输入的图片就是汽车。这样就能比较准确的识别一张图片了。