文|新智元
编辑|文强 大明
下面这套房看起来如何?
如果你觉得还不错,那么可惜了,这套房实际并不存在,从图片到文字,甚至发布人的头像,全都是计算机自己生成的。
没错,继假猫生成网站“这只猫不存在.com”、假人生成网站“这个人不存在.com”之后,混淆虚拟与现实的“XXX不存在.com”又添一名新成员:
这间房不存在.com (thisairbnbdoesnotexist.com)。
受假人(脸)生成网站“thispersondoesnotexist.com”的启发,谷歌程序员Christopher Schmidt自己做了一个假的AirBNB租房网站,按照AirBNB的网站样式,图片、描述、发布人物,煞有介事:
假房生成网站 thisairbnbdoesnotexist.com,每次刷新都会出现一个虚假的房源,网页上的照片、文字描述、发布人头像均由计算机自动生成。由于使用的模型非常简单,文字描述多有不合逻辑之处,但乍看上去还是能以假乱真。来源:假房生成网站 thisairbnbdoesnotexist.com
AirBNB网站截图,避免广告嫌疑做了虚化处理
根据Christopher Schmidt在Twitter的介绍,生成每个网页用一块GPU只需0.5秒,相关代码开源,你可以在这里找到:
https://colab.research.google.com/github/tensorflow/tpu/blob/master/tools/colab/shakespeare_with_tpu_and_keras.ipynb
这个网站具体是怎么做的?
网站上的图像当然由著名的图像生成模型StyleGAN生成,文本则来自在一个AirBNB列表(文末链接[1])上训练的语言模型,主要基于Tensorflow的“Predict Shakespeare with Cloud TPU”(https://t.co/sJoUbwZ2UL)。
这个文本生成模型似乎是个两层的前馈LSTM(文末链接[2]),主要是用它来独立训练生成房屋列表中的标题、描述、房主姓名、地理位置等,然后组合生成综合列表。
每个模型的输出都是预先生成的,每5秒创建一个新的列表(网页)。唯一的修改是根据文本稍微调整序列大小。
下面是Christopher Schmidt在Twitter上对这个“假房子”网站的简要介绍,包括灵感来源、大致结构、构建页面使用的框架和训练方式等。
本页面是我受一些StyleGAN模型的启发而制作的,尤其是从@lucidrains的制作的http://thispersondoesnotexist.com获得了不少收获。我最近几天经过一些自学,把一些相关信息进行了整合,鼓捣出来这个网页。需要指出,这个页面上的列表完全是新生成的,实际上在真实世界上并不存在。
本页面在开发时主要使用以下几种模型:在构建图片和卧室照片时使用StyleGAN,一些文本网络的训练使用了tf.keras来生成地点名称、房主姓名、标题和描述。此外还使用了Tensorflow的实例代码)
所有的数据训练过程都在谷歌的Colab上完成,该平台上可以免费使用GPU和TPU来训练和生成数据。
每个模型都可以做出独立的预测,所以会经常出现各部分信息不相配的情况,比如描述信息中说某套房子有一间卧室,但列表信息中显示有四件卧室,或者外观和名字排列不齐等。
但总的来看,这个过程是比较理想的,我在这个学习过程中也获得了不少乐趣,进一步掌握了一些模型的使用技巧。这里要感谢Colab平台,更感谢StyleGAN社群的出色研究成果。
接下来几天,我会更加详细地总结一下这个页面的开发体验,但同时,请各位尽情看看这些完全不存在的AirBNB假房子吧!
3/2的房间和带血的床……
在Christopher Schmidt发推后,越来越多网友开始玩的不亦乐乎,并在留言中和作者进行了互动。
-讲道理,这个很厉害了!如果你要是用了GPT-2的话,也许能够生成房屋列表的描述文本了。现在可能也就是弄一些模板,然后用BERT模型来填空?
可能你是有点没看全,现在房屋列表已经生成出来了,虽然不够完美,但这是因为我其实不太想直接使用BERT这种现在最厉害的语言模型罢了。
其实这个事我也是第一次尝试,也就是跑跑别人已经做好的实例,所以其实上面写的不太正规,诸位也可以当“我啥也不懂,反正只管点鼠标图一乐就对了!”
-哈哈,说的没毛病,我现在就在点!
-这些房子怎么还有5间卧室的?
你是第一个问这个问题的。因为一开始我只为每个列表生成了4张图,但后来我发现AirBnB上都是5张图,目前为止我只会生成卧室的图。但现在我正在利用新的StyleGAN来尝试生成厨房的照片,这5个卧室有一个要变厨房啦。
-从卧室到厨房,你是用迁移学习做的吗?我觉得从头开始训练可能还快一些,一些形状和颜色都是一样的。
目前不是迁移学习,但也不一定,我不是很懂这些东西,不大确定是不是真的合适。上面这个图是我用GTX 1080单卡训练20小时后的结果。顺便问一下,用现有模型进行再训练,我是不是只要把.pkl文件(比如卧室图片)直接放到输出结果目录里,然后告诉程序继续运行就行了?
是的,就直接放进去就行,另外其实需要注意一下文件格式问题,如果是用JPG格式训练的,那么最好一直用JPG,PNG也是同理。
不过话说回来,这个页面多半只是作者闲来无事的娱乐之作,吃瓜派的网友基本上都在吐槽生成的房子太离谱。比如下边这种:
我觉得像这种房子,只能给一星,不能再多了!
话说......你这床上的血还没擦干净,就拿出来挂出租真的好吗?
这个“3/2”用在这里就很精髓,租房的人怕是要一脸问号......
最近,由机器学习技术生成了越来越多的足以乱真的假人脸、假视频、假头像,现在又做出了这个假的合租网站,在越来越多真假莫辨信息的包围下,我们是否也会感到焦虑和担忧呢?
而对于担心AI生成虚假信息的人来说,让我们用Yann LeCun的话结尾:
每个人都可能生成假新闻,传播阴谋论并且影响其他人。这么说来,干脆不生孩子得了?
代码及资源
[1] "假房网"文末生成模型训练数据集https://public.opendatasoft.com/explore/dataset/airbnb-listings/table/?disjunctive.host_verifications&disjunctive.amenities&disjunctive.features
[2] "假房网"文末生成模型https://colab.research.google.com/github/tensorflow/tpu/blob/master/tools/colab/shakespeare_with_tpu_and_keras.ipynb
来源:thisairbnbdoesnotexist.com
评论