项目介绍:Machine-Learning-Experiments
概述
Machine-Learning-Experiments 是一个关于机器学习互动实验的项目集合。该项目旨在提供一个学习和试验不同机器学习方法、算法和数据集的沙盒式平台。每个实验由两个主要部分组成:Jupyter/Colab 笔记本(展示模型的训练过程)和一个在线演示页面(可以在浏览器中直接看到模型的实际应用)。
项目结构
该项目的主要特征是它为用户提供了一系列不同类型的机器学习实验。这些实验主要分为以下几类:
- 监督学习:例如多层感知器(MLP)和卷积神经网络(CNN)。
- 无监督学习:例如生成对抗网络(GANs)。
- 递归神经网络(RNN):应用于序列数据的深度神经网络,如语音、文本或音乐。
实验概览
监督机器学习
监督学习的目标是从输入变量 X
学习到输出变量 Y
的映射关系。其中一些实验包括:
- 手写数字识别(MLP 和 CNN):使用 MNIST 数据集,通过多层感知器和卷积神经网络对手写数字进行分类。
- 手绘草图识别(MLP 和 CNN):使用 QuickDraw 数据集,对手绘草图进行识别。
卷积神经网络(CNN)
卷积神经网络广泛用于分析视觉图像。例如:
- 石头剪刀布识别(CNN 和 MobilenetV2):使用 RPS 数据集,通过 CNN 和 MobilenetV2 模型识别出石头剪刀布的手势。
- 物体检测(MobileNetV2):使用 COCO 数据集,对图片中的物体进行检测。
递归神经网络(RNN)
递归神经网络常用于处理序列数据:
- 莎士比亚文本生成(RNN):通过学习莎士比亚文体来生成类似风格的文本。
- 维基百科文本生成(RNN):从维基百科的数据集训练出能够生成相关文本的模型。
无监督学习:生成对抗网络(GANs)
生成对抗网络用于生成新数据:
- 服装生成(DCGAN):使用 Fashion MNIST 数据集创建看起来真实的服装图像。
项目设置与使用
要在本地使用这个项目,需要进行以下步骤:
-
设置虚拟环境: 创建如“experiments”的虚拟环境,并激活它以分隔不同的项目依赖。
-
安装依赖: 更新 pip 并安装项目需求列表中的所有包。
-
本地启动 Jupyter: 通过 Jupyter Notebook 服务器,用户可以自由地查看和修改实验笔记本。
-
启动本地演示: 使用 React 构建的演示应用,可以通过
yarn start
命令在本地运行。 -
模型转换: 实验中训练的模型可以从 Keras 格式转换为 JavaScript 格式,以便在浏览器中使用。
注意事项
- 这些机器学习实验不适用于生产环境;实验只是用于学习和探究。
- 用户可能需要加载大量数据到浏览器,这可能影响效率。
推荐版本
- Python:
> 3.7.3
- Node:
>= 12.4.0
- Yarn:
>= 1.13.0
项目作者
该项目由 @trekhleb 开发与维护。项目中还提供了与机器学习相关的文章和教程,供进一步理解和学习。
通过这些实验,用户可以在实践中探索先进的机器学习技术,了解数学原理,尝试不同的算法,并在过程中提升自己的技能。