计算机可以模拟“模糊的记忆”吗?

2018-09-04 11:22:38 +08:00
 Morriaty

人类是有“模糊的记忆”的概念的,比如儿时玩伴,名字是叫王小二呢,还是张小四呢?五年没听过的老歌,是 111235 呢,还是 555724 呢?

那计算机如何模拟这种“模糊”的效果呢?计算机的记忆,无论是在硬盘里还是内存,似乎都是有或无二元对立的

select id, name from friends where meet_age_at=13;


id | name 
-- | --
1  | Harry Potter
2  | null

是因为计算机是数字信号,而生物是模拟信号吗?

6573 次点击
所在节点    程序员
58 条回复
dawn009
2018-09-04 14:38:58 +08:00
@PureWhiteWu #15 读取到的一段数据 IO 校验失败,说明已损坏。再次尝试读取,读取到的内容仍然校验失败,但和上一次有所不同。这段数据究竟是 000110 呢,还是 100101 呢?这是一段模糊的数据
newtype0092
2018-09-04 14:39:20 +08:00
相当于一个搜索算法吧,记忆中的儿时玩伴是一个对象,假设里面有姓、名、性别、年龄、样貌等等,都存在一个图里。
当你回想的时候,就是从一个点开始联想(搜索),假设先搜到“姓=马”,然后搜到“名长度=2 ”,然后“名[1]=梅”,这时候你不知道“名[0]”,就只是想起,我有个玩伴叫马什么梅?
想到一半头疼放弃,这是内存不够溢出了。
想到一半有别的事干扰,这是 cpu 被抢占了。
想很久没有结果,这是任务执行超时了。
记不起来具体是 a 还是 b,这是有脏数据不一致了。
这些都算模糊记忆吧。
menc
2018-09-04 14:42:25 +08:00
来看看 GAN,一种神经网络,对“人脸”这个概念的认识就是模糊的
menc
2018-09-04 14:44:24 +08:00
@menc ls 这个图像不像梦里的图?局部清晰,局部模糊,能看出大概模样,却又不完全真切。这就是模型生成的人脸,代表了模型对人脸的理解。

