以下内容全是学习自一位学长的读书笔记!!!!
首先是存在一些还没有解决的问题:
1.语义分割或知觉分组:理解每个像素的意义而不是标记图片
2.动作识别:有效识别视频中的动作
3.图片理解:不仅是明白图片里有什么,而是理解图片在发生什么
等等
图像分类
顾名思义,就是对输入的图像,通过一定的算法,将图片归类。
主要是在于图片在计算机的角度来看就是一堆杂乱的像素,并且每个像素都是用RGB来描述的。这就是所谓的语义鸿沟(图片所描述的物体和计算机看到的数字举证之间的巨大差距)。
处理问题的算法:
比较直接的就是先确定每个物体的边缘,再得到他的特征用来识别,但这种算法的可变性不强。
所以新的方法就是:
数据驱动的算法,(靠大数据的存在),也就是训练出来的,依靠搜集大量的标注了种类的图片,设计算法来让计算机识别,计算机就会搜集所有的数据,并根据算法的思路来总结这些图片的特点,从而去识别那些没有被分类的(总之就是,先训练,再去实操),因此会存在两个部分,一个是训练函数,也就是通过标注图片的特点来得到分类知识,另一个就是测试函数,通过总结出来的知识去识别图片之后,通过错误率来判断分类的精准度。
K近邻算法:他就是一种相对来说比较简单的,首先在训练阶段,就直接记录下所有的训练数据,然后在测试阶段,那测试的图片和所有的训练数据进行对比,选择他最相似的图片,作为他的种类。
问题在于:怎么判断这两个图片相似,是使用距离的,因为图片可以看作是一个矩阵,然后用带比较的图片直接互相比对,也就是用对应位置的差的绝对值并求和,最终结果作为图片的距离。
但是显而易见,他的效率不高,不适合那种数量大且多的图片。
而对于数据的分类,在书中也有提到:
大概会分成
1.训练集和测试集 2.训练集,测试集和验证集 3.交叉验证(从数据中抽出一部分作为测试集,再把其余的部分分成几份,然后每次从每份数据中抽出一份做验证集,其余做训练集,如从重复到所有的数据都做过一次验证集,然后把所有的结果都显示出来,相对来说比较适合小数据)