学生休息室

分享技术和现实生活的例子,学生可以如何使用MATLAB和Simulink在他们的日常项目#学生成功金宝app

MATLAB,机器学习和电影…完美的组合

人们常说不要以貌取人,但没人说过电影,对吧?在今天的帖子中,我很高兴地欢迎“最具创意使用MATLAB”奖的获奖者TAMU Datathon 2020.TAMU Datathon是世界上第一个也是唯一一个黑客大联盟(MLH)数据科学黑客马拉松,旨在将顶级数据科学/机器学习人才与顶级公司联系起来。我们今天的嘉宾博主-Vaishnavi DuraisamyAdhithiyaraj Sankaranarayanan领导大师Sarath Thangamani要不是Karuppuch萨米将与我们的客座博主讨论他们基于海报的电影推荐技巧…

灵感

TAMU Datathon 2020是我们的第一个黑客马拉松,问题声明是通用的,我们对如何开始感到困惑!当被要求提出一个问题陈述时,经过一段时间的思考,所有帮助我们的是前一天的电影之夜。我们发现挑选一部电影很难,希望有一种方法可以根据我们的个人兴趣得到电影推荐,尤里卡!我们对电影的认知很大程度上受到电影海报的影响,这一事实给了我们灵感!我们刚刚找到了黑客马拉松的点子!这启发了我们设计和开发一个应用程序,可以根据我们输入的海报推荐类似的电影。考虑到这些事实,基于海报的推荐似乎是一个合理的想法。不是吗? ?

分解问题

为了根据输入海报图像识别类似的电影,我们必须选择一种机器学习算法,该算法可以捕获输入海报的重要图像特征,并检索具有类似特征的海报,并在处理图像输入时实现降维。因此,主成分分析(PCA)、t分布随机邻居嵌入(t-SNE)、均匀流形近似和投影(UMAP)和自动编码器成为我们的潜在候选。我们决定选择自动编码器作为我们的实现,因为自动编码器可以更好地捕捉非线性特性,并以其在有损图像压缩任务中的性能而闻名。自动编码器是试图复制输入的网络。网络被设计成输入层和输出层大小相同。直到中间层,网络变得更小,然后再向输出方向增长。通过这种方式,它试图仅捕获在中间层重新创建输入所需的重要特性,同时也提供了一种实现降维的方法。

我们是如何实现它的?

该编码器由多个2D卷积层组成,用于捕获输入图像的空间特征,然后将最后卷积的输出滤波器映射平展并赋给多个密集层,生成输入图像的编码向量。这样,训练数据集中的所有图像都被映射到一个10D的潜在空间。在训练过程中使用解码器,以减少自动编码器的重构损失。

在推荐过程中,用户给出输入图像(电影海报),算法根据10D潜空间映射的欧氏距离检索最近的图像,输出为推荐的电影。

结果

在黑客马拉松的最后,我们的目标是开发一个简单的、概念验证的应用程序。由于我们使用MATLAB作为我们的机器学习模型,我们决定使用同样的工具来开发我们的GUI。因为我们都是这个工具的新手,所以我们在有限的时间内想出了一个非常简单的用户界面,我们必须在一个窗口上传我们的输入海报图像,在另一个窗口中提供推荐。

推荐的电影就像用户输入的一样。两者都属于同一类型——恐怖!从上面的例子可以明显看出,该算法检索具有相似特征的海报。

和前面的例子一样,上面的例子也推荐了一个类似的电影。这两部电影都是喜剧类型的。

为什么选择MATLAB?

这是我们的第一次数据马拉松,我们的重点是按时完成交付。在MATLAB中的机器学习算法是没有麻烦的,涉及的计算时间是相当低的,即使没有使用gpu。MATLAB的深度学习工具箱帮助我们快速解决问题,而不必担心编码语言的复杂性,让我们专注于解决问题,而不是在意大利面条式的代码中循环。由于我们的代码涉及到自动编码器的使用,处理维度和超参数是相当关键的,MATLAB有清晰和阐明的文档,帮助我们在非常有限的时间内高效地构建算法。最后,开发一个应用程序是在MATLAB中的“几次点击”过程。因此,考虑到这些事实,我们一致选择MATLAB作为我们的推荐系统的工具。

未来的范围

尽管这些建议结果很好,但对这项工作进行推断仍有很大的范围。目前,系统会根据我们输入的海报推荐一部电影。可以增加推荐电影的数量,让用户有更多的选择。到目前为止,我们认为海报的像素值是机器学习算法的唯一特征,这可以结合其他特征,如审查(NLP技术),评级,流派,长度,语言,以提供更好的推荐。除了改善模型性能之外,还有一个主要因素是找到一种具体的方法来衡量性能,因为“喜欢电影”不是一个可衡量的量,创新的性能指标可能是有利的。最后,全球各地不同人群的标记数据可以提供更好的推荐系统

关键的外卖

不用再在周末浪费时间决定看什么电影了。为了这个目的,我们有一个“去”的应用程序,最好的部分是,这个想法为我们赢得了2020年TAMU数据马拉松的最具创意的MATLAB使用一等奖。在一天内完成这个项目是一次很棒的经历。我们非常享受制作这个机器学习应用程序的过程。我们的代码可以在Github上找到,欢迎尝试,并让我们知道你的想法!

|

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。