产品经理也能动手实践的AI(二)- 做个识别宠物的AI

本文是产品经理实践AI系列的第二篇,通过FastAI库,介绍如何创建一个宠物识别模型。核心代码仅3行,实现了94.3%的识别准确率。文章涉及迁移学习、错误率、损失、验证组等概念,并讲解了如何调试模型,包括使用解释器、调整学习率以提高准确率至95.8%。

上一篇《产品经理也能动手实践的AI(一)- FastAI介绍》,介绍了为什么选择FastAI,为什么适合产品经理,为什么值得学习这项技能。而写这篇文章的目标是,看完了之后可以更好的看懂教程中的内容。

概览

直接上例子,核心代码一共3行:

data = ImageDataBunch.from_name_re(path_img, fnames, pat, ds_tfms=get_transforms(),size=224) learn = cnn_learner(data, models.resnet34, metrics=error_rate)learn.fit_one_cycle(4)

640?wx_fmt=png

识别准确率是94.3%,在2012年,宠物识别的准确率才59%

核心步骤

  1. 创建图像数据 databunch object

  2. 创建学习对象 learn object

  3. 开始训练 fit one cycle

  4. 调试

    1. 保存之前的模型

    2. 数据纠错

    3. 找到学习率

    4. 重新训练

前3个就是训练一个神经网络必要的代码,而之后的那些都是从各个角度去发现问题,然后提高准确率。

这里还有几个重要概念:

  1. 迁移学习 transfer learning:类似于大师已经提供了一套学习方法,我们在这基础上训练自己的学习方法;

  2. 错误率 error rate:就是验证组数据,预测错误的百分比;

  3. 损失 loss:我形象的称为打脸指数,就是越自信,但是却预测错误,那loss就高

  4. 验证组 validation set:数据一般分为训练组和验证组,验证组就是用来验证训练好的模型的准确度,验证组的数据是AI没有见过的数据;

  5. 过度拟合 overfit:有点类似于牛肉吃多了,吃什么都觉得像牛肉味……我举不出更好的例子了,有想法记得给我留言;

  6. 学习率 learning rate:就类似于1个字1个字读→一个个词读→一句句话读,1个个字读就属于小的学习率,比较容易发现更细节的特征点,而大的学习率会发现更宏观的特征点;

详细讲解

这节课的重点是跑通一个模型,并且调试到比较好的效果,最终将准确率提高到了95.8%。

Jeremy专门做了很多函数,可以一键导入数据,而不是在第一节课就制造N多阻碍,所以只要在Jupyter notebook里一步步运行就一定可以跑通,但是每一步或者每一个参数代表什么,是需要在实践的过程中搞清楚的,前3个核心步骤基本看教程都很容易搞懂,不懂的查找文档也很好理解。

这里重点说下调试部分,首先需要保存一下现有训练的结果:

learn.save('stage-1')

然后可以通过2种方式去调节模型,一是创建 解释器interpretation,找到异常图片,然后删掉它(下节课才讲如何删);二是找到合适的 学习率learning rate进行 微调fine-tuning。

先看解释器,提到了2个函数:plot_top_loss 和 most_confused,第一个是把错的最离谱的图片都打出来,第二个是把猜错次数最多的类别给打出来。这样就非常容易发现问题,比如把出错次数最多的打出来之后,发现这2种狗确实很接近,人的话也不是特别容易区分,这就可能需要单独的大量的图片训练。

然后是fine-tuning,这里是重点!!多强调一下,要想微调,就要搞清楚图像识别的原理,或者叫CNN(convolutional neural network)卷积神经网络的原理,作者拿出了Clarify的CEO发表的一片通过视觉化理解卷积网络的论文,详细介绍了其中的原理。

640?wx_fmt=png

首先第一层的训练,属于学习率特别低的训练,机器找到了边缘的规律,发现这几种颜色的渐变是特别常见的。

640?wx_fmt=png

然后第二层,基于第一层找到的边缘,发现这些边缘的连接,比如直角或者一个弧形是比较有共性的东西。

640?wx_fmt=png

然后第三层,基于第二层发现的线条,发现了各种形状。

640?wx_fmt=png

然后第四层第五层,感觉已经可以识别特定的形状和特定的物体了,随着层级的提高,能识别的共性图像的复杂性也在提高,是因为学习率的提高,机器会选择性的忽略细节,反而更多的关注宏观的相似。

