学生休息室

分享学生如何在日常项目中使用MATLAB和Simulink的技术和现实例子#学生成功#万博1manbetx

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

他们说不要以貌取人,但没人说电影是这样的,对吧?在今天的帖子中,我很高兴地欢迎“最具创造性的MATLAB使用”奖的获奖者2020年TAMU数据马拉松.TAMU数据马拉松是世界上第一个也是唯一一个黑客大联盟(MLH)数据科学黑客马拉松,旨在将顶尖的数据科学/机器学习人才与顶尖公司联系起来。我们今天的客座博主Vaishnavi DuraisamyAdhithiyaraj Sankaranarayanan领导Guru Sarath ThangamaniPriyanka Karuppuch Samy将谈论他们的海报电影推荐黑客,通过我们的客座博主…

灵感

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

分解问题

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

我们是如何实现它的?

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

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

结果

在黑客马拉松结束时,我们的目标是开发一个简单的概念验证应用程序。由于我们的机器学习模型使用MATLAB,所以我们决定使用它来开发我们的GUI。由于我们都是新手,所以我们在有限的时间内设计了一个非常简单的用户界面,我们必须在一个窗口上传我们输入的海报图像,在另一个窗口中给出推荐。

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

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

为什么我们选择MATLAB?

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

未来的范围

尽管这些建议被证明是好的,但这项工作还有很大的外推空间。到目前为止,系统会根据我们输入的海报推荐一部电影。推荐电影的数量可以增加,为用户提供一个选项池。到目前为止,我们认为海报的像素值是机器学习算法的唯一特征,这可以与其他特征相结合,如评论(NLP技术),评级,类型,长度,语言,以给出更好的推荐。除了提高模型性能之外,一个主要因素是获得一种具体的方法来衡量性能,因为“喜欢电影”不是一个可测量的数量,创新的性能指标可能是有利的。最后,全球范围内不同人群的标记数据可以提供更好的推荐系统

关键的外卖

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

|

评论

如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。