GAN 就是连续的而非离散的。
rogwan
2018-09-04 15:00:49 +08:00
人脑是怎么实现记忆的?学界已经搞清楚了吗
daocheng
2018-09-04 15:12:00 +08:00
推荐一本书《生命 3.0 》,里面的内容可能会有启发,我也正在读
vincenteof
2018-09-04 16:31:03 +08:00
如果你能形式化地定义出·模糊·,那基本上就可以
PureWhiteWu
2018-09-04 17:10:25 +08:00
@dawn009 不会是这样的,因为根本不存在校验,VCD 不支持数据校验,你可以先去了解一下底层的存储。读出来是什么数据,就会播放什么数据,不存在这次读出来是 10011 下一次读出来是 01010 的可能性,除非又遭到了损坏,而且计算机不会去重新读的,读出来是什么就播放什么,你之所以看到画面是花的,就是因为读出来的数据是混乱的错误的数据,但是计算机是不知道究竟是对是错的。
所以你的这个例子不正确,计算机不支持“模糊”。
你如果学过编译原理也应该知道,计算机所使用的任何一门语言都不能有二义性,否则就是不合规的。
从计算机最最最底层的,物理层面上来说,二进制不支持模糊。
除非是薛定谔的电位。
zdnyp
2018-09-04 17:48:23 +08:00
应该不存在“模糊记忆”,但是可以模糊的找回记忆(模糊检索)。
winglight2016
2018-09-04 18:17:43 +08:00
加权 lstm+dropout,比较接近模糊记忆这个概念了,不过只是模拟,大脑真正是怎么运转的,谁也说不清
Morriaty
2018-09-04 18:17:47 +08:00
@newtype0092 #22 还是有点不一样,对于计算机来说,要么同时找到“马冬梅、马春梅”,要么找到 null,而对于人来说,就停在“马什么梅”?
jfdnet
2018-09-04 19:01:28 +08:00
刚刚看了几集 西部世界 好像一开始说的就是这个
mmy1043
2018-09-04 19:50:17 +08:00
不知道楼主为什么要模拟模糊记忆,只提供一个想法吧。人的记忆中不经常被使用的内容会逐渐模糊甚至遗忘,但它们并没有消失,当你遇到一些特定的场景时能够再次回忆起那些记忆。因此可以为每一个信息设置一个权重,根据信息的调用次数来调整它,当权重过低是,对相应信息进行压缩,并留下一些特征,这样来模拟模糊记忆。
newtype0092
2018-09-04 22:00:32 +08:00
@Morriaty #31 并不是,你可能没看懂我说的,名字的三个字并不是存在同一块内存,找到一个就都找到了,他们之间的关系可能通过很复杂的路径连通,或者根本就不连通,需要通过别的节点才能找到。
假如搜索到名字的第二个字要 5s,搜索到第三个字要 n 天,你能保证计算机一直跑这个任务跑三天么?而且如果提前不知道 3 天能跑出来,只知道遍历一遍全量数据要好几年,你能一直等它遍历完么?
这还是内存够的情况下,如果不够那还需要调整算法使用其他辅助手段(类似边想边把线索记到小本本上)。
归根揭底人的记忆就是类似网络的,你能记不起来名字中的某个字,就说明这些字不是存储在一起的,每个独立的数据都是通过其他的数据线索串联起来。
比如姓马这个数据,就可以是通过多条不同的路径搜索到的
(小时候开学那天全班自我介绍->她嗓门很大->她大声的说我叫马 XX )
(她长得很有特点->她脸很长->她正巧姓马)
路径可短可长,每个数据的关系可远可近,所以不存在要么找到完整名字,要么找到 null。
widewing
2018-09-04 22:19:21 +08:00
有啊,各种有损压缩算法了解一下,特别是基于深度网络的
innoink
2018-09-04 22:22:05 +08:00
多种结果的概率叠加=模糊
flyaway
2018-09-04 22:32:47 +08:00
神经网络大神 Hinton 在 30 多年前的一篇长文中就有过关于模糊记忆的论述。基本思想就是所有的记忆都是存储在一堆 units 中的,任何记忆的实体都可以表示为一些特殊 unit 被激活(一种 pattern),不同记忆个体之间会有重叠的 units,这样就能模拟楼主所说的模糊记忆了。因为当一个新的实体被激活,其本质就是一堆 unit 被激活,这些 unit 可能又是其他实体的组成部分,这样就能发生「联想」记忆。从机器学习角度来说,这种模型天生就具有泛化性。但是我不确定人脑是否是采用同样的过程的。
Hinton 的文章在这里: http://web.stanford.edu/~jlmcc/papers/PDP/Volume%201/Chap3_PDP86.pdf
有兴趣的话可以看看。

顺便说一句,现在 NLP 中流行的 word embedding(将词表示成向量)就是基于 Hinton 的这篇文章的,几乎所有最前沿的模型都会用到 word embedding,大神的文章 30 年后依然有很强的建设性!
Cheez
2018-09-04 22:35:31 +08:00
当初因为人脑容量太小而已....相当于数据恢复。
dawn009
2018-09-05 01:26:46 +08:00
@PureWhiteWu 这个是你不了解了。VCD 卡盘常见吧,特别是用电脑播放 VCD 时。当年「超强纠错(其实是容错,跳过校验)」可是 VCD 机和 VCD 播放软件的主打广告语。

物理介质不是不「支持」模糊,反而恰恰因为容易出错,所以会有校验机制。换句话说,存储介质天生是「模糊」的,硬件和底层软件的设计需要能消除存储介质的不确定性,才能让上层软件跑在一个「确定」的系统之上。

特别强调一句,同一块数据,每次读取的值不一样,是个常见的现象。尤其是软盘、光盘等易受干扰的介质。
dartabe
2018-09-05 01:37:46 +08:00
LSTM 有个记忆单元 会丢弃一些不想记住的东西

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/485933

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX