探索人工智能之旅:课程大纲
探索人 工智能之旅 从创意形成到发布
此人工智能教程系列专家撰写,介绍有助构建具备强大人工智能能力的应用程序的工具、基础设施和技术。
了解有关信息
· Docker*containers
· Keras 神经网络 API
· 用于机器智能的 TensorFlow* 软件库
· Caffe*深度学习框架
建议技能
· Python*中等知识
· 线性代数基础
· 统计学基础
· 概率论基础
· 熟悉 GitHub*
教程系列
创意形成和规划
通过定义一组共同的目标、数据源、技术限制、团队和战略规划来启动项目。
技术与基础设施
探索如何收集、分析、预处理和标注数据。探索各种框架,学习选择满足需要的最佳框架,发现数据中心和云计算选项。
数据与建模
学习如何设置实验性基础设施,挑选一种模型,训练该模型,反复操作直至对结果满意。
应用开发和部署
将应用从原型发展到运行的应用程序,并准备好将其投产。
人工智能实践第一部分:借助人工智能的强大功能创建应用
人工智能的实际应用
以自动化电影制作应用为例,将面临两个充满挑战的人工智能基本问题:图像分类和序列预测,了解如何使用面向图像识别的卷积神经网络,即输入一系列图像后该网络自动检测图像中的情绪。利用循环神经网络在算法上合成一段旋律,为图像中情绪配乐。最终的输出为包含电脑生成配音的完整电影。
介绍各种人工智能概念以及支持深度神经网络的英特尔® 架构。展示如何利用英特尔现代技术简化人工智能应用编码流程,包括:
• 英特尔® 数据分析加速库(英特尔® DAAL)
• 英特尔® 数学核心函数库(英特尔® MKL)
• Caffe* 的英特尔® 分发版
• TensorFlow* 深度学习框架
完整的人工智能实践教程系列共分为 5 个阶段:
• 构思: 定义共同目标、数据源、技术限制、团队和战略规划,并启动项目。
• 数据: 了解如何收集、分析、预处理和注释数据。
• 技术 : 浏览各种框架,选择符合项目需求和长期目标的框架,寻找可用的数据中心或云计算选项以满足计算 需求。
• 模型 :设置实验基础设施,选择模型,训练模型并将模型迭代到满意程度。
• 应用 :将配备了易于使用的 web 接口的模型投入生产(适用于面向用户的智能应用)。
人工智能实践第二部分:构思
第一步:了解用户需求
准备:
• 如何在产品或业务中应用深度学习?
• 这类项目通常持续多久以及具有怎样的结构和哪些重要阶段?
• 需要哪类专家及如何建立团队?
• 选择与设置硬件
• 软件框架选择
• 衡量项目成效标准
• 如何说服决策者投资?
• 目前有分步指南和代码示例吗?
• 在哪查找数据集?
• 如果即购即用算法未能发挥重要作用,如何改进模式?
数据的生成和管理方式对于深度学习项目的成功至关重要。
尽量找出能引起客户共鸣并可满足客户需求的创意。
第二步:集思广益
明确目标或需要解决的问题。
可通过采访了解具体挑战。
第三步:搜索相关用例
该项目包括两个深度学习应用:
• 基于卷积神经网络、支持检测情绪的图像识别
• 基于递归神经网络、支持创建音乐的声音生成
市场上有多种技术基于相似的创意。
MicrosoftCognitive Services
MicrosoftEmotion* API
Google Cloud Vision* API
开源音乐生成器:
DeepJazz
BachBot
项目中将使用 Feynman Liang(BachBot 的创建者)开发的 BachBot 开源代码。
第四步:与专家讨论创意技术可行性
AI 动手练习第 三 部分:AI 团队剖析
寻找专家
首先确定项目所需的技能与帮助。确定场景:
· 您能够独立构建 AI 应用并明确项目要求,但需要其他掌握特殊技能的人才,以加快项目进度或提高产品质量。
· 您是一名产品经理,有远见有想法,但需要更全面的技术帮助,以便明确项目要求,包括确定项目范围、工具和技能。
· 如果您想构建主流应用,不需要大量研究和尖端技术,但仅仅是特定领域的 AI 应用,那么团队的组成是可预见的。下文将具体介绍您所需的团队成员。
角色
数据科学家
深度学习数据科学家
数据分析师
数据工程师
开发操作 (DevOps) 工程师
其他关键角色
软件工程师(后端)
软件工程师(WebFront End、Mobile)
设计师
产品经理
项目经理
系统架构师
领域专家
质量保证分析师
AI 人才雇佣渠道
寻找内部人才
· 在内部职位公告板上发布广告
· 在对外公开的公司职位公告板上发布广告
· 从相关团队(例如 AI 团队或 AI 开发人员宣传官)调任同事
从外部寻找
· 特定或通用在线市场,
· 个人线下联系或通过在线社交网络
· 现有团队成员的推荐
· 小型专业社交网络和社区
· 职位公告板和职位搜索引擎
· 行业顶级学术会议和编程马拉松
· 访问大学研究室
· 内容营销、博客和社交媒体
AI 动手练习第 四 部分:项目规划
• 采用各种项目分析技巧和相关项目管理工具正式形成项目构思,并将其变成真正的项目
• 采用 CRISP-DM 方法(跨行业数据挖掘标准流程)开展数据挖掘项目
• 梳理出适合所有 AI 项目的标准任务
项目落实
确定项目范围
项目分析方法
• 层级分解 。
• 假设分析 。
• 用户旅程模拟 。
分析电影制作应用
使用层级分解方法分解示例项目时,我们决定(与所有面向用户的应用一样)将该电影制作应用分成:
• 前端 — 简单的用户界面组件
• 后端 — 支持生成有趣的 AI,它反过来可分成:
情绪识别组件
音乐生成组件
前端和后端中包含三个关键组件:用户界面(蓝色)、情绪识别(橙色)和音乐生成(绿色),如图 1 所示。
图 1. 电影制作应用系统图。
前端用户界面
用户通过按钮与该组件交互,可上传图像、启动电影生成流程,并分享或下载结果。尽管用户界面是重要组件,但本教程的重点是如何在后端使用全新英特尔® 技术处理智能信息。
具备 AI 功能的电影制作应用示例
第一步:提取情绪
第二步:生成电影
第三步:分享
后端情绪识别(图像处理)
• 该组件如何训练或学习 — 训练阶段
• 如何运用该组件 — 应用和测试阶段
训练阶段的任务包含:
• 定义各数据处理步骤的输入输出
• 查找或创建供机器学习的数据集匹配定义的输入界面和输出界面
• 训练机器学习模型
• 评估机器学习模型
应用和测试阶段期间 ,学习或训练的模型将用于预测之前相同人口或分布提供的不可见对象的答案。任务包括:
• 定义各数据处理步骤的输入输出
• 部署机器学习模型
后端音乐生成
• 从预构建的名曲数据库中随机选取一首名曲。
• 通过简单脚本调整该旋律的速度、音阶、节奏,以便该旋律适合情绪。
• 根据针对“情绪调整”基础歌曲的机器学习嵌入音乐生成流程。
音乐生成流程经过大量歌曲训练后可猜测出能够最自然地发出下一音符,从而基本完成情绪调整基础种子歌曲。
与情绪识别组件相同,我们需要识别用于训练和测试音乐生成模型的输入输出。
训练
• 输入:歌曲集合
• 输出:用于生成音乐的经过训练的机器学习模型(例如给出一个音符,预测下一个音符)
测试
• 输入:用于生成音乐的经过训练的机器学习模型以及经过训练的基础歌曲(一系列音符)
• 输出:完成基础歌曲的一串音符
倘若有固定的音乐生成组件 API,我们必须实施情绪调整脚本,并完成所有与音乐生成相关的 AI 任务,比如查找用于训练音乐生成模型的数据集或查找基础歌曲。本系列稍后将介绍有关的详细信息。针对本示例项目,我们将使用到以下内容:
• 基础歌曲,来自公开的媒体集(1922 年之前的歌曲)
• 音乐生成流程,在巴赫的圣咏合唱曲(乐谱象征性地代表巴赫的作品,作为 BachBot 项目的一部分进行准备)的基础上进行训练
• 原始文件,来自 music21 项目
通用项目管理指南
项目分解步骤:
• 优点
• 缺点
• 确定高层结构(最多三层)。
• 与贡献者谈话(通常由系统架构师进行)以便:
• 了解相应组件的功能和要求。
• 正式确定 API。
• 精减项目分解层级。
落实项目通用技巧:
• 由一人(通常为系统架构师)执行任务分解
• 考虑组件找到相应抽象概念(输入输出)。这种情况下,为各个系统列举出所有可能的输入输出格式,然后找到同时适合两个组件的配置。
• 确定 AI 任务后,概括出标准 AI 任务,作为分解层级的子目录。
• 首先从简单事情开始,然后进行扩展。
AI 项目分解与资源清单
• 通过确定输入和输出阐述业务问题,比如对象和标签或目标变量。
• 理解数据。
• 整理数据。
• 建立评估方法试验台。
• 开发机器学习模型
• 准备用于机器学习的数据集
• 如果没有标签,对原始数据进行注释。
• 训练机器学习模型。
• 评估模型。
• 部署模型。
发布者:Cara,转载请注明出处:http://www.makercollider.com/learningrover/5765