大白话:二元分类如何从判断图片是否有猫

图片在计算机眼里长啥样

        我们拍的每一张照片,在计算机里都是由成千上万的 “小方块” 组成,这些小方块叫像素。就像用乐高积木拼出一幅画,每个像素就是一块不同颜色的积木。比如一张普通手机拍的照片,可能有几百万个像素。

        而颜色呢,计算机不用红、黄、蓝这些词,它靠颜色通道来 “理解” 颜色。最常用的是 RGB 通道,分别代表红色(Red)、绿色(Green)、蓝色(Blue)。每个像素都有三个数字,分别对应红、绿、蓝的强度。比如(255, 0, 0)就是最纯的红色,(0, 0, 0)是黑色,(255, 255, 255)是白色。计算机就靠这一堆数字,“脑补” 出整张图片的样子。

收集数据:给计算机 “投喂”

        要让计算机学会找猫,得先给它 “投喂” 很多图片,这些图片就是训练数据。就像教小孩认猫,你得给他看各种猫的照片:趴着的猫、跑着的猫、橘猫、黑猫…… 同时,还要准备一些没有猫的图片,比如风景照、人的自拍。

        每张图片旁边都要贴个 “标签”,告诉计算机这张图 “有猫” 还是 “没有猫”。一般用数字表示,比如 “1” 代表有猫,“0” 代表没有猫。这一步就像给计算机准备了一本 “猫猫识别教材”。

选个算法:用逻辑回归 “画条线”

        现在问题来了:计算机怎么从一堆像素数字里,判断有没有猫呢?这就得靠二元分类算法。这里用最简单的逻辑回归算法举例,它的原理就像在一大堆数据里 “画一条线”,把有猫和没有猫的图片分开。

        逻辑回归有个核心公式,看起来有点复杂:h_{\theta}(x) = \frac{1}{1 + e^{-\theta^{T}x}}    别被符号吓到!简单说:

        x 就是图片里所有像素的数字(经过整理后的数据),计算机把图片 “翻译” 成一堆数字,喂给这个公式。

         \Theta是一堆需要调整的数字(比如 θ1、θ2、θ3…),每个 θ 对应 x 里的一个像素数字,调整它们能让公式更准确。比如某个 θ 专门负责判断 “绿色像素多不多”,另一个 θ 负责判断 “有没有毛茸茸的边缘”。初始时 θ 是随机的,比如随便设成 0.1、-0.5 这样的数。

        \theta^{T}x是把 \Thetax 按一定规则 “乘” 起来(专业叫矩阵乘法),算出一个值,比如这个值是3。

        把这个值代入到\frac{1}{1 + e^{-\theta^{T}x}}里(\frac{1}{1 + e^{-\theta^{T}x}}会算出一个 0 到 1 之间的数),最后这个代入后效果是\frac{1}{1 + e^{-3}},e 是自然常数(约 2.718),算完后得到 0.95,这就是 “有 95% 概率是猫”。

训练模型:让计算机 “疯狂研究”

        计算机拿着公式和训练数据,开始疯狂 “学习”。它先随便猜一组参数 \theta,然后用公式计算每张图片 “有猫” 的概率。算完后,和图片中已经打过“有猫”的标签(0 或 1)对比,看看自己猜得准不准。

        如果猜得不准,计算机就会调整参数\theta ,让下次猜得更准。这个过程像不像研究考试的你:先随便写个答案,发现和正确答案不一样,就改一改,直到答案接近正确为止。

        计算机用一个叫损失函数的东西,衡量自己猜得有多差。逻辑回归常用的损失函数叫交叉熵损失,公式是这样:J(\theta) = - \frac{1}{m} \sum_{i=1}^{m} [y^{(i)} \log(h_{\theta}(x^{(i)})) + (1 - y^{(i)}) \log(1 - h_{\theta}(x^{(i)}))]

看着复杂,但意思很简单:

  • m是训练图片的总数。
  • y^{(i)} 是第(i)张图片的真实标签(0 或 1)。
  • h_{\theta}(x^{(i)}) 是计算机预测第(i)张图片 “有猫” 的概率。
  • 整个公式算出来的值越小,说明计算机猜得越准。

        计算机用梯度下降法来调整参数 \theta ,不断减小损失函数的值。这个过程就像下山,计算机朝着损失函数值最小的方向,一步步调整参数,直到找到一个 “差不多准” 的参数组合。

         参考逻辑回归的损失函数详解

生成模型:计算机 “毕业” 啦!

        当计算机把损失函数值降到足够小,或者达到一定训练次数后,它就 “毕业” 了!这时它找到的那组参数 \theta,和逻辑回归公式结合起来,就成了一个模型。这个模型就像计算机的 “猫猫识别大脑”。

        以后再给计算机一张新图片,它直接把图片的像素数字喂进模型,算出一个 0 到 1 之间的概率。如果概率大于 0.5(比如 0.7),就判断 “这张图有猫”;如果小于 0.5(比如 0.3),就判断 “没有猫”。

实际应用:可能没那么简单

上面说的是理想情况,实际用起来还会遇到很多问题:

  • 数据不够:如果只给计算机看 10 张猫的图片,它可能学不会。一般需要几千甚至几万张图片,数据越多,模型越准。
  • 图片太复杂:现实中的猫可能被挡住、光线太暗,计算机可能认不出来。这时就得用更复杂的算法,比如卷积神经网络(CNN),专门处理图像数据。
  • 过拟合:计算机可能学 “过头” 了,只认识训练数据里的猫,遇到新的猫就不会认了。需要用一些技巧,比如正则化,让模型更 “聪明”。

        不过,只要数据够多、算法选得好,计算机就能变成一个超厉害的 “找猫猫小能手”!

         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值