这是2017年,斯坦福大学,李飞飞教授及其博士生讲授的CS231n课程的第二节,主要内容是KNN算法、距离度量算法、超参数的选择方法、线性分类器的简单介绍。
所有图像来自课程ppt:http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture2.pdf
内容来自课程视频:https://www.youtube.com/watch?v=OoUX-nOEjG0&list=PL3FW7Lu3i5JvHM8ljYj-zLfQRF3EO8sYv
全文都是看英文字幕所得,如有翻译转诉不恰当之处请包涵。
引入
首先,我们要意识到,对于这样一个图像:
我们见到的是一只猫,而计算机见到的仅仅是一堆数据。
明显的,即使一些在我们人眼看来很轻微的变化,比如:光照、猫的姿态、猫的种类、遮挡物、背景,其在数据上的变化都是巨大的。
那么我们该如何通过对数据的分析来对图像进行分类呢?
一开始的想法可能是定义一个函数,里面有一些很高级的算法,输入图片,经过算法运算,获得标签
def classify_image(image):
#some magic algorithm here
return class_label
比如lecture1中提到的通过边缘检测和区域识别来分类