第一次训练用的架构叫做ResNet34,是一个基于上百万张图片训练了34层之后得到的一个通用的图片识别模型。之前的训练就是在这个模型之后增加个4个层,训练之后的结果就已经非常不错了,如果想变得更好,就只能将之前的模型解冻unfreeze,然后连贯起来重新训练,并通过

learn.lr_find()learn.recorder.plot()

找到loss和lr的关系

640?wx_fmt=png

这张图可以看到当learning rate超过 10-4之后,loss明显升高,就说明之前默认的0.003的lr偏高了,所以调整lr

learn.fit_one_cycle(2, max_lr=slice(1e-6,1e-4))

至于为什么调到这个区间,之后的课程会将,而现在就是一个可以充分实践的机会。

最后得出的准确率94.7%,比之前的94.3%只高了一点点,而95.8%的准确率是通过ResNet50来实现的,因为这个pre-train的模型跑了50层,识别率更高,但非常占用计算机性能。

好了,草草的把介绍写完了,很多东西没法一篇文章写完,一方面得自己多动手尝试去感受,另一方面确实有些概念得逐渐理解,希望这篇文章让你对FastAI运作的模式有了一个清晰的认识。


<think>我们有两个毕设题目选项:面向桌面陪伴的智能交互宠物机器人和无人机。我们需要从多个维度进行比较,包括技术复杂度、开发成本、时间投入、创新空间、就业相关性等。 1. **技术复杂度**: - **桌面宠物机器人**:涉及机械结构(如果是实体)、传感器(如摄像头、麦克风、触摸传感器)、语音识别、自然语言处理、情感计算、运动控制(如果有动作能力)等。如果实体化,还需要考虑机械设计和电机控制。 - **无人机**:涉及飞行控制(姿态稳定、导航)、传感器(IMU、GPS、视觉传感器)、无线通信、路径规划、避障等。飞行控制需要实时性,对算法和控制理论要求较高。 2. **开发成本**: - **桌面宠物机器人**:如果采用仿真,成本较低;如果实体化,需要机械部件、电机、传感器等,成本中等。若使用树莓派等开发板,硬件成本可控。 - **无人机**:需要无人机机架、飞控板、电机、电调、电池、传感器等,成本相对较高,且存在炸机风险,可能需要多次更换部件。 3. **时间投入**: - **桌面宠物机器人**:软件部分(如交互系统)开发周期较长,但硬件组装相对简单。如果使用现有平台(如树莓派+摄像头+麦克风),可以快速搭建。 - **无人机**:硬件组装调试需要较长时间,飞控算法(如PID调参)可能需要大量时间。此外,飞行测试存在安全风险,需在开阔场地进行,可能更耗时。 4. **创新空间**: - **桌面宠物机器人**:可以在交互体验上创新,如情感识别、个性化交互、学习用户习惯等。也可以结合AR/VR技术。 - **无人机**:可以在自主导航、集群飞行、特定应用(如送货、巡检)等方面创新。 5. **就业相关性**: - **桌面宠物机器人**:适合从事人工智能、人机交互、软件工程、机器人应用开发等方向。 - **无人机**:适合控制工程、自动化、航空、物流等领域。 6. **毕业设计展示效果**: - **桌面宠物机器人**:交互效果直观,容易展示情感交互、语音对话等,但实体动作可能受限。 - **无人机**:动态飞行展示效果好,但受场地限制,且可能因环境因素(如风)影响演示。 7. **学习资源**: - **桌面宠物机器人**:可利用现有AI平台(如百度AI、科大讯飞)的语音识别和NLP服务,降低开发难度。 - **无人机**:有成熟的开源飞控(如PX4、ArduPilot)和仿真环境(如Gazebo),但深入修改控制算法需要较强理论基础。 8. **安全性**: - **桌面宠物机器人**:相对安全,在桌面环境运行。 - **无人机**:高速旋转的螺旋桨有安全隐患,需特别注意。 9. **扩展性**: - **桌面宠物机器人**:后续可扩展为智能家居控制中心、教育机器人等。 - **无人机**:可扩展为行业应用,如农业植保、电力巡检等。 10. **个人兴趣与技能**: - 如果对人工智能、人机交互感兴趣,选择桌面宠物机器人。 - 如果对控制理论、航空航天感兴趣,选择无人机。 综合以上,我们可以给出如下建议: 如果你更偏向软件和交互设计,且希望控制成本和风险,桌面宠物机器人可能更适合。如果你对硬件和控制算法有浓厚兴趣,且有足够的预算和实验条件,无人机是不错的选择。 下面我们将用表格形式对比两个选题: </think> 基于您提到的两个毕设选题——**面向桌面陪伴的智能交互宠物机器人**和**无人机系统**,以下是系统性对比分析及选择建议: --- ### 一、核心维度对比 #### 1. **技术复杂度** | 维度 | 桌面交互宠物机器人 | 无人机系统 | |------------------|----------------------------------------|----------------------------------------| | **硬件** | 中低复杂度(舵机×3-5,传感器×3-4)[^1] | 高复杂度(电机×4,IMU,GPS,气压计等) | | **控制算法** | 基础运动控制+行为决策树 | 实时飞控(PID+状态估计) | | **核心公式** | 语音识别:$P(w\|s)=\frac{P(s\|w)P(w)}{P(s)}$ | 姿态解算:$\dot{\mathbf{q}} = \frac{1}{2}\mathbf{q} \otimes \begin{bmatrix} 0 \\ \boldsymbol{\omega} \end{bmatrix}$ | | **难点** | 自然交互逻辑设计 | 动力系统稳定性(需满足$\tau_m > J\dot{\omega} + k\omega^2$) | #### 2. **开发成本与周期** ```mermaid pie title 开发成本占比 “硬件” : 45 “算法开发” : 30 “调试测试” : 25 ``` - **宠物机器人**: - 成本:¥500-¥1500(树莓派+3D打印外壳+传感器) - 周期:12-16周(可复用80%开源代码[^2]) - **无人机**: - 成本:¥1200-¥3000(机架+电调+图传) - 周期:20-30周(飞控参数调优占60%时间) #### 3. **创新空间** | 方向 | 宠物机器人创新点 | 无人机创新点 | |--------------|--------------------------------------|----------------------------------| | **软件** | 情感交互引擎,个性化学习模型 | 自主避障路径规划,集群协同 | | **硬件** | 触觉反馈模块,AR投影交互 | 折叠结构设计,能耗优化 | | **展示效果** | ★★★★★(直观易互动) | ★★★☆☆(需飞行场地) | #### 4. **就业适配性** - **宠物机器人**: ✅ 服务机器人工程师 ✅ 人机交互设计师 ✅ IoT产品经理 - **无人机**: ✅ 飞控算法工程师 ✅ 自动驾驶研发 ✅ 测绘/巡检应用开发 --- ### 、选择决策树 ```mermaid graph TD A[选择目标] --> B{偏好方向?} B -->|人机交互/人工智能| C[宠物机器人] B -->|控制理论/嵌入式| D[无人机] C --> E{预算限制?} E -->|<1500元| F[推荐宠物机器人] E -->|>2000元| G[可升级传感器] D --> H{实验条件?} H -->|有开阔场地| I[推荐无人机] H -->|室内受限| J[考虑仿真开发] ``` --- ### 三、推荐策略 #### 场景1:**优先选择桌面宠物机器人如果** - 期望快速出成果(原型开发<10周) - 擅长Python/机器学习但硬件经验少 - 注重人机交互创新(如结合ChatGPT API[^3]) #### 场景2:**优先选择无人机如果** - 具备控制理论基础(PID/滤波算法) - 有电子设计能力(PCB/焊接经验) - 目标行业为航空航天或自动驾驶 --- ### 四、风险对冲建议 1. **共性风险** - 均需备用方案:宠物机器人可先用**虚拟宠物APP**验证逻辑[^2],无人机用**Gazebo仿真**测试飞控 2. **专项优化** ```python # 宠物机器人成本控制技巧 if budget < 1000: 用舵机云台替代机械臂 采用离线语音识别(Snowboy) else: 增加OLED表情屏+压力传感器 ``` --- ### 结论 > **桌面宠物机器人**更适合: > - 聚焦软件创新与人机交互 > - 有限预算/时间下的高效开发 > - 展示性强且易获用户反馈[^3] > > **无人机**更适合: > - 深入硬件与控制算法研究 > - 解决实际工程问题(如定位精度) > - 进入高壁垒技术领域 最终选择应匹配您的**技能基础**和**职业规划**,两者均能体现完整开发流程,但宠物机器人更易在毕设周期内呈现亮点成果[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值