MNIST 机器:一款可以用手进行训练的神经网络
扫描二维码
随时随地手机看文章
神经网络通常是通过数学、代码和布满箭头的图表来进行教学的。我觉得这没什么问题。但有时感觉人们会说:“别担心,损失会减少的。”然后就希望你不再提出疑问了。
我想做出一些你能够实际触摸到的东西。
我想要制造一台这样的机器:
•输入的是实物。
•这些重量是实实在在的。
•这些神经元是实实在在存在的。
•而“训练”这一概念也不再让人觉得像是某种无形的计算机魔法了。
所以我制作了 MNIST 机器。
这是一个带有发光按钮、旋钮和显示屏的盒子,通过它我可以手动训练一个小型的数字识别神经网络。它并非能高效地完成这项任务。那样做简直是荒谬至极。它采用的方式能让人们更好地理解其中的过程。
而对我来说,那则更加有趣。
其功能是什么
以下是其运作方式:
•我在一个 5×5 的网格上按按钮来绘制一个数字,比如数字 3 。
•我从 5 个隐藏神经元中挑选出一个。
•我转动了 25 个旋钮来改变输入到那个神经元中的信号强度。
•我通过另一组旋钮来控制输出层的效果。
•我按下正确的输出按钮,比如“3。”
•该机器会在分段显示屏上显示损失情况。
•我不断调整权重,直到损失值变得更小为止。
所以基本上,我是在亲手完成梯度下降的过程,这样我就能更好地理解它了。
为何这很酷
很多机器学习技术是难以理解的。
您会听到诸如以下这样的词语:
•重量
•神经元
•激活;启动;启用
•损失
但这些都只是些空洞的言辞,除非你能直接去操作它们才行。
在这台机器中:
•重量就是一个实实在在的控制旋钮。
•一个神经元就像是一个实实在在的按钮,你可以对其进行选择。
•一个数字是你自己画出来的。
•而这种损失是一个数值,当你做事出错时这个数值会上升,而当你最终停止这种错误行为时,这个数值又会下降。
这样一来,整个事情就更容易理解了,甚至对于小孩子来说也是如此。
这样一来,机器学习就更像是一个谜题、一场游戏,或者是一个小小的发光机器人,它会礼貌地告诉你你自制的“3”简直糟糕透顶。
注意:本次不附上任何电路图,因为我的电路图是错误的!在收到印刷电路板后,我不得不对一些线路进行裁剪等操作,因为我在绘制图纸时出现了错误。以下是我在制作这个东西时拍摄的一些照片:
总的来说,我非常享受这个项目。
那真是很有趣,ChatGPT 也帮了大忙。我学到了很多关于焊接和拆焊的知识,还明白了像这样的项目搭建过程中需要多么小心谨慎。
例如,我先在 EasyEDA 软件中设计好了电路板(这个过程很有趣),然后将这些电路板制作出来并寄给了我,之后我完成了所有的焊接工作。之后我使用了一台热成像相机,发现其中一个芯片异常发热。原来是我不小心将那个芯片的接地端和电源端搞反了。那个芯片本身没问题,但最终却损坏了另一个芯片。我更换了那个芯片,但仍然无法正常工作,后来发现问题在于大约五年前我购买 Pi Pico 时对其进行的某些弱化焊接。这部分确实让我感到很沮丧,甚至想要放弃,但其余部分还是很有趣的!我非常感激能够完成这个项目。
本文编译自hackster.io





