15 行代码教 AI 开灯关灯:用神经网络做“聪明的节能管家”
不靠规则,不写 if-else,只靠“试错 + 奖励”,让 AI 学会智能控制灯光。 这就是 强化学习(Reinforcement Learning) 的魅力!
💡 问题:灯,到底该什么时候开?
你家的灯还在手动开关? 或者用“有人就开,没人就关”的简单逻辑?
但现实更复杂:
白天有人,但阳光充足
→ 不用开灯,省电!
深夜有人,房间很暗
→ 必须开灯,体验优先!
没人的时候
→ 灯开着就是浪费!
能不能让系统 自己学会 在各种情况下做出最优决策?
答案是:能!用强化学习 + 神经网络。
🤖 我们的目标:训练一个“智能灯控 AI”
它要能看懂三个信息( 状态,State ):
- 是否有人
(红外传感器)
-
当前光照
(光敏电阻)
-
现在几点
(系统时钟)
然后决定一个动作( Action ):
开灯(1)
或
关灯(0)
而它的“老师”,只通过一个数字—— 奖励(Reward) 来告诉它:
“你刚才做得好,+1 分!” 或 “浪费电了,-0.3 分!”
久而久之,AI 就学会了 省电又贴心 的策略。
🧠 核心思想:用神经网络代替人工规则
传统做法:写一堆 if-else
强化学习做法: 让神经网络自己学这个“阈值”和“逻辑”!
输入状态 → 神经网络 → 输出每个动作的“预期收益”(Q值) → 选收益最高的动作
这就是 Deep Q-Network(DQN) 的精髓。
💻 极简代码演示(仅 20 行核心)
✅ 全程 无标签、无监督 ,只靠奖励信号自我进化!
🔍 概念与代码一一对应
| RL 概念 | 代码体现 | 作用 |
|---|---|---|
| State(状态) | [occupied, light, time_norm] | 描述当前环境 |
| Action(动作) | action = 0 or 1 | 智能体的决策 |
| Reward(奖励) | reward = … | 反馈信号,指导学习方向 |
| Policy(策略) | model(s).argmax() + ε-探索 | 如何选动作 |
| Q-Network | model = nn.Sequential(…) | 用神经网络估计 Q(s,a) |
| Learning | loss.backward() + optimizer.step() | 参数更新,越学越聪明 |
✅ 训练后,AI 学到了什么?
我们测试几个典型场景:
| 场景 | AI 决策 |
|---|---|
| 🌙 深夜(3点),有人,房间很暗 | ✅ 开灯 |
| ☀️ 正午(12点),有人,阳光充足 | ✅ 关灯 (省电!) |
| 🌃 晚上(22点),无人 | ✅ 关灯 |
| 🌆 傍晚(18点),有人,光线昏暗 | ✅ 开灯 |
它没有被写死规则,却 自己总结出了“合理开灯”的智慧 !
🌍 这不只是玩具:真实应用场景
🏢
智能办公楼
:自动调节照明、空调,年省电费 20%+
🏠
智能家居
:与米家、HomeKit 集成,无感节能
🏫
教室/会议室
:人走灯灭,人来灯亮,无需改造电路
核心都是同一个 RL 框架 ——只需换状态、动作、奖励!
🚀 为什么这很重要?
强化学习,是让机器具备 自主决策能力 的关键技术。
它不依赖人类经验写规则,而是:
- 感知环境
(状态)
-
尝试行动
(动作)
-
接受反馈
(奖励)
-
自我优化
(学习)
从一盏灯,到自动驾驶、机器人、金融交易——底层逻辑相通。
💬 结语
你不需要造出 AlphaGo,才能用上强化学习。 从一个灯开始,你就能构建真正“会思考”的智能系统。
代码虽小,思想巨大。 真正的 AI,不是更复杂的模型,而是更聪明的问题建模。
✅ 动手试试? 只需安装 PyTorch,复制上方代码,几分钟就能看到 AI 学会“聪明开灯”!
评论