这篇文章是Jeff历时12个月的加速学习项目“ Month to Master”的一部分。今年2月,他正在下载构建AI的功能。

在这个为期一年的项目的前两个月中,我专注于人际交往能力和身体技能。 本月,我将重点介绍一种智力技能: 深度学习。
为什么选择深度学习/人工智能?
除非您一直处于真空状态,否则作家会以“人工智能”或“区块链”等时髦的流行语散布其技术头条。尽管有人担心AI会接替我们的工作,但大多数人都会提出这样的主张不是真正构建这种AI的人。 做出这些断言的大多数人不了解AI背后的技术,因此,很可能会由于无知而做出错误的抽象。
但是,与区块链不同,机器学习和人工智能已被具体证明为社会创造价值。 注意:机器学习是AI研究中的一个主题。 深度学习是机器学习中的一个主题。
尤其是凭借技术技能,新技术不断涌现。 在我们的经济环境中,20年前的编程技能(如ALTAIR或BASIC编程)并没有得到太多重视。 学习如何构建人工智能将使我的技术技能更加敏锐,更不用说使人工智能做类似人类的事情的“他妈的酷”因素。
目标:建立一个可以学习我发现有吸引力的在线个人资料的AI机器人,以便它可以自动为我约会应用程序滑动并发送罐头消息。
从我的社交技能挑战中,我意识到约会是一项繁重的工作。 因此,我将使用AI用一块石头杀死两只鸟,学习AI并生成更多日期。
我目前的技能水平:我已经具有基本的编程技能水平。 而且,我还接触了神经网络,该概念已内置于“深度学习”中。由于我也是数据科学家,因此我绝对有能力与普通人群抗衡。
资源资源
非技术人员总是认为程序员具有一定的超能力。 实际上,程序员只是“真正擅长使用谷歌搜索工具”的同义词。
- 谷歌
- 谷歌
- 谷歌
- 谷歌
- 应用卷积神经网络:奥斯卡·阿尔辛(Oscar Alsing)的Youtube教程
- 特征脸: Tinderbox
- https://github.com/chaitjo/auto-mate-for-tinder
- Pynder API: https : //github.com/charliewolf/pynder
- 奥斯卡·阿尔辛播客: https ://soundcloud.com/theaipodcast/ai-tinder-dating
- Tinder API文档: https : //github.com/fbessez/Tinder
整体学习法
我的一般方法是手动标记图像配置文件。 使用这些标记的图像来训练卷积神经网络,以学习我发现很有吸引力的配置文件。 训练好模型后,我需要将算法连接到Tinder应用程序。
分解:
1.获取数据:这很可能是该项目中比较平凡,困难的部分。 我要在哪里找到要分类的图像? 我将使用Pynder来访问计算机上的Tinder,这将允许我保存图像。 如果这不起作用,我将截屏来自实际Tinder应用程序的图像。 如果这不起作用,我将仅使用Google图片🙁我的目标是获取约1000张图片,因为这足以训练我的算法。
2.标记数据:一旦我有了图像,算法就不会知道我觉得哪个有吸引力。 要教授该算法,我必须将每个图像分别标记为“ 1”或“ 0”,以便该算法可以了解什么具有吸引力,哪些没有吸引力。
3.预处理图像:获得图像后,需要进行一些预处理。 图像需要考虑以下几点:
- 多张面孔:如果她的照片中有多个人怎么办? 如果她的脸在不同的地方怎么办? 我怎么知道她的脸是哪一张? 我可能需要编写一个可以提取她的脸的面部提取脚本。 尚不确定如何执行此操作。
- 调整图像大小:确保所有图像均具有相同的尺寸和像素长度。
- Random Shit:一旦我开始构建它,很可能有些事情我还没有做,我需要做。
4.实现卷积神经网络:我对神经网络有基本的了解。 但是,我不太了解CNN的功能。 还是CNN是在这里使用的最佳神经网络? 也许我什至不需要神经网络。 无论如何,我将需要对不同类型的深度学习算法进行更深入,更全面的理解。 我将首先尝试CNN,因为我可以找到一些代码来实现此目的的CNN,但是,我还将介绍其他选择。
5.迭代:检查结果。 我可能会通过准确度得分(在预测总数中网络能正确预测多少),回忆得分(在我喜欢的所有配置文件中预测我正确地喜欢她)和准确度(预测我正确地喜欢她)来衡量算法预测的所有实例我都喜欢她。是的,这个概念有点令人困惑。
6.尝试另一种方法:可能有很多不同的图像分类方法,包括降维技术(PCA,SVD等),LSTM等。如果对结果不满意,我将尝试另一种方法。
7.将算法连接到Tinder:我需要使用Tinder令牌检索器将此算法连接到Tinder。 我发现这个人为此建立了一些东西:
用Python构建Tinder Bot
这里的想法是在我的桌面上使用Tinder,并运行使用我的算法达到我的极限的日常工作。
8.从Tinder提取图像,分类,然后轻扫:我需要找出一种方法,从Tinder中自动提取图像,在算法中对其进行分类,然后根据分类结果进行左右滑动。
进行细分,我需要将其构建为时间表:
第1周:获取所有数据并建立面部识别程序:我给自己更多的时间来获取数据,因为手工标记所有内容将花费大量时间。 我还需要弄清楚如何创建此面部识别程序。
截止日期:3/8/18
第2周:构建一个“哑模型”:第2周,我想实现CNN并运行基本算法。 它不一定要表现良好,但关键是要拥有一些我可以迭代的成品。
截止日期:3/15/18
第3周:迭代“哑模型”:本周的重点是提高模型的准确性和预测质量。 这将给我腾出空间来尝试其他方法,并对模型进行任何调整。
截止日期:3/22/18
第4周:建立机器人:现在我已经建立了算法,然后可以将该算法连接到Tinder并创建自动完成刷卡的作业。
截止日期:3/29/18
目标将是引导模型。 快速构建一个MVP,然后在该MVP之上进行迭代。 我会保留两天的缓冲时间,以防万一。
时间:根据我的精力水平,每天上班前要花2个小时还是下班后要花2个小时。 如果我落后了,我可能打算在周末花费超过2个小时。 另外,我只有27天的时间来完成此挑战,而前两个挑战只有30,29天。
阅读下一篇文章。