机器学习:交互式机器学习体验
我已经在 GitHub 上🤖了新的交互式机器学习实验项目。
虽然模型可能有点笨(记住,这些只是实验,而不是生产就绪的代码),他们会尽力:
- 🖌识别在浏览器中绘制的数字或草图
- 📸检测和识别要显示给相机的对象
- 🌅对上传的图像进行分类
- 📝一起写一首莎士比亚诗
- ✊🖐✌️玩你在摇滚纸剪刀游戏
- 等。
我已经训练了_Python上的_模型_使用TensorFlow 2_与_Keras的支持_,然后使用他们在浏览器中使用_React和__JavaScript_版本的_Tensorflow演示_。
模型性能
⚠️ First,让我们设定我们的期望.️存储库包含机器学习实验,而不是生产就绪、可重用、优化和微调的代码和模型。这是一个沙盒或游乐场,用于学习和尝试不同的机器学习方法、算法和数据集。模型可能性能不好,并且有过度拟合/不拟合的地方。
因此,有时您可能会看到这样一些情况:
但要有耐心,有时模型可能会变得更聪明🤓并给你这个:
简介
- 🗓因为Python可能是开始尝试机器学习的一个不错的选择,我决定先学习它的基本语法。结果,一🐍学习Python项目的"游戏"和"备忘单"。这只是练习 Python, 同时有一个基本语法的备忘单, 一旦我需要它 (如等) 。
dict_via_comprehension = {x: x**2 for x in (2, 4, 6)}
- 🗓学了一点Python之后,我想深入探讨机器学习背后的基本数学。因此,在通过一个真棒机器学习课程由Andrew Ng在🤖自制机器学习项目出来。这次是为基本的机器学习数学算法(如线性回归、逻辑回归、k-means、多层感知器等)创建一个备忘单。
- 🗓下一次尝试玩基本的机器学习数学是一个🤖纳纳龙。它是大约7个简单的JavaScript函数,应该给你一种感觉,机器如何真正"学习"。
- 🗓在Coursera上完成了安德鲁 · 吴的另一个令人敬畏的深度学习专业化后, 我决定用多层感知器、卷积和循环神经网络 (CNN 和 Rnn) 练习更多一点。这一次,我决定开始使用一些机器学习框架,而不是从零开始实现所有内容。我最终使用TensorFlow 2与Keras。我也不想太专注于数学(让框架为我做),相反,我想想出一些更实用,更适用的东西,我可以尝试在我的浏览器中玩的东西。因此,新的🤖机器学习实验出来了,我想在这里描述更多一点。
技术堆栈
模型培训
- 🏋🏻我使用TensorFlow 2 中的 Keras进行建模和培训。 由于我对机器学习框架没有经验,我需要从一些开始。支持 TensorFlow 的一个卖点是,它具有具有类似API 的库的 Python和 JavaScript 风格。因此,最终我使用 Python 版本进行训练和 JavaScript 版本进行演示。
- 🏋🏻在 Jupyter 笔记本中对 Python 进行了TensorFlow模型培训,有时还使用Colab使 GPU 上的训练速度更快。
- 💻大多数型号都经过了旧版 MacBook 的 Pro CPU(2,9 GHz 双核英特尔酷睿 i5)的训练。
- 🔢 当然,您无法从NumPy 中跑开矩阵/张子操作。
模型演示
- 🏋🏻使用TensorFlow.js对以前训练过的模型进行预测。
- ♻️_将Keras HDF5_模型转换为_TensorFlow.js层格式_我使用TensorFlow.js转换器。将整个模型(兆字节的数据)传输到浏览器而不是通过 HTTP 请求进行预测可能效率低下,但请记住,这些只是实验,而不是生产就绪的代码和体系结构。我想避免使用专用的端到端服务,使体系结构更简单。
- 👨🏻 🎨演示应用程序是在 React上创建的,使用创建-React-应用程序启动器,默认为Flow味道进行类型检查。
- 💅🏻对于样式,我使用了材质UI。这是,正如他们说,“杀死两只鸟"一次,并尝试一个新的造型框架(对不起,Bootstrap🤷🏻)。
实验
因此,简而言之,您可以通过以下链接访问演示页面和 Jupyter 笔记本:
多层感知器(MLP)实验
多层感知器 (MLP) 是一类前馈人工神经网络 (ANN)。多层感知器有时称为"香草"神经网络(由多层感知器组成),尤其是当它们具有单个隐藏层时。
手写数字识别
绘制一个数字,模型尝试识别它。
手写草图识别
绘制草图,模型尝试识别草图。
卷积神经网络(CNN)的实验
卷积神经网络(CNN 或 ConvNet)是一类深度神经网络,最常用于分析视觉图像(照片、视频)。它们用于检测和分类照片和视频上的对象、样式传输、人脸识别、姿势估计等。
手写数字识别 (CNN)
绘制一个数字,模型尝试识别它。这个实验类似于 MLP 部分的实验,但它在引擎盖下使用 CNN。
手写草图识别 (CNN)
绘制草图,模型尝试识别草图。这个实验类似于 MLP 部分的实验,但它在引擎盖下使用 CNN。
石纸剪刀 (CNN)
你玩一个岩石纸剪刀游戏与模型。这个实验使用从零开始训练的CNN。
摇滚纸剪刀 (MobilenetV2)
你玩一个岩石纸剪刀游戏与模型。此模型使用传输学习,基于MobilenetV2。
对象检测 (MobileNetV2)
通过相机向模型显示环境,它会尝试检测和识别对象。此模型使用传输学习,基于MobilenetV2。
图像分类(移动网络V2)
上传图片,模型会根据图片上的"看到"内容对其进行分类。此模型使用传输学习,基于MobilenetV2。
复发神经网络实验(RNN)
循环神经网络 (RNN) 是一类深度神经网络,通常应用于基于序列的数据,如语音、语音、文本或音乐。它们用于机器翻译、语音识别、语音合成等。
数字求和
键入求和表达式 (即 ),模型预测结果 (即 )。这里有趣的部分是,模型将输入视为一个_序列_,这意味着它了解到,当你键入一个序列→ → → →它"翻译"到另一个序列。你可以把它翻译成西班牙语序列来翻译为英语。
17+38
55
1
17
17+
17+3
17+38
55
Hola
Hello
莎士比亚文本生成
你开始打一首像莎士比亚的诗,模型将像莎士比亚一样继续。至少它会尝试这样做😀。
维基百科文本生成
您开始键入 Wiki 文章,模型尝试继续它。
未来计划
正如我上面提到的,存储库的主要目的是更像一个学习的游乐场,而不是生产就绪的模型。因此,主要计划是继续学习和试验深度学习的挑战和方法。接下来要玩的有趣挑战可能是:
- 情绪检测
- 样式传输
- 语言翻译
- 生成图像(即手写数字)
- 等。
- 原文作者:知识铺
- 原文链接:https://geek.zshipu.com/post/machinelearning/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E4%BA%A4%E4%BA%92%E5%BC%8F%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E4%BD%93%E9%AA%8C/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。
- 免责声明:本页面内容均来源于站内编辑发布,部分信息来源互联网,并不意味着本站赞同其观点或者证实其内容的真实性,如涉及版权等问题,请立即联系客服进行更改或删除,保证您的合法权益。转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。也可以邮件至 sblig@126.com