原文:KDNuggets
8 个开源替代 ChatGPT 和 Bard
原文:
www.kdnuggets.com/2023/04/8-opensource-alternative-chatgpt-bard.html
图片来源:作者
1. LLaMA
我们的前三大课程推荐
1. 谷歌网络安全证书 - 快速进入网络安全职业。
2. 谷歌数据分析专业证书 - 提升你的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持你组织的 IT
LLaMA 项目包括一组基础语言模型,参数规模从 70 亿到 650 亿不等。这些模型在数百万个标记上进行了训练,且仅使用公开可用的数据集。因此,LLaMA-13B 超过了 GPT-3 (175B),而 LLaMA-65B 的表现则与 Chinchilla-70B 和 PaLM-540B 等最佳模型相当。
图片来自 LLaMA
资源:
-
GitHub: facebookresearch/llama
-
演示: Baize Lora 7B
2. Alpaca
斯坦福 Alpaca 声称它可以与 ChatGPT 竞争,任何人都可以用不到 600$ 复制。Alpaca 7B 是从 LLaMA 7B 模型在 52K 指令跟随演示上进行微调的。
训练配方 | 图片来自 斯坦福 CRFM
资源:
-
博客: 斯坦福 CRFM
-
GitHub: tatsu-lab/stanford_alpaca
-
演示: Alpaca-LoRA(官方演示已下架,这是 Alpaca 模型的重建版)
3. Vicuna
Vicuna 是从 LLaMA 模型在 ShareGPT 收集的用户共享对话上进行微调的。模型 Vicuna-13B 达到了超过 90%* 的 OpenAI ChatGPT 和 Google Bard 质量。它在 90% 的情况下也超越了 LLaMA 和斯坦福 Alpaca 模型。训练 Vicuna 的成本约为 300$。
图片来自 Vicuna
**资源: **
-
GitHub: lm-sys/FastChat
4. OpenChatKit
OpenChatKit: 开源 ChatGPT 替代品 是一个完整的工具包,用于创建你的聊天机器人。它提供了训练自己定制化大语言模型的说明、模型微调、可扩展的检索系统用于更新机器人响应,以及用于过滤问题的机器人管理。
图片来自 TOGETHER
正如我们所见,GPT-NeoXT-Chat-Base-20B 模型在问题回答、提取和分类任务上优于基础版 GPT-NeoX。
**资源: **
-
GitHub: togethercomputer/OpenChatKit
-
演示: OpenChatKit
5. GPT4ALL
GPT4ALL 是一个社区驱动的项目,经过大量整理的助理交互数据进行训练,包括代码、故事、描写和多轮对话。团队提供了数据集、模型权重、数据整理过程和训练代码,以推动开源。此外,他们还发布了可以在笔记本电脑上运行的量化 4 位版本模型。你甚至可以使用 Python 客户端运行模型推理。
动图来自 GPT4ALL
**资源: **
-
技术报告: GPT4All
-
GitHub: nomic-ai/gpt4al
-
演示: GPT4All(非官方)
6. Raven RWKV
Raven RWKV 7B 是一个开源聊天机器人,采用 RWKV 语言模型,该模型的效果与 ChatGPT 类似。该模型使用的 RNN 能在质量和规模上与 transformers 匹敌,同时更快且节省 VRAM。Raven 在 Stanford Alpaca、code-alpaca 等数据集上进行了微调。
图像来源于 Raven RWKV 7B
**资源: **
-
GitHub:BlinkDL/ChatRWKV
7. OPT
OPT:开放预训练变换器语言模型虽然不如 ChatGPT 优秀,但在零样本和少样本学习以及刻板偏见分析方面表现出色。你还可以将其与 Alpa、Colossal-AI、CTranslate2 和 FasterTransformer 集成,以获得更好的结果。
注意: 它在列表中是因为它的受欢迎程度,因为在文本生成类别中每月下载量达到 624,710 次。
图像来源于 (arxiv.org)
**资源: **
-
GitHub:facebookresearch/metaseq
-
演示:LLMs 的水印
8. Flan-T5-XXL
Flan-T5-XXL 是在一系列以指令形式呈现的数据集上微调的 T5 模型。指令微调显著提高了多种模型类别(如 PaLM、T5 和 U-PaLM)的性能。Flan-T5-XXL 模型在超过 1000 个额外任务上进行了微调,还覆盖了更多语言。
图像来源于 Flan-T5-XXL
**资源: **
-
研究论文:规模化指令微调语言模型
-
GitHub:google-research/t5x
-
演示:Chat Llm 流媒体
结论
有许多开源选项可供选择,我提到了其中一些受欢迎的选项。开源聊天机器人和模型正在不断改进,未来几个月你会看到一个新的模型,它的性能可能会完全超越 ChatGPT。
在这篇博客中,我提供了一些模型/聊天机器人框架的列表,这些框架可以帮助你训练和构建类似于 ChatGPT 和 GPT-4 的聊天机器人。别忘了给它们点赞和评分。
如果你有更好的建议,请在评论区告诉我。我很乐意在未来添加它。
Abid Ali Awan (@1abidaliawan) 是一位认证的数据科学专业人士,喜欢构建机器学习模型。目前,他专注于内容创作,并撰写关于机器学习和数据科学技术的技术博客。Abid 拥有技术管理硕士学位和电信工程学士学位。他的愿景是使用图神经网络为那些饱受心理疾病困扰的学生开发一个 AI 产品。
更多相关话题
获取机器学习职位面试的 8 种途径
原文:
www.kdnuggets.com/2019/10/8-paths-machine-learning-job-interview.html
comments
作者 Jaxson Khan,Khan & Associates 的首席执行官。
对于机器学习职位,获得面试有时是获取工作的最困难(也是最令人沮丧)部分,比通过面试更难。因此,在本文中,我们将帮助你搞清楚如何首先获得机器学习的面试。本文来源于 Jaxson Khan 的 终极机器学习面试指南。
我将这一部分分为传统方法和较新的主动方法,这可能帮助你在初创公司中脱颖而出。
传统的面试获取途径
1. 职业网站和标准申请
大多数公司在他们的职业网站上发布职位信息。你可以始终瞄准某家公司,并回应特定的职位发布,或通过该职位门户提交表示对公司更广泛兴趣的通用申请。你还可以在 Indeed 或 LinkedIn 等网站上找到机器学习职位的发布。这些是经典的途径,绝对值得投入一些时间。
最近的求职者告诉我,他们喜欢 Breakoutlist、AngelList 和 Triplebyte。
也有专门针对机器学习领域的职位板,如 ML Jobs List。
我还听说来自风险投资公司的汇总器,如 First Round Capital、Greylock 和 Costanoa,都相当不错。
2. 招聘人员
通常,你会在面试过程中与招聘人员合作,但你不必仅仅等待他们联系你。有时你可能希望直接联系招聘人员,无论是在公司内部(内部招聘人员)还是与公司联系优秀候选人的第三方招聘人员。
一些招聘人员专注于机器学习和人工智能。他们通常在 LinkedIn 个人资料标题中包含这方面的信息,或者列出更为一般的描述,如“技术招聘人员”。招聘人员的重要之处在于,他们可能知道一些在线上未发布的职位。请记住,大约 50%的职位不会公开列出。快速搜索 LinkedIn 会让你了解到一些可能能够找到最相关公司的招聘人员。
3. 招聘会和交易展
招聘会呈现出一种相当令人畏惧的视角:谁愿意在一堆其他候选人中徘徊,试图追赶公司代表的摊位?但特别是主要大学的招聘会可能会相对不错。然而,我真正的推荐是,您本地机器学习社区的网络活动和聚会可能会比传统的招聘会更好。(继续阅读,了解更多!)
主动获取面试机会的路径
虽然上述选项相当传统,但候选人越来越常采取不同的方法来获得面试机会。通常你需要积极主动,展示创造力和毅力才能获得职位。初创公司是人工智能和机器学习中新工作的主要领域,并以开创不同类型的面试风格而闻名。
4. 参加或组织一个活动
这通常是认识您社区中对人工智能和机器学习感兴趣的人的最佳方式,您还可能从参与者那里了解到工作机会。根据您的需求,您可以选择大型会议或较小、更专注的社区聚会。
会议
ICML 是全球领先的国际机器学习会议之一,已有超过 35 年的历史。通常在加利福尼亚州举办,汇聚了关于机器学习当前状态和未来的专家讲者。如果你是机器学习工程师,你应该考虑这个活动,但与机器学习相关的每个人在这里都有可能找到适合自己的内容。
这个会议专注于人工智能和机器学习的最新突破。它是一个 O’Reilly 活动,汇集了科学与商业,邀请了来自顶级软件公司的讲者,提供培训课程和网络机会。它是了解人工智能不同应用的绝佳场所。特别适合产品经理和商业智能开发人员。
另一个长期的会议(自 1987 年以来),这个会议可能是最专注于理论和最新机器学习发展研究的。它显著关注计算神经科学,因此对于机器学习研究人员或理论背景的个人来说,这是一个理想的选择。
聚会
有时候,参加较小的社区活动可能对你更有利,因为你能留下更大的印象,并在一段时间后甚至担任领导角色。这也是认识当地社区成员的一种方式。通常,大型活动充满了供应商和专注于大合作伙伴关系的人。小型活动可以让你更容易接触到招聘经理,并帮助你与可能在未来帮助你的同行建立联系。你还可能找到演讲机会或开始在社区中建立你的声誉。
进行聚会的最佳网站之一是 Meetup.com。你会在这个网站上找到各种聚会。有些相当大;例如,纽约机器学习聚会 拥有超过 13,000 名成员。但不要被这些人数吓到;许多人可能会注册但实际上不参加。通常较小的聚会人数在 10 到 200 人之间。
如果你找不到合适的聚会或附近没有合适的聚会,可以自己创建一个!我知道许多求职者通过创建相关的社区小组获得了职位。这使你成为社区中的连接者或影响者。这是一个很好的角色,可以添加到你的简历中。
5. 自由职业和建立作品集
没有理由不能立即开始从事机器学习工作。最简单的方法之一是开始自由职业。这对设计师、工程师和数据科学家来说可能最容易,但研究人员和产品经理也有机会。像 Upwork 或 TopTal 这样的网站,使得作为一名技术专业人士,你可以轻松创建个人资料,找到短期合同和长期项目,甚至是更长期的合作机会。
作品集可以帮助你建立个人品牌,同时也是你工作的在线经验记录。它还可以为你提供一些早期的推荐和评价,供你传递给潜在的雇主。当然,它也可能让你做一些真正有趣的工作,进而激发博客文章或其他内容,这些内容可以用来扩展你的个人资料。
从最终的角度来看,自由职业也可能是一个很好的主意,可以帮助你验证你感兴趣的不同类型的工作和行业,帮助你缩小求职范围,并在未来更具针对性。
如果你在寻找额外的提升,可以通过 Springboard 的在线 机器学习训练营 专注于作品集,并获得指导支持。
6. 参与开源项目
另一个在机器学习社区中建立联系的方法是参与开源项目。这些是由分布式社区共同开发的非专有代码库和存储库,通常不以盈利为目的或被公司拥有。它们通常托管在Github的开源存储库中。这包括自然语言工具包项目,它帮助处理作为数据源的人类语言,以及构成 Python 数据科学和机器学习工具包的各种库。
招聘工程师的公司通常特别倾向于基于开源贡献进行招聘,有时会通过你所写的内容找到你。这类似于作品集效应。人们通常会在线查找你,并希望看到你所做的工作。
7. 参与竞赛 / 黑客马拉松
如果你更愿意在更封闭或时间限制的环境中使用你的技能,也许参加竞赛或黑客马拉松是一个不错的选择。
还有像Kaggle这样的机器学习竞赛和许多黑客马拉松,允许你快速解决实际的商业或社会问题。这是一个展示你的机器学习和人工智能技能的绝佳方式,同时你也能结识新朋友并展示你能够带来改变的能力。
8. 信息访谈
最终,你可以采取的最后一条途径或步骤是经典的,但可能是不可替代的。最终,人际关系能够让你踏上求职之路,并帮助你达成交易。超过一半的职位甚至不会在招聘网站上发布,有时穿透公司看似不可突破的外壳的唯一方式是开始结识该公司的人,并与他们建立强大的关系。
网络建设的最佳方式之一是请求对方仅花费一点时间。一个简短的咖啡约会是理想的。按照对方的时间安排,在他们选择的地方见面。通过电子邮件或 LinkedIn 消息联系,简短说明一下你作为候选人的独特之处。你还可以使用Steve Blank 的这个绝佳框架。
如果你成功约到咖啡,视其为一个从业内人士那里寻求建议和信息的机会。如果你擅长扩展网络,你将真正了解这个行业的运作方式。
个人简介: 贾克逊·汗 是 Khan & Associates 的首席执行官 | 人工智能与金融科技顾问和作家 | 教育与经济发展志愿者。
相关内容:
我们的三大课程推荐
1. Google 网络安全证书 - 快速进入网络安全职业的捷径。
2. Google 数据分析专业证书 - 提升你的数据分析技能
3. Google IT 支持专业证书 - 支持你的组织进行 IT 管理
更多相关话题
数据专业人士寻找数据集的 8 个地方
原文:
www.kdnuggets.com/2020/12/8-places-data-professionals-find-datasets.html
评论
由 Manuel Geissinger 拍摄,来自 Pexels
我们的前三大课程推荐
1. Google 网络安全证书 - 快速进入网络安全职业生涯。
2. Google 数据分析专业证书 - 提升您的数据分析技能
3. Google IT 支持专业证书 - 支持您的组织进行 IT 管理
熟能生巧——这是掌握任何主题或行业的最佳方式。涉及数据集时,扩展您的视野是必要的,因为这个领域非常广阔。
对于从事任何形式的数据工作的人来说,从机器学习到数据可视化,以下网站和资源对于实践都是非常宝贵的。
1. Kaggle
Kaggle 是一个可靠的实践数据资源。它将编写和分享代码纳入一些数据集中,这为您掌握该领域提供了额外的好处。您将处理自然语言处理(NLP)和图像分类等数据主题。
例如,对于文本挖掘,您可以深入 “星际迷航”剧本项目 并开始使用 Kaggle 提供的数据进行练习。这个数据仓库的独特之处在于,您可以看到其他用户在与您相同项目上的反馈。可能性是无限的。
2. 谷歌
谷歌作为一个庞大的搜索引擎,也涉足了无数其他领域。您可以 查看数据集搜索 页面,寻找您感兴趣的主题。如果您想探索动物与人类的关系,只需输入相关关键词,搜索结果将为您提供相关项目。
您还可以使用 Google Trends 和 Google Finance 查找任何您感兴趣的主题的数据。Trends 将展示术语的使用情况和搜索量,而 Finance 提供您可以处理的股票信息。
3. r/datasets
如果您希望通过社区化的方法寻找实践数据,可以转向 Reddit。Reddit 在某种程度上已经成为了一个搜索引擎。子版块 r/datasets 是一个典型的例子 体现了 Reddit 的资源丰富性。
你会发现许多志同道合的人对数据实践的来源提供了大量贡献。他们会分享他们发现有用的网站和项目,并指导你找到正确的路径。你也可以分享你自己处理过的项目,以保持积极的势头。
4. 美国政府
由于美国政府处理了大量数据集,它成为了一个理想的实践资源。特别是健康数据是你可以找到的最丰富的信息之一。超过 218,000 个数据集可供使用,你可以在任何领域找到项目。
当前的 COVID-19 大流行使无数数据集进入了公众视野。例如,你可以使用一个关于利用公共卫生数据抗击疫情的数据集。由于美国政府提供了大量的数据集,这个资源库是任何形式实践的理想选择。
5. 选举数据
虽然不是一个资源库,但选举数据随处可见。过去的总统选举引起了历史上前所未有的关注。由于大量的邮寄选票和基于技术的参与,这次选举以新的方式生成了数据集。
要练习一系列子主题——如探索性数据分析、机器学习、统计建模和可视化——你可以在任何资源库找到基于选举的数据集。Google、Kaggle 和美国政府将极为有用。
这次选举将产生持久的影响,这种相关性使其数据集在未来几年内成为良好的实践材料。
6. 人口普查数据
类似于选举数据,人口普查数据集也在不断变化。美国及全球人口在一年内会有所波动,尤其是在像 COVID-19 这样的致命疫情下。
GitHub 是一个突出的数据集资源。对于人口普查数据,你可以下载特定项目,这将帮助你进行探索性数据分析、建模、可视化和统计分析。处理人口普查信息每次都会带来新的收获,你可以尽可能地缩小或放大数据。
7. Awesome Public Datasets
正如 GitHub 提供了人口普查数据集的资源,它还托管了互联网上最好的数据实践资源之一。Awesome Public Datasets提供了各种各样的信息供你使用。
GitHub 从公共资源如博客、用户和任何形式的公共数据中收集数据。你会发现从农业到博物馆再到软件的各种主题的数据集。使用 GitHub 时,你可以将你的兴趣与最佳实践相匹配。
8. UCI
既然机器学习已成为科技世界的必需部分,了解其工作原理至关重要。专注于机器学习的数据集是掌握该领域的最佳方式。UCI 机器学习库是 最好的资源之一。
该网站收集了各种数据库、数据生成器和理论,这些都是机器学习的关键。你将分析算法,并深入理解机器学习为何如此有价值。UCI 应成为这项研究的主要资源。
最佳数据实践
这些资源和库是互联网上进行数据集深入练习的最佳场所之一。最终,你会希望选择那些激发你兴趣的网站。如果你想深入研究机器学习,UCI 将是理想的资源。如果你想处理人口信息,美国政府将是不可或缺的。
由于这些资源提供免费的项目练习,你可以进一步扩展视野,并在简历上展示各种数据集分析。
简介:Devin Partida 是大数据和技术作家,以及 ReHack.com 的主编。
相关内容:
-
数据科学中的前 10 名列表
-
Python 中数据集拆分的最佳实践
-
数据专业人士如何为简历增加更多变化
更多相关话题
2023 年数据科学的 8 种编程语言
原文:
www.kdnuggets.com/2023/07/8-programming-languages-data-science-learn-2023.html
作者提供的图片
1. Python
我们的前 3 名课程推荐
1. Google 网络安全证书 - 快速进入网络安全职业生涯。
2. Google 数据分析专业证书 - 提升你的数据分析能力
3. Google IT 支持专业证书 - 支持你的组织在 IT 领域
Python 是数据分析、机器学习和自动化任务中最受欢迎的语言,因为它简单、拥有大量的数据科学工具库如 NumPy 和 Pandas、与 Jupyter Notebooks 的集成使得实验和可视化变得容易,并且它在广泛用途上的多样性,使其成为初学者学习数据科学时的理想语言。
如果你刚开始从事数据科学工作,我强烈建议你从 Python 及其最受欢迎的数据科学库如 NumPy、Pandas、Matplotlib 和 Scikit-Learn 入手。学习 Python 及这些库将为你提供一个坚实的基础,使你高效完成任务,并减少麻烦,为你在数据科学领域的成功奠定基础。
2. SQL
学习 SQL 对任何从事数据工作的人来说都至关重要。你将使用它从 SQL 数据库中提取和分析信息,这是数据专业人士的基本技能。通过理解 SQL,你可以与关系数据库管理系统如 MySQL、SQL Server 和 PostgreSQL 互动,有效地检索、组织和修改数据。
SQL 的基础包括使用 SELECT 语句选择特定数据,使用 INSERT 语句插入新数据,使用 UPDATE 语句更新现有数据,以及使用 DELETE 语句删除过时或无效的数据。
3. Bash
Bash/Shell 不是传统的编程语言,它们是处理数据的宝贵工具。Bash 脚本允许你将命令串联起来,以自动化执行重复或复杂的数据任务,这些任务手动执行会非常繁琐。
Bash 脚本可用于通过搜索、过滤和组织数据来操作文本文件。它们可以自动化 ETL 管道,以提取数据、转换数据并将其加载到数据库中。Bash 还允许你从命令行对数据文件进行计算、拆分、连接和其他操作,并使用 SQL 查询和命令与数据库互动。
4. Rust
Rust 由于其强大的性能、内存安全性和并发特性,正成为数据科学中一个新兴的语言。然而,Rust 在数据应用方面仍相对较新,与 Python 相比有一些劣势。
作为一种较年轻的语言,Rust 在数据科学任务中拥有的库远少于 Python。Rust 的机器学习和数据分析库生态系统仍需成熟,这意味着大多数代码库必须从头开始编写。
然而,Rust 的优势,如性能、内存和线程安全,使其适合构建高效可靠的数据科学系统后端。Rust 非常适合需要低级代码优化和并行化的数据管道。
5. Julia
Julia 是一种专门为科学和高性能数值计算创建的编程语言。其独特的特点之一是能够在编译过程中优化代码,使其性能能够与 C 语言相当,甚至更好。此外,Julia 的语法受到了 MATLAB、Python 和 R 等流行编程语言的启发,使得已经熟悉这些语言的数据科学家更容易学习。
Julia 是开源的,并且拥有一个不断发展的开发者和数据科学家社区,为其持续改进做出贡献。总体而言,Julia 提供了生产力、灵活性和性能的良好平衡——使其成为数据科学家,尤其是那些处理性能受限问题的科学家的宝贵工具。
6. R
R 是一种流行的编程语言,广泛用于数据科学和统计计算。它非常适合数据科学,因为它拥有丰富的内置函数和库,用于数据操作、可视化和分析。这些函数和库使用户能够执行各种任务,如导入和清理数据、探索数据集和构建统计模型。
R 也因其强大的图形能力而闻名。该语言包括各种用于创建高质量图表和可视化的工具,这对数据探索和沟通至关重要。
7. C++
C++是一种高性能的编程语言,广泛用于构建高性能复杂的机器学习应用程序。尽管在数据科学中的使用不如 Python 和 R 等其他语言普及,但 C++具有多个特性,使其在某些数据科学任务中成为绝佳选择。
C++的一个关键优势是其速度。C++是一种编译语言,这意味着代码在执行之前会被转换成机器码,这可能导致比像 Python 和 R 这样的解释型语言更快的执行时间。
C++的另一个优势是它处理大型数据集的能力。C++具有低级内存管理功能,这意味着它可以高效地处理非常大的数据集,而不会遇到其他语言可能遇到的内存问题。
8. Scala
如果你在寻找一种比 Java 更简洁、更少冗余的编程语言,那么 Scala 可能是一个很好的选择。它是一种多用途和灵活的语言,结合了面向对象和函数式编程范式。
Scala 在数据科学中的主要优势之一是它可以无缝集成到像 Apache Spark 这样的“大数据”框架中。这是因为 Scala 运行在与这些框架相同的 JVM 上,使其成为分布式大数据项目和数据管道的绝佳选择。
如果你打算从事数据工程或数据库管理的职业,学习Scala将帮助你在职业生涯中脱颖而出。然而,作为数据科学家,掌握这门语言并非必要。
结论
总之,如果你对数据科学感兴趣,学习这些八种编程语言中的一种或多种可以帮助你启动或推进在这个领域的职业生涯。每种语言都有其独特的优点和缺点,具体取决于你要完成的数据科学任务。
在数据科学编程语言方面,Python 因其用户友好特性、灵活性和强大的社区支持而成为热门选择。其他语言如 R 和 Julia 也很不错,提供了卓越的统计计算、数据可视化和机器学习支持。C++和 Rust 推荐给那些需要高性能和内存管理能力的人。Bash 脚本在自动化和数据管道方面很有用。最后,学习 SQL 非常重要,因为它是任何技术工作的必备语言。
Abid Ali Awan (@1abidaliawan) 是一名认证数据科学专家,喜欢构建机器学习模型。目前,他专注于内容创作和撰写关于机器学习和数据科学技术的技术博客。Abid 拥有技术管理硕士学位和电信工程学士学位。他的愿景是利用图神经网络为患有心理疾病的学生开发一个 AI 产品。
相关主题
2 年内提升数据科学技能的 8 种方法
原文:
www.kdnuggets.com/2017/11/8-ways-improve-data-science-skills-2-years.html
数据科学是一个不断成长并始终受欢迎的领域。只需简单地搜索“顶级数据科学技能”,你就会找到数百甚至数千篇关于该主题的博客、文章和视频。
我们的前三个课程推荐
1. Google 网络安全证书 - 快速进入网络安全职业的快车道
2. Google 数据分析专业证书 - 提升你的数据分析技能
3. Google IT 支持专业证书 - 支持你的组织在 IT 领域
Ferris Jumah,LinkedIn 的全栈数据科学家,几年前发布了一篇文章详细介绍了数据科学家最受欢迎的技能,这些技能基于他们的 LinkedIn 资料数据。现在已经过时了,所以可以肯定,现代科学家的技能和工具有很多不在列表中。
看着像 Jumah 的列表时,首先想到的问题是你实际上需要多少这些技能才能在行业中蓬勃发展。真的有谁能做到所有这些技能吗?
很可能是这样,但也可能不是。对你来说最重要的是你能掌握多少这些技能,并熟练运用。也许更重要的是,这些技能可以多快地掌握?
这不一定要像终身刑一样感觉。继续阅读以获取启动你的数据科学、机器学习或统计学家职业的技巧。
第一步:承认你有问题
这听起来像是康复计划的第一步——在某种程度上确实如此。无论你是谁,总会有一个雄心壮志,希望在你的领域中达到绝对顶尖。
数据科学尤其培养这种态度,因为即使你不是在不断学习新事物,你仍然需要保持对你经常使用的技能和流程的了解。这是一个始终在前进和发展的行业,这意味着你也需要保持同样的状态。
但这并不意味着你必须了解或参与所有内容。这就是问题所在。第一步是承认你不会专注于数据科学家可以使用的每项技能。是的,你需要核心技能——主要是分析和数据处理——但其他一切则是附带的。
那么?缩小你的重点。选择你最常用的技能以及对你的职业生涯最有益的技能。例如,如果你的计划是使用 Python 或基于 Hadoop 的系统,那么学习其他语言虽然能丰富你的知识储备,但并不会真正帮助你提升核心技能。
第二步:加速你的学习
两年。你应该将最多两年的时间专注于学习、教育和培训。是的,如果你对这个行业还很陌生,可以在此之前进入职场,但重点是你绝不希望在没有实际领域经验的情况下超过两年。
这正是为什么本指南专注于在两年内磨练最有益技能的原因。目标是每周投入大约十五到二十小时来发展你的知识和技能。有几种方法可以做到这一点:
-
通过 Coursera、Treehouse、Lynda 和 CodeSchool 参加在线课程,专注于你想学习的技能。这些课程不一定要与数据科学相关。相关语言的编程课程,如 Python,也很有效。
-
尽可能多地阅读关于数据科学的资料。这包括学术论文、教科书以及其他教育材料,甚至是当前的行业报告。
-
加入一个数据科学或开发社区。有很多社区可以选择。关注社区分享的帖子和材料,参与最重要的讨论。你可以从同行那里学到很多东西。
-
如果可以,找到一位在行业内工作或具有数据科学经验的导师。这包括程序员和开发人员、数据科学家、统计学家、工程师等。定期与他们见面,提出问题,听取他们的经验。
-
定期访问 UCI 机器学习库 并参与数据问题。R、Excel 及类似平台是你的好帮手。如果解决一个问题花费的时间超过了预期,不要灰心。坚持下去,你会随着时间的推移提高效率。
-
遵循脚本、预处理数据和自动化任务,并依赖框架或数据库。这将最大限度地减少你需要自己创建算法和代码的时间,并增加实际进行数据科学和机器学习的时间。
-
找一份涉及机器学习、数据科学、分析或基本统计的入门级工作。 数据迁移是一个很好的机会 适合入门级或初学者的数据科学家。你可以通过这些项目奠定知识基础,并在理解了基础后轻松自动化一些任务。
-
参与一个你感兴趣的开源数据科学或机器学习项目。把它当作一个爱好或业余项目,在闲暇时间享受工作。
此外,当你有机会时,深入学习并开始使用一些流行的数据科学工具。到你进入职场时,你将已经对你雇主使用的平台有了基本的了解和经验。
第三步:永不停止成长
重要的是要理解,无论你多么努力工作,学习多少,你都不可能在两到三年内成为专家。这不是一个现实的目标。但这并不意味着你不应该努力继续成长和提升你的技能。恰恰相反!
即使你花了两年时间进行培训——相信与否,这段时间会很快过去——你仍然会想要在新领域中继续提升你的技能和经验。如果你没有学习新事物的愿望,那也没关系——只要确保你保持对当前技能和项目的掌握。
听起来有些重复,但要继续参与这些开发和机器学习社区,并密切关注新的课程和在线资源。
例如,从 2006 年到 2016 年,流行的数据科学家职称 从仅仅“数据或商业分析师”发展到包括数据科学家、商业分析师、大数据专家、机器学习专家、数据可视化专家等。随着主要品牌和组织采用这项技术并实施新的机器学习和数据科学计划,这种增长现在比以往任何时候都要快。
简而言之,这将给行业中的专业人士施加更大的压力,要求他们不断成长,变得更加熟练和经验丰富,涵盖更广泛的主题和技能。
一切都意味着你必须保持对核心知识和技能基础的掌握。
无论如何,永远不要停止成长和学习。
否则,你可能会发现自己在行业中被远远甩在了后面。
简介: 凯拉·马修斯 在《The Week》、《数据中心期刊》和《VentureBeat》等出版物上讨论技术和大数据,并且已经写作超过五年。要阅读更多凯拉的文章,订阅她的博客 Productivity Bytes。
相关内容:
-
每个数据科学家都应该随身携带的 6 本书
-
进入数据科学:你需要知道的
-
如何面试数据科学家
相关话题
8 位努力使世界人性化的人工智能女性
原文:
www.kdnuggets.com/2021/03/8-women-ai-striving-humanize-world.html
编辑注:本文最初于 2021 年 3 月 8 日发布。
人工智能能否积极改变世界?
Wired 报道了人工智能领域存在性别偏见,并在 2018 年发现只有 12%的人工智能研究者是女性。当我开始担任数据分析师时,乌克兰的数据科学工程师职位并不普遍。而且,女性数学专业毕业生如果没有特殊技能和经验,这些职位大多不对她们开放。自学和了解机器学习算法花费了我不少时间和精力。如今,我在 MobiDev 担任人工智能工程师,随着经验的增加,我越来越愿意通过文章和网络研讨会与大家分享我的经历。
我们的三大课程推荐
1. Google 网络安全证书 - 快速通道进入网络安全职业。
2. Google 数据分析专业证书 - 提升您的数据分析技能
3. Google IT 支持专业证书 - 支持您组织的 IT
今天,我想谈谈一些在人工智能领域工作的杰出女性,她们在日常工作中激励着我。
其中两位,乔伊·布奥拉姆维尼和李飞飞,以及其他人,曾在 2019 年国际妇女节期间获得 KDnuggets 的表彰。
乔伊·布奥拉姆维尼 - 算法公正联盟创始人
算法公正联盟的使命是提高公众对人工智能及其对减少人工智能偏见和伤害的影响的认识。她在 2018/2019 年发布的开创性研究显示,亚马逊、微软、IBM 等公司使用的面部识别软件并不“机器中立”。在识别较暗肤色女性面孔时,其表现明显低于对白人男性面孔的准确性。Fast Company 报道称,该软件基于布奥拉姆维尼的研究被撤下市场以进行重新配置。
李飞飞 - 斯坦福大学计算机科学教授
李飞飞是斯坦福大学教授,也是斯坦福大学以人为本的人工智能研究所的创始人。她开发了ImageNet,首次发布于 2009 年,作为训练工具教人工智能如何识别物体。ImageNet 被认为是人工智能数据集训练的起点,首次测试的准确率达到 71.8%。从那时起,年度 ImageNet 挑战赛成为了一个比赛,目的是看哪个算法以最低的错误率识别物体。最后一次比赛是在 2017 年,当时获胜算法的准确率达到了 97.3%,超越了人类能力。
但这里还有另外八位尚未获得 KDnuggets 荣誉的女性,她们以积极的方式使用人工智能,其对创造更美好世界的贡献非常重要。名单按姓氏字母顺序排列。
1. 莫妮卡·阿巴卡,qAIRa 联合创始人兼首席执行官 – 让地球变得更清洁
作为 qAIRa 的联合创始人兼首席执行官,莫妮卡·阿巴卡开发了应对空气污染的技术解决方案。严重的空气污染每年造成超过四百万人死亡。qAIRa 公司结合了无人机技术与空气质量监测,利用数据分析来识别空气污染,并制作实时地图显示关键区域。
政府官员使用这些信息来保护公众免受空气污染物在紧急情况下的危害,例如工业气体泄漏、自然灾害或化学品泄漏。这些人工智能驱动的系统的另一个用途是通过有效监控空气污染减缓计划的目标区域来改善总体空气质量。
2. 瑞吉娜·巴尔齐莱,麻省理工学院教师负责人及教授 – 帮助预防乳腺癌
在麻省理工学院担任教师负责人和教授的瑞吉娜·巴尔齐莱,长期以来一直是人工智能领域的思想领袖。她是第一个获得 100 万美元奖金的 AAAI 松鼠人工智能奖(为了人类利益的人工智能)的人。
巴尔齐莱教授积极倡导制定标准,确保在应用人工智能技术时公平与公正,尤其是在医学领域。她举了 Tyrer-Cuzick 模型的例子,该模型通过分析影像数据来确定患者罹患乳腺癌的风险。这个系统在白人女性中有适度的准确性,但在非洲裔或亚洲裔女性中表现极差。
这种失败发生是因为软件没有在足够的种族多样性图像集上经过充分的机器训练。这个问题源于不良的研究者偏见。它是显而易见且不可接受的。Barzilay 教授坚持认为,软件开发者应通过在不同人群中验证人工智能软件或将其开源,以使用不同的模型比较系统准确性,从而消除偏见。
3. Hulya Emir-Farinas, 数据科学总监,FitBit – 研究人们如何获得健康生活的动力
作为 Fitbit 研发部的数据科学总监,Dr. Emir-Farinas 利用结合了行为科学和医疗保健的机器学习的人工智能应用工作。她致力于回答以下问题:
-
什么激励个人追求更健康的生活方式?
-
什么是真实的和想象中的障碍,阻碍了积极的改变?
-
Fitbit 如何增强用户在生活方式改变方面的能力?
回答这些问题需要一种多学科的方法,包括行为经济学、行为科学、健康科学和机器学习,以提供适当的干预、鼓励,并使解决方案具有更多的个性化。
4. Dina Machuve, 纳尔逊·曼德拉非洲科技学院讲师和研究员 – 改善农业
在纳尔逊·曼德拉非洲科技学院,Dina Machuve 是一名讲师和研究员。她专注于创建数据驱动的解决方案以改善农业。一个应用是一个诊断系统,通过生物信息学和计算机视觉技术帮助识别家禽疾病。
目前有超过 3.8 亿的家庭农场为发展中国家 70%的人口提供食物。Manchuve 的解决方案现在已在坦桑尼亚部署,使用系统的数据收集和分析在小型到中型农场中进行。该项目展示了使用深度学习的人工智能方法在疾病诊断中提高畜牧健康的价值。它通过收集来自 370 万户养鸡家庭的低资源环境中的数据进行分析。
5. Deborah Raji, Mozilla 研究员 – 防止人口统计偏见
Deborah Raji 在电子前沿基金会先锋奖颁奖典礼上获得了 2020 年巴洛奖,以表彰她在人工智能种族偏见方面的工作。她的重点是人工智能在处理美国司法系统时对少数族裔产生的负面影响。她倡导消除并替换美国许多城市执法部门使用的严重缺陷的面部识别和监控系统。
6. Tempest van Schaik, 高级机器学习工程师,微软 – 帮助患有囊性纤维化的儿童
作为微软的高级机器学习工程师,Tempest van Schaik 在微软 Azure 云服务的数据科学部门的商业软件工程团队工作。该团队负责为云端编写高级 AI 项目代码。
一个令人兴奋的项目是 Fizzyo,一个通过将呼吸练习转化为视频游戏控制来改善囊性纤维化患者的物理治疗的设备。该设备使接受治疗的儿童的体验更加有趣,并在孩子玩耍时收集每一次呼吸的数据,从而实现更好的治疗效果。
7. Lucy Vasserman,Google 员工软件工程师 – 帮助动物保护
在 Google,Lucy Vasserman 作为员工软件工程师从事创新的 AI 项目。Google 与保护组织合作,利用 AI 研究野生动物。自 1990 年代以来,这些组织使用相机陷阱收集了 450 万张动物照片。这个图像数据库形成了 Wildlife Insights 的初始图像库。其他人可以添加相机陷阱图像,帮助全球映射野生动物,并建立不断增长的图像数据库。任何人都可以在线访问该数据库 探索照片 和相机陷阱的位置地图。
Vasserman 在该项目上工作,使其能够识别大约 100 种物种。它每小时可以处理和分类 3,600 张照片。机器学习软件分析图像,以发现如个别物种的种群规模、捕食者/猎物互动以及野生动物对人类狩猎和栖息地侵占的反应等趋势。
8. Fernanda Viégas,Google 首席科学家 – 制作复杂数据的吸引人可视化
在 Google,Fernanda Viégas 作为数据可视化专家工作。她与其他 Big Picture team 成员共同创建的可视化系统可以在 fernandaviegas.com 上体验。她是 Google PAIR(人类 + AI 研究)的联合负责人。
她的一些项目展示了风流动、维基百科编辑活动的协作模式以及世界新闻事件的动态地图。Viégas 博士制作的高度可视化、数据驱动的艺术作品是纽约现代艺术博物馆永久收藏的一部分。
作为一位来自非技术背景的拉丁裔女性,她在麻省理工学院媒体实验室获得了博士学位。她努力增加技术领域的多样性倡议,以减少女性和少数群体在数据科学中的代表性不足。
结论
鼓励女性参与人工智能,因为它具有改变世界的特性,并且有助于减少存在的性别偏见。以已故美国最高法院大法官露丝·巴德·金斯伯格为榜样。当被问到“她希望最高法院有多少女性大法官?”时,她回答说:“所有人。”
柳德米拉·塔拉年科 是 MobiDev 的首席数据科学家。
更多相关话题
9 本免费书籍,供学习数据挖掘和数据分析之用
原文:
www.kdnuggets.com/2014/04/9-free-books-learning-data-mining-data-analysis.html
评论作者 Alex Ivanovs,CodeCondo,2014 年 4 月 29 日。
数据挖掘、数据分析,这两个术语常常让人觉得很难理解——复杂——而且需要接受最高水平的教育才能理解。
我只能不同意,正如我们在这个美妙的生活中所经历的一切一样,我们只需要花费一定的时间学习某些东西,练习它,然后我们会意识到其实并没有那么难。
毫无疑问,这个世界上有很多聪明的人,他们在像谷歌、苹果、微软等大公司工作,还有许多其他公司(包括安全机构),但如果我们继续仰望他们,我们将永远觉得这很难,因为我们从未给自己机会去看实际的例子和事实。
通过学习这些书籍,你将快速揭示数据挖掘和数据分析的“秘密”,并希望能够更好地判断它们的作用,以及它们如何帮助你在当前和未来的工作项目中。
我只想说,为了学习这些复杂的主题,你需要保持完全开放的心态,接受每一个可能性,因为这通常是学习发生的地方,毫无疑问你的大脑会多次被点燃。
[数据柔道:将数据转化为产品的艺术]
](http://www.oreilly.com/data/free/data-jujitsu.csp) DJ Patil 向我们简要介绍了数据问题的复杂性,如何从更好的角度来看待它们,以及我们是否应该尝试解决那些看似不可能的问题。他提供了完全合理且易于理解的例子,这本书是你收藏中的一份不错的数据书籍,质量知识免费提供。
你可以通过填写右侧的字段来获取这本书的副本。(我认为即使不填写也可以)
本维基书旨在通过整合每种技术的三部分信息来填补这一空白:描述和原理、实施细节和使用案例。
每种技术的描述和理由提供了理解实现和将其应用于实际场景所需的背景。实现细节不仅揭示了算法设计,还解释了其参数,基于之前提供的理由。
最后,使用案例提供了在合成数据集和真实数据集上应用算法的体验。
这本书正是我在帖子开头提到的,包含了大量针对初学者的真实经验,帮助你更好地理解数据处理的整个过程以及算法的工作原理。
这显然是一个正在进行中的工作,但已经有很多章节可供阅读,不过最后一章似乎现在已经延迟了几个月。不过,前几章对于掌握基础知识至关重要,强烈推荐。
这是一本非常高质量的书,包含了更多高级技术和方法,目前仍在编辑/撰写中,预计将在今年晚些时候发布。你可以通过这个链接查看官方草稿(PDF),你会惊讶于有多少信息可以浏览!
非常适合喜欢通过插图和大量真实例子学习的学习者。
我提到了像 Google 和 Apple 这样的大型公司,原因很简单:我们在各个领域都能看到数据挖掘和分析,而不仅仅是特定的科学和学科。
实际上,像 Google Analytics 这样的平台严重依赖于基于高质量数据科学知识构建的算法,广告公司也是如此,这是本白皮书/电子书讨论的主要话题。
Jeffrey M. Stanton向我们简要介绍了数据科学,以及它本质上不仅仅是一系列与数据挖掘相关的任务。用他的话说,它更像是一种艺术形式,与许多行业互动,比一些人认为的要多。
此外,数据科学远不仅仅是分析数据。许多人喜欢分析数据,可以整天研究直方图和平均值,但对于那些喜欢其他活动的人,数据科学提供了多种角色和所需的技能。让我们通过考虑一些购买谷物盒子时涉及的数据来深入了解这一观点。
海量数据挖掘
简而言之,这本书非常适合那些希望了解更多关于网络数据挖掘的人,它讨论了在设计网络和处理网络数据时最常见的问题。
这本书在每一章节末尾都会提供大量的示例和任务,并且是一本相当适合初学者的书;它要求你有一定的数据算法经验,掌握一些数学和数据库经验也不会有坏处。
数据学校手册
数据学校是一个很棒的地方,他们提供了针对所有水平的各种课程,这本手册非常适合作为他们课程材料的补充。我真正喜欢这本手册的是,它提供了大量的后续链接,方便项目创建。
一个很好的例子是指向那些之前建立了数据集的网站链接,对于那些希望了解更多关于数据及其工作原理的人至关重要!
高级文本挖掘的理论与应用
我们将用一本由九章组成的书来结束我们的免费数据挖掘和数据分析学习书籍列表,这本书的每一章几乎都是由不同的人编写的;但它们放在一起时显得非常有意义。
本书的主要重点是文本挖掘,以及网络技术的发展如何影响数据科学和整体分析。值得拥有的一本好书!
从免费书籍中学习数据科学
没有什么比从书籍中学习,然后将新获得的知识付诸实践更好的方法了,否则我们很容易忘记实际学到的内容。这是一本每个有志成为数据科学家的读者都应该注意并添加到学习资料清单中的美丽书单。
你读过哪些书以帮助你开始数据挖掘和分析的旅程?我相信社区会很乐意了解更多,我也很期待看看我可能错过了什么。
根据请求重新发布。原文:codecondo.com/9-free-books-for-learning-data-mining-data-analysis/。
我们的前 3 个课程推荐
1. 谷歌网络安全证书 - 快速进入网络安全职业轨道。
2. 谷歌数据分析专业证书 - 提升你的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持你的组织 IT 工作
更多相关内容
9 门免费哈佛课程,助你从零开始学习数据科学
原文:
www.kdnuggets.com/2022/05/9-free-harvard-courses-learn-data-science-2022.html
图片由Danilo Rios拍摄,来源于Unsplash
上个月,我写了一篇关于如何利用MIT 提供的免费课程构建数据科学学习路线图的文章。
我们的前三个课程推荐
1. 谷歌网络安全证书 - 快速进入网络安全职业生涯的快车道。
2. 谷歌数据分析专业证书 - 提升你的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持你的组织 IT
然而,我列出的多数课程的重点是高度理论化的,且对学习机器学习算法背后的数学和统计学有很多强调。
尽管 MIT 的路线图将帮助你理解预测建模背后的原理,但缺乏的则是实际应用所学概念并执行真实数据科学项目的能力。
在网上花了一些时间后,我发现了一些哈佛提供的免费课程,涵盖了整个数据科学工作流程——从编程到数据分析、统计学和机器学习。
一旦你完成了这个学习路径中的所有课程,你还会获得一个综合项目,允许你将所学知识付诸实践。
在这篇文章中,我将列出 9 门你可以学习数据科学的免费哈佛课程。如果你已经掌握了某个主题,可以随意跳过相关课程。
第一步:编程
学习数据科学的第一步是学习编程。你可以选择用你喜欢的编程语言来做这件事——理想情况下是 Python 或 R。
如果你想学习 R 语言,哈佛提供了一门专为数据科学学习者设计的入门 R 课程,叫做数据科学:R 基础。
这个程序将带你了解 R 语言的概念,如变量、数据类型、向量运算和索引。你还将学习使用像 dplyr 这样的库来处理数据,并创建图表来可视化数据。
如果你更喜欢 Python,你可以选择参加由哈佛免费提供的 CS50 Python 编程入门 课程。在这门课程中,你将学习函数、参数、变量、数据类型、条件语句、循环、对象、方法等概念。
上述两个课程都是自定进度的。然而,Python 课程比 R 程序更详细,需要更长的时间来完成。此外,这个路线图中的其他课程都使用 R 教授,因此学习 R 可能会更有价值,以便能更轻松地跟上课程进度。
第 2 步:数据可视化
可视化是将数据发现传达给他人的最强大技术之一。
通过 哈佛的数据可视化 课程,你将学习使用 R 中的 ggplot2 库构建可视化图表,并掌握传达数据驱动见解的原则。
第 3 步:概率论
在 这门课程 中,你将学习进行数据统计测试所需的基本概率概念。所讲解的主题包括随机变量、独立性、蒙特卡罗模拟、期望值、标准误差和中心极限定理。
上述概念将通过案例研究进行介绍,这意味着你将能够将所学的知识应用于实际的真实世界数据集。
第 4 步:统计学
学习完概率论后,你可以参加 这门课程 来学习统计推断和建模的基础知识。
这个程序将教你定义人口估计和误差范围,介绍贝叶斯统计,并提供预测建模的基础知识。
第 5 步:生产力工具(可选)
我将这个 项目管理课程 作为可选内容包括在内,因为它与学习数据科学并不直接相关。而是教你使用 Unix/Linux 进行文件管理、Github、版本控制和在 R 中创建报告。
能够做到这些将节省你大量时间,并帮助你更好地管理端到端的数据科学项目。
第 6 步:数据预处理
该列表中的下一个课程是 数据处理,将教你如何准备数据并将其转换为机器学习模型容易处理的格式。
你将学习如何将数据导入 R、整理数据、处理字符串数据、解析 HTML、处理日期时间对象以及挖掘文本。
作为一名数据科学家,你经常需要提取以 PDF 文档、HTML 网页或 Tweet 形式公开在互联网上的数据。你不会总是获得干净、格式化的数据 CSV 文件或 Excel 表格。
到课程结束时,你将学会如何处理和清理数据,从中提取关键洞察。
第 7 步:线性回归
线性回归是一种机器学习技术,用于建模两个或更多变量之间的线性关系。它也可以用来识别和调整混杂变量的影响。
本课程将教你线性回归模型背后的理论,如何检查两个变量之间的关系,以及在构建机器学习算法之前如何检测和去除混杂变量。
第 8 步:机器学习
最后,你可能一直在等待的课程来了!哈佛的机器学习程序将教授你机器学习的基础知识、减轻过拟合的技术、监督学习和无监督学习建模方法以及推荐系统。
第 9 步:综合项目
完成所有上述课程后,你可以参加哈佛的数据科学综合项目,在这里你的数据可视化、概率、统计学、数据清洗、数据组织、回归分析和机器学习的技能将受到评估。
通过这个最终项目,你将有机会将从上述课程中学到的所有知识综合运用,并获得从头开始完成一个实际数据科学项目的能力。
注意:上述所有课程均在 edX 的在线学习平台上提供,并且可以免费旁听。如果你需要课程证书,则需要支付费用。
Natassha Selvaraj 是一位自学成才的数据科学家,热爱写作。你可以在LinkedIn上与她联系。
更多相关内容
9 种免费资源来掌握 Python
原文:
www.kdnuggets.com/2022/11/9-free-resources-master-python.html
编辑提供的图片
Python 被认为是最容易学习的高级通用 编程语言,可以帮助你构建可移植的跨平台应用程序。这,加上它的动态垃圾回收和简洁的代码,使它在人工智能相关应用中极具优势。
我们的前三大课程推荐
1. 谷歌网络安全证书 - 快速进入网络安全职业的快车道。
2. 谷歌数据分析专业证书 - 提升你的数据分析能力
3. 谷歌 IT 支持专业证书 - 支持你组织的 IT
但是,你如何从编写一个简单的“Hello World”应用程序过渡到使用 Python 进行更复杂的项目呢?以下指南将介绍九个资源,帮助你掌握 Python。
1. Invent with Python 的编程练习
InventWithPython.com 是一个由专业软件开发者 Al Sweigart 创建和维护的网站,他将大量时间投入到教人们编程上。Invent With Python 提供了一系列资源(主要以电子书形式)来帮助你开始用 Python 编程。然而,你应该对网站的 温和讲解的 Python 编程练习 最感兴趣。
掌握编程语言的最佳方式不是通过刻苦学习,而是通过实践;你必须使用编程语言才能真正学会它。Invent With Python 的《温和讲解的 Python 编程练习》适合初学者和中级程序员。它为每个练习中的问题提供简洁明了的解释,以帮助你提升到下一个 Python 熟练度层次。
2. Microsoft Visual Studio 2022(IDE)
正如任何工匠所言,你的水平与所使用的工具息息相关。虽然你可以使用 Python 默认的 IDE(IDLE)或类似 VS code 的文本编辑器,但功能齐全的 IDE 如 Visual Studio 2022 更适合构建高级 Python 应用程序。微软的 Visual Studio 被认为是最好的(如果不是最伟大的) IDE 之一。你可以轻松使用其内置的 pip 和 Pypl 支持来管理你的依赖项和库。
根据统计数据,部署一个简单的机器学习协议大约需要30 天。凭借 Visual Studio 的代码编辑工具,这个时间可以大大缩短。Visual Studio 具有工具提示、模板、自动完成和代码片段,使得处理和管理数据源变得更容易。
你无需外部工具来运行密集的单元测试——Visual Studio 2022 配备了广泛的测试工具。你可以调试、部署和维护远程测试环境,设置机器架构,并通过测试资源管理器跟踪所有内容。
Visual Studio 适合使用不同编程语言的多语言程序员。你只需下载每种语言所需的工作负载。Visual Studio 的社区版是免费的,应该足以满足大多数程序员的需求。不过,如果你想访问更多功能,可以下载专业版或企业版。
3. KDnuggets
虽然不想过于自夸,但 KDNuggets 是帮助你进一步提升 Python 开发技能的最佳资源之一。不论是让你与帮助你获得认证的课程联系,还是提供便于学习的备忘单,KDNuggets 可能成为你工具箱中最有用的武器之一。
我们还没有讨论博客。博客内容包括机器学习、编码、数据科学,以及由经验丰富的行业专业人士撰写和编辑的 Python 内容。
KDNuggets 适合各个级别的程序员和数据科学家。无论你是想要加速你的 Python 代码、掌握 Python 机器学习,还是为面试做准备,KDNuggets 都提供了适合这些场景的内容。
4. PyVideo
YouTube 无疑是学习编程的最佳场所之一。像 Pretty Printed、The Underdog 和 sentDex(额外的免费资源)这样的频道不仅教你编程,还教你如何作为开发者应对挑战。
YouTube 并不是唯一一个托管免费 Python 相关媒体的视频分享网站。编程相关的视频内容也可以在 Dailymotion、Vimeo、Facebook 等网站上找到。一些网站和服务更喜欢自行托管媒体,因此跟踪最佳内容可能会很困难。
这时,像 PyVideo 这样的工具派上用场了。它在互联网上找到并索引了所有最新的与 Python 事件相关的视频。你可以根据特定事件、语言、标签、讲者等查看内容。
PyVideo 让你可以了解 Python 的最新进展,来自一些业内最受尊敬的贡献者和程序员。这可能最终会激励你参加一些 Python 会议和活动,亲身体验一切。
5. Awesome Python
Awesome Python 是一个经过精心策划的 GitHub 上一些最佳 Python 框架、库和其他资源的列表。从音频处理库到加密学,它几乎包含了帮助你完成下一个 Python 项目的所有包。
6. TheAlgorithms
算法和数据结构推动数据科学的发展。即使作为一名自学的开发者,你也必须了解基本的算法(以及一些数学知识)。与 Awesome Python 类似,TheAlgorithms 是一个 GitHub 开源库,包含你可以插入到项目中的算法。
你应该注意到 TheAlgorithms 不仅包含 Python 算法库,还有 Java、JavaScript、Julia、R 等语言的算法。
7. Google’s Python Class
如果你是一个初学者,寻找一个能够适应你学习风格的沉浸式 Python 学习体验,不妨看看 Google 的 Python 课程。在过去十年中,Google 在计算机科学教育方面投入了大量时间和精力。Google 的 Python 课程包含讲座和教程视频、书面材料,以及许多练习和测试。该课程面向那些几乎没有编码经验的人,因此极其易于访问。
8. Programiz
Programiz 非常适合那些寻找 Google Python 课程替代方案的人。它提供了丰富的 Python(和其他编程语言)的学习工具。和 Google 类似,该网站采用多方面的方法来教你如何编码。
每个课程都像一本互动教材。每章都配有视频、各种书面说明、示例,以及一些你可以使用 Programiz 在线编译器自行运行的代码。然而,如果你对课程的结构不满意,Programiz 提供了一组标签,让你可以自己查看示例、参考资料和编译器。许多人发现编译器最有用,因为你可以快速运行和测试代码。
虽然 Programiz 是免费的,但它确实提供了一个 pro 版本,具有更多功能,包括课程结束时的专业证书。
9. Python Podcasts
音频媒体的最佳之处在于你可以在做其他事情时进行听取(即,锻炼、驾驶、做家务等)。有很多出色的编程和数据科学相关的播客对 Python 初学者非常有帮助。一些值得注意的包括:
-
The Real Python Podcast:这是一个每周播出的播客,由主持人 Christopher Bialy 于 2012 年创办。它涵盖了各种 Python 话题,包括职业和编程技巧。此外,播客还包括轻松的对话和采访,邀请了行业专家、有经验的程序员等。Real Python Podcast 网站的一个最佳功能是它提供了额外的资源,帮助你学习或提升你的 Python 开发技能。
-
Talk Python to Me:这是一个由 Michael Kennedy 主持的稍微休闲一点的每周播客。虽然节目多年来已经涵盖了许多 Python 话题,但它最初是一个采访行业专业人士关于 Python 编程现状的平台。收听 Talk Python to Me 是跟上 Python 所有最新发展的绝佳方式。该网站还包括有用的资源,如商品、课程和证书。
-
Python Bytes:如果你正在寻找一种更简洁的收听体验,你应该考虑这个播客。它由 Michael Kennedy(也是《Talk Python To Me》的主持人)和 Brian Okken 主持。这个播客的目的是在每集不到一个小时的时间内,更新你关于 Python 的最新头条和新闻。
结论
十年前,我们希望 Java 能带我们进入下一个层次。现在,Python 已经超越了许多编程语言,成为全球最受欢迎的语言。
Python 不是一种新语言;它自 90 年代初就存在,通过不断改进和获得开发者的支持而发展起来。但如果没有 Python 开发者和爱好者的在线社区,Python 不会有今天的成就。多亏了他们,我们拥有了学习和掌握 Python 的资源。一旦你也掌握了 Python,不要忘记回馈社区。
Nahla Davies 是一位软件开发人员和技术作家。在全职从事技术写作之前,她曾担任过许多令人兴奋的职位,其中包括在一家 Inc. 5000 的体验品牌机构担任首席程序员,该机构的客户包括三星、时代华纳、Netflix 和索尼。
更多相关话题
学习 Python 进行金融编程的 9 个杰出理由
原文:
www.kdnuggets.com/2021/09/9-outstanding-reasons-learn-python-finance.html
评论
由Zulie Rane,自由撰稿人和编程爱好者
如果你考虑进入金融行业并且偶然发现了这篇文章,你可能会想,“Python 如何在金融领域发挥作用?”
和我一样,你可能会惊讶地发现你应该完全学习编程——更令人惊讶的是,金融领域最佳的编程语言竟然是流行的数据科学语言 Python。使用 Python 进行金融编程正在成为一种要求。
金融和银行业因其高薪而闻名,因此吸引了大量申请者。如果你是其中之一,你应该知道 Python 在金融领域非常受欢迎——而且还在不断增长。Python 广泛应用于风险管理、交易机器人创建、用于分析大数据的量化金融等领域。
这里有九个答案来解答“我应该学习 Python 用于金融吗?”
1. 快速、简单且清晰
如果你读过任何其他编程列表文章,你会知道 Python 在一般情况下的优势,所以我会节省你的时间,把这些理由浓缩成一个要点:Python 对于初学者和有经验的编码者来说学习都很快。它的语法清晰简洁,易于阅读。部署迅速——你可以用几行代码构建有效的代码。
学习 Python 用于金融是个好主意,因为这与 Python 在其他领域的优势相同。如果你想用 Python 分析金融数据,你会高兴地发现,入门非常简单。
2. 已经存在快捷方式
Python 作为一种语言,通过库得到增强,即那些已经为你构建的可重用代码块。除了容易上手外,还有一个强大的开源第三方库框架,这些库在各种情况下都很有用,但特别是在金融领域。
像 Scikit 和 Pybrain 这样的库在金融领域尤其有用。有些人认为 Python 的金融库已经是“快捷方式”,因为你不需要从头编写那些功能。我同意这个观点。使用这些库进行金融数据分析要快得多。
Scipy、NumPy、Matplotlib 以及其他一系列附加工具使得执行和可视化金融计算和算法比以往任何时候都要容易。重要的是,这些工具不仅帮助你处理数据,还能更轻松地将结果传达给关键决策者。
3. 资源丰富
Python 在金融领域的一个真正的好处是,尽管这是语言的相对新用法,但已经有大量资源可以帮助你入门并顺利进行。这是因为 Python 已经使用了几十年。许多使 Python 在数据科学领域表现出色的资源也可以提升你的金融体验。
除了开源库,还有整套Python 课程和教科书以及教程,专门帮助你掌握 Python 在金融领域的基础知识。
如果你想学习金融领域的 Python,你不需要依赖于通用课程和教程——有很多内容专门围绕如何在金融背景下学习 Python 展开。
4. 极好的社区
如果图书馆、教科书和教程对你来说还不够找准 Python 在金融领域的入门方法,那么整个 Python 爱好者社区将是一个巨大帮助。你可能会很高兴地发现,专门针对金融领域的 Python 爱好者的社区也是存在的。
如果你对如何学习金融领域的 Python 感到困惑,不必再担心。你可以找到专门针对金融 Python 教程的Github 项目,Slack 群组专注于金融和编码,r/learnpython 子版块中的活跃金融群体,当然,StackOverflow 上也有许多乐于助人的人,他们曾经与你有过相同的经历,并愿意帮助你解决与金融相关的 Python 问题。
虽然我发现 Python 爱好者通常都是友好、乐于助人、充满热情的群体,但看起来金融领域的 Python 社区也是如此。
5. 它就是 MVP
尽管我认为 Python 是最具价值的编程语言(如果编程语言像体育联赛那样存在的话),但在这一部分我讨论的是最小可行产品(MVP)。金融行业重视敏捷性和响应能力,因为它面向客户。
在金融领域,程序员应该能够快速创建一个可以测试的原型。公司可以使用 MVP 来确定市场适应性,并以此将创意推向实施。Python 是快速创建 MVP 进行测试的理想语言。
如果你的金融公司是初创公司,Python 很有价值,因为它帮助开发人员快速而灵活地创建产品而不浪费资源。如果它是一个成熟的公司,Python 的价值在于它提高了敏捷性并鼓励创新,这对于规模更大、发展较慢的公司至关重要。无论哪种情况,它都是你团队的一个好工具。
总而言之,Python 让金融程序员能够构建一个最小可行产品,并从中迭代。
6. 两个世界之间的桥梁
Python 更为数据科学所知,但它也是经济学与数据科学(也称为金融领域)之间的绝佳桥梁。
引用一位专家的话,“将经济学家的工作整合到基于 Python 的平台中要容易得多。像 SciPy、NumPy 或 Matplotlib 这样的工具允许人们进行复杂的金融计算,并以非常易于理解的方式展示结果,” 说 Jakub Protasiewicz,一位拥有十多年 IT 经验的工程经理。
经济学家们因为 Python 的简洁性和更平缓的学习曲线而用它进行经济分析。
7. 你在一个好公司
Python 得到了主要金融公司的高度认可。很多金融公司都建立在 Python 上,比如 Venmo、Stripe 和 Robinhood,这些公司与我在本文中向金融从业者推荐 Python 的原因大致相同。
除了将 Python 用作金融公司框架外,一些组织更进一步: 花旗银行提供 Python 编程课程给银行分析师和交易员,以便他们能利用 Python 的惊人数据科学工具集。
如果你想学习用于金融的 Python 编程,你应该清楚你并不孤单:很多公司也做了同样的事情。
8. 今天在这里,明天依然在这里
没有什么比花时间学习一种编程语言然后发现它正在变得过时或被新兴语言取代更糟糕的了。
在金融领域,你不会遇到这种问题。Python 已经存在了三十年;许多金融公司已经投资于用 Python 构建基础设施和长期项目,更有意义的是,每年都有新的 Python 金融应用出现,例如第九节中你将学习的针对加密货币的 Dash。
Python 在十年或二十年后仍将对金融分析有用。使用 Python 进行金融分析是一个安全的选择。
9. Python 加密货币
使用 Python 在金融领域能做什么?深入探索加密货币。我惊讶地发现 Python 正在成为加密货币领域的关键角色。我在 libraries.io(一个列出所有 Python 库的网站)上快速查看了一下,发现了 327 个包涉及加密货币和区块链。
Dash、Anaconda 和 CryptoSignal 等产品充分利用了 Python 在获取和分析加密货币定价方面的便利。如果你投资于加密货币领域,Python 对你来说是必不可少的。
Python 与金融天作之合
Python 在金融领域有多重要?我敢说,它是一个关键的学习语言。仅仅依赖于为金融公司和职位开发的现有 Python 产品已经不够——员工越来越需要在日常使用中掌握 Python。
Python 在金融领域的应用几乎是无限的,我预计随着时间的推移和更多金融工作者学习 Python,这个数字只会增加。如果你还不确定 Python 是否适用于金融,希望这篇文章已经为你澄清了答案。
想为未来的金融角色学习 Python?
如果你想开始学习 Python,我们创建了我们的Python 基础课程,帮助你从新手到中级水平,准备接受更高级的主题,如金融数据的数据科学。
如果你更高级,我们还提供大 O 数据结构和高级算法课程,通过互动编码挑战学习关键计算机科学概念,将你新获得的技能付诸实践。
简历:Zulie Rane 是一位自由撰稿人和编程爱好者。
原文。经许可转载。
相关:
-
15 个必知的 Python 字符串方法
-
2021 年招聘数据科学家的顶级行业
-
主要变化:2020/21 年分析、数据科学、机器学习的应用
我们的前三大课程推荐
1. 谷歌网络安全证书 - 快速进入网络安全职业生涯。
2. 谷歌数据分析专业证书 - 提升你的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持你的组织 IT 工作
更多相关话题
9 个专业证书可以让你进入学位课程…如果你真的想要的话
原文:
www.kdnuggets.com/9-professional-certificates-that-can-take-you-onto-a-degree-if-you-really-want-to
作者 | Canva 图片
当你考虑开始新的职业或提升技能时,实际上没有必要立即跳到大学,或者说实话,根本不需要。在这个数字世界里,有这么多在线程序、训练营、认证和课程可以帮助你在没有过高费用的情况下开始。
我们的前三大课程推荐
1. 谷歌网络安全证书 - 快速进入网络安全职业的快车道。
2. 谷歌数据分析专业证书 - 提升你的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持你的组织的 IT
对于那些想要提升技能而不想支付学费的人,这篇博客适合你。我将介绍 9 个专业证书,你可以通过这些证书迅速入门,或者继续学习这些证书,提升到下一个级别并获得学位。
IBM 数据工程
链接:IBM 数据工程
时长:6 个月,每周 10 小时
级别:初学者
从初学者到专家的完整课程。由 IBM 提供的这门数据工程课程是一个专业证书,共包含 16 个系列。在本课程中,你将学习数据工程师在日常工作中使用的最新实用技能和知识。然后你将深入学习创建、设计和管理关系数据库,并将数据库管理(DBA)概念应用于 MySQL、PostgreSQL 和 IBM Db2 等关系数据库管理系统(RDBMS)。
随着时间的推移,你将通过使用 MongoDB、Cassandra、Cloudant、Hadoop、Apache Spark、Spark SQL、Spark ML 和 Spark Streaming,掌握 NoSQL 和大数据的工作知识。课程结束时,你将能够使用 Bash、Airflow 和 Kafka 实施 ETL 和数据管道;架构、填充和部署数据仓库;并创建 BI 报告和互动仪表盘。
该项目获得了 ACE® 的推荐——完成后,你可以获得最多 12 学分。
IBM 数据科学
链接:IBM 数据科学
时长:6 个月,每周 10 小时
级别:初学者
这个 IBM 数据科学专业证书课程通过 Coursera 提供,旨在教导初学者数据科学是什么以及如何像数据科学家一样思考和工作。你将学习掌握最前沿的实用技能,了解专业数据科学家使用的工具、语言和库,包括 Python 和 SQL。
你还将学习导入和清理数据集的基础知识,分析和可视化数据,然后使用 Python 构建和评估机器学习模型和管道。最后,将你的新技能应用于现实世界项目,并建立一个数据项目的作品集,向雇主展示你的熟练程度。
本项目获得 ACE® 和 FIBAA 推荐——完成后,你可以获得最多 12 学分和 6 ECTS 学分。
IBM 全栈软件开发人员
链接:IBM 全栈软件开发人员
时长:5 个月,每周 10 小时
级别:初学者
开始你的旅程,为高增长的软件开发领域的职业做好准备。在本项目中,你将学习前端、后端和云原生应用程序开发所需的技能和工具。
你将学习如何构建、部署、测试、运行和管理全栈云原生应用程序。涵盖的技术包括云基础、GitHub、Node.js、React、CI/CD、容器、Docker、Kubernetes、OpenShift、Istio、数据库、NoSQL、Django ORM、Bootstrap、应用安全、微服务、无服务器计算等。
本项目获得 ACE® 和 FIBAA 推荐——完成后,你可以获得最多 18 学分和 6 ECTS 学分。
IBM 数据分析师
链接:IBM 数据分析师
时长:5 个月,每周 10 小时
级别:初学者
由 IBM 提供的本课程将提供数据分析的核心原理,并更好地理解数据处理、分析技术等。课程包括 8 门课程,如数据分析简介、Excel 数据分析基础、使用 Excel 和 Cognos 进行数据可视化和仪表板、数据科学 Python、人工智能与开发、数据科学 Python 项目、Python 数据科学的数据库和 SQL、Python 数据分析、Python 数据可视化,以及 IBM 数据分析师顶点项目。
这些课程将通过提供数据分析的原理和基础知识,帮助你启动数据分析师的职业生涯,同时掌握实际技能。你还将获得项目经验和数据分析工具,如 SQL、Python 和 Jupyter Notebooks,帮助你了解数据分析师的日常工作。
本项目获得 ACE® 和 FIBAA 推荐——完成后,你可以获得最多 12 学分和 6 ECTS 学分。
机器学习专业化
时长:2 个月,每周 10 小时
级别:初学者
在 AI 远见者 Andrew Ng 提供的适合初学者的三课程项目中,掌握基本的 AI 概念并发展实际的机器学习技能。该项目将教你机器学习的基础知识,以及如何运用这些技术构建现实世界中的 AI 应用程序。
你将学习如何使用 NumPy 和 scikit-learn 构建机器学习模型,构建和训练用于预测和二分类任务的监督模型。你还将学习如何使用 TensorFlow 构建和训练神经网络,以执行多类别分类,并构建和使用决策树及树集成方法。
当你完成这个专项课程时,如果你被录取并注册以下在线学位项目,你可以获得大学学分。
IBM AI Developer
时长:6 个月,每周 4 小时
级别:初学者
正如我们所知,AI 和生成性 AI 正在彻底改变我们的世界,这意味着对具备前沿技能的 AI 软件开发者的需求正在飙升。这个 IBM AI Developer Professional Certificate 将为你提供构建 AI 驱动的聊天机器人和应用程序所需的热门专业知识,并使你在短短 6 个月内启动你的 AI 职业生涯。
AI 开发者是被高度重视的软件工程师,他们设计、开发和实施 AI 和生成 AI 驱动的应用程序和虚拟助手。在这个课程中,你将掌握软件工程、AI、生成 AI、提示工程、HTML、JavaScript 和 Python 编程的基础知识。通过动手实验和项目,你将获得在面试中可以谈论的实际经验。
当你完成这个专业证书时,如果你被录取并注册以下在线学位项目,你可以获得大学学分。
Google Data Analytics
时长:6 个月,每周 10 小时
级别:初学者
一个非常受欢迎的课程,Google 的数据分析专业认证使你能够理解助理数据分析师使用的实践和过程。随着越来越多的组织将其操作和数据转移到云端,理解云计算及其对数据的访问的重要性成为一个高需求的技能。
你将学习关键的分析技能,如数据清理、分析和可视化,以及使用电子表格、SQL、R 编程和 Tableau 等工具。运用这些技能,你将学习如何在仪表盘、演示文稿和常用可视化平台中可视化和展示数据发现。
这个专业证书有 ACE® 推荐。它在参与的美国学院和大学中有资格获得大学学分。
Google IT Support
时长:6 个月,每周 10 小时
级别:初学者
技术行业内容丰富。它就像从头开始建造一座房子,每个承包商都负责确保不同的层面始终达到基于其专业知识的金标准。这就是 IT 支持发挥作用的地方。
在这个 Google IT 支持专业认证中,你将学习 IT 支持处理的日常任务,包括计算机组装、无线网络、安装和客户服务。你还将学习如何识别问题,以使用如 Linux、域名系统、命令行接口和二进制代码等工具进行故障排除和调试。
这个专业证书获得了 ACE®的推荐。它在参与的美国大学和学院中可以获得大学学分。
Google 项目管理
链接:Google 项目管理
时长:6 个月,每周 10 小时
级别:初学者
技术行业发展迅速,每天都有新项目发布。在这里,我介绍了项目管理及其在任何行业中的重要性。如果没有项目管理,许多新工具将无法部署,使我们无法使用它们。
项目管理是将过程、方法、技能、知识和经验应用于实现特定目标的过程,以确保项目的成功。在这个 Google 项目管理专业认证中,你将学习如何有效地记录项目,学习敏捷项目管理、Scrum 的基础知识,并且练习战略沟通,提升你的问题解决能力。
这个专业证书获得了 ACE®的推荐。它在参与的美国大学和学院中可以获得大学学分。
总结
你可以选择 9 个不同的专业课程来入门,并在 5 到 6 个月内准备好就业。这些专业课程高度可信,许多人完成课程后直接进入行业。如果你想继续深造,将学习提升到下一个层次,可以通过这 9 个课程来实现。
****Nisha Arya****是一位数据科学家、自由技术作家、KDnuggets 的编辑和社区经理。她特别关注提供数据科学职业建议或教程以及数据科学的理论知识。Nisha 涵盖了广泛的主题,希望探索人工智能如何有利于人类寿命的不同方式。作为一个热衷于学习的人,Nisha 希望拓宽她的技术知识和写作技能,同时帮助指导他人。
更多相关话题
9 件您应该知道的关于 TensorFlow 的事
评论
今天早上,我总结了我在旧金山 Google Cloud Next 上享受的一场讲座中的一些最爱内容——TensorFlow 有什么新变化?
然后我考虑了一下,没发现不与您分享我这个超短总结的理由(除了您可能不会看这个视频——您绝对应该去看看,演讲者非常棒),所以就这样吧……
#1 它是一个强大的机器学习框架
TensorFlow 是一个机器学习框架,如果您有大量数据和/或追求 AI 的最前沿技术,它可能是您的新好朋友:深度学习。神经网络,大型的。它不是数据科学的瑞士军刀,而是工业车床… 这意味着如果您只是想在 20x2 的电子表格中绘制回归线,您可以停止阅读。
但如果您追求的是“大”,那就值得兴奋了。TensorFlow 已被用于寻找新行星、通过帮助医生筛查糖尿病视网膜病变,以及通过提醒当局非法砍伐活动来帮助保护森林。它是AlphaGo和Google Cloud Vision的基础,您可以使用它。TensorFlow 是开源的,您可以免费下载并立即开始使用。
通过 TensorFlow 的帮助发现,开普勒-90i 使开普勒-90 系统成为我们已知的唯一一个拥有八颗行星围绕一颗恒星运行的系统。尚未发现有超过八颗行星的系统,所以我想这意味着我们与开普勒-90 系统并列第一(暂时如此)。了解更多请点击这里。
#2 异常的方法是可选的
我对TensorFlow Eager情有独钟。
如果你曾经尝试过 TensorFlow 而因为它让你像学术/外星人一样编码而吓得逃跑了,那就回来吧!
TensorFlow 的即时执行让你像纯 Python 程序员一样与之互动:写代码和调试的即时性,代替了构建那些庞大图形时的屏息以待。我自己也是一名恢复中的学术者(可能还是外星人),但自从即时执行推出以来,我就爱上了它。如此渴望取悦!
#3 你可以逐行构建神经网络
Keras + TensorFlow = 更简单的神经网络构建!
Keras 专注于用户友好性和简单原型制作,而这些是旧版 TensorFlow 非常渴望的。如果你喜欢面向对象的思维,并且喜欢逐层构建神经网络,你会喜欢 tf.keras。在下面的几行代码中,我们创建了一个具有标准功能(如 dropout)的顺序神经网络(稍后提醒我用我的隐喻来详细描述 dropout,它们涉及订书机和流感)。
哦,你喜欢谜题,对吗?耐心点。别对订书机想得太多。
#4 不仅仅是 Python
好消息!你已经抱怨了 TensorFlow 对 Python 的单一痴迷一段时间了。好消息是!TensorFlow 不再只是 Python 爱好者的专属了。现在它可以在多种语言中运行,从 R 到 Swift,再到 JavaScript。
#5 你可以在浏览器中完成一切
说到 JavaScript,你可以在浏览器中使用 TensorFlow.js 训练和执行模型。去 这些酷炫的演示 好好体验一下,当你回来时我还在这里等你。
实时 人体姿态估计 使用 TensorFlow.js 在浏览器中实现。可以通过 这里 打开你的相机进行演示。或者不用离开你的椅子。 ¯_(ツ)_/¯ 随你选择。
#6 小型设备有一个 Lite 版本
有个来自博物馆的老旧桌面电脑?烤面包机?(一样的东西?)TensorFlow Lite 将模型执行带到了各种设备,包括移动设备和物联网设备,使你在推理速度上获得超过原始 TensorFlow 的三倍提升。是的,现在你可以在你的 Raspberry Pi 或手机上进行机器学习了。在 这场演讲中,Laurence 勇敢地在成千上万观众面前实时演示了在 Android 模拟器上进行图像分类……并且成功了。
计算 1.6 秒?检查!香蕉的概率超过 97%?检查!卫生纸?嗯,我去过几个国家,像 Laurence 手中那张纸也算数。
#7 专用硬件变得更好
如果你厌倦了等待 CPU 处理数据以训练神经网络,现在你可以使用专门为此设计的硬件——Cloud TPUs。T 代表张量。就像 TensorFlow……巧合吗?我不这么认为!几周前,谷歌宣布了第 3 版 TPUs 的 Alpha 版。
#8 新的数据管道有了很大改进
你在那边用numpy 做什么呢?如果你想在 TensorFlow 中完成这个任务但结果愤怒退出,tf.data命名空间现在让你在 TensorFlow 中的输入处理更具表现力和效率。tf.data提供了快速、灵活且易于使用的与训练同步的数据管道。
#9 你不需要从头开始
你知道什么不是一个有趣的机器学习入门方式吗?在编辑器中一页空白的新文件,没有示例代码可用。有了 TensorFlow Hub,你可以以更高效的方式继承他人的代码并称之为自己的(也就是职业软件工程)。
TensorFlow Hub 是一个用于重用预训练机器学习模型组件的库,打包成一行代码即可重用。随意使用!
既然我们在谈论社区和不再孤军奋战,你可能会喜欢知道 TensorFlow 刚刚拥有了官方的YouTube 频道和博客。
这就是我的总结,所以接下来可以看完整的演讲视频来娱乐接下来的 42 分钟。
原文。经授权转载。
相关:
我们的前三大课程推荐
1. 谷歌网络安全证书 - 快速进入网络安全职业的捷径。
2. 谷歌数据分析专业证书 - 提升你的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持你的组织的 IT 需求
更多相关话题
9 个顶尖平台,练习关键的数据科学技能
原文:
www.kdnuggets.com/2023/03/9-top-platforms-practice-key-data-science-skills.html
现在在线学习的好处在于,学习不再受限。你可以在自己家中舒适地阅读、练习、测验和编程,而无需支付学位费用。
我们的前三名课程推荐
1. Google 网络安全证书 - 快速进入网络安全职业生涯。
2. Google 数据分析专业证书 - 提升你的数据分析能力
3. Google IT 支持专业证书 - 支持你的组织在 IT 方面
由于数据科学被视为一种难以学习的技能,许多雇主并不关心你是在哪里学习 Python 或其他数据科学技能的,只要你能够胜任。
在本文中,我将详细介绍九个数据科学学习平台,这些平台提供互动学习体验。它们配备了各种资源,包括视频教程、互动编码练习和测验,帮助你建立和巩固编程和数据库管理技能。
让我们深入探讨。在每一部分,我会解释平台的特点、你可以学习的内容、费用以及它与其他八个平台的不同之处。
这里是每个平台的概览,供快速参考。
1. Codecademy
Codecademy是一个专为学习编程而设计的平台。
这是什么?
Codecademy 是一个在线学习平台,提供编程、数据科学和网页开发的课程和教程。它是初学者和希望提高编码技能的人的超级热门选择。
你可以学到什么?
在 Codecademy,你可以学习多种编程语言,如 Python、JavaScript、Ruby、HTML、CSS 等。不论你喜欢什么,你都能找到相关的课程。Codecademy 还提供数据科学主题的课程,如 SQL 和数据可视化,以及网页开发工具,如 React 和 Git。
我个人喜欢 Codecademy,因为它非常互动。这个平台提供课程和编码练习,帮助你构建真实项目并理解编程的基本概念。
费用多少?
在他们的网站上,他们的标语是“免费学习编码”。确实有一个免费层级,你可以免费获得像“学习 SQL”和“学习 Java: 入门”这样的课程。
然而,如果你想进一步提升知识并访问更高级的课程,你需要支付$34.99/月,或者如果你按年支付,则为$17.49/月。
主要优点?
Codecademy 之所以突出,是因为其易用性。它对初学者非常友好。许多编码平台自称对初学者友好,因为这是他们的目标受众,但 Codecademy 对那些从未输入过一行代码的人来说是完美的。
有很多免费的课程可以尝试,以了解这些语言和它们的教学风格是否适合你。
2. Coursera
图片来自 canva
Coursera是一个大学和公司上传视频课程的平台。在其他主题之外,他们有许多受欢迎的数据科学讲师。
这是什么?
Coursera 是由大学运营的在线学习平台。他们提供在线课程、可以挂在你虚拟 LinkedIn 墙上的证书,甚至还有完整的学位项目。他们与密歇根大学、耶鲁大学、莱斯大学、伦敦帝国学院等大学合作,还与更多大学合作。
课程通常持续一到九个月。
你可以学到什么?
在 Coursera 上,你可以学习几乎任何技能,包括课程如“幸福科学”、“心理学导论”和“金融市场”。
他们还提供:
-
指导项目。这些是更实际的、较短的课程,你将获得特定的技能。
-
专业化课程,通常是进一步学习某一技能,如西北大学的“销售艺术”。
-
证书。这些提供了你在所选技能领域的“认证”这一 tangible outcome。
-
学位。这些是完整的学位课程。
费用多少?
一些课程是免费的,例如我上面列出的前三门课程。一些指导项目,例如“绝对初学者的 Docker”,起价为$9.99/月。如果你报名参加更有用的课程,如专业化或职业证书,这些课程的费用为$39.99/月。学位课程自然更贵——学位课程的起价为$9,000。
主要优点?
Coursera 提供了种类繁多的课程,价格相当合理,由耶鲁大学和 IBM 等顶级机构提供。你可以获得实用技能,对广泛主题有一个基础了解,或通过专业化深入学习。
3. StrataScratch
StrataScratch 是一个面试问题平台。
这是什么?
StrataScratch 提供了 1000 多个来自 顶级数据科学公司 的真实面试问题,涵盖编码和非编码问题。它针对的是准备申请数据科学职位的人员。
你可以学到什么?
这是一个更具实践性、结果导向的平台。与其从零开始教你新技能,这个平台更适合那些已有一定知识并想测试自己或准备即将到来的面试的人。
在编码方面,你可以练习 PostgreSQL、Python、MySQL、R 和 MS SQL Server 问题。在非编码问题方面,你可以练习系统设计、概率、商业案例、统计、建模、技术和产品问题。
你还可以按难度和公司进行筛选。
StrataScratch 还提供数据项目,如 都柏林市场分析,以及指南,例如 SQL 时间和日期操作。如果你想将这些添加到你的投资组合中,这些更实操的项目会很有用。
费用是多少?
有一个免费层级,包括一些但不是所有的问题,有的有解答,有的没有。
对于 $32/月的层级,你可以访问所有面试问题和解决方案。
最后,有一个年付选项,费用为 $139/年(或终身 $289),此外还包括访问数据项目和深入解决各种针对数据科学家的编码问题的指南。
关键好处?
因为这些是从真实数据科学面试中提取的真实问题,你将获得与公司所寻找的内容完全一致的实践经验。
4. Boot.dev
Boot.dev 提供帮助你成为后台开发者的课程。
这是什么?
Boot.dev 是一个有趣的平台,旨在弥补大学学位和电子学习平台之间的差距。大学学位既慢又昂贵。像 Coursera 这样的地方专注于前端。如果你想练习 Python、SQL 和其他编码技能以获得后台开发职位,你会遇到困难。
他们将平台组织为“轨道”,包括语言、指导项目和投资组合项目。
你可以学到什么?
你可以学习 Python、JavaScript 和 Go 作为主要的后台编码语言。但你也将学习更多计算机科学相关的技能和概念,如算法、面向对象编程和密码学。
费用是多少?
Boot.dev 的费用为每月 $39、每年 $249 或终身 $999。所有这些层级都提供相同的福利:访问所有内容、一个可用于求职的编程项目组合、完成证书和访问 Discord 服务器。
主要好处是什么?
很少有地方提供帮助你成为 后端开发者与前端开发者 的学习内容。也许因为前端开发被认为更容易接触,大多数在线学习平台集中在 HTML 和 CSS 等技能上。
这是我见过的为后端学习者提供支持的少数平台之一。
5. Udemy
Udemy 是一个在线学习平台,任何人都可以上传课程。
这是什么?
Udemy 类似于 Coursera,但有一个关键区别:任何人都可以上传视频课程,而不仅仅是大学或组织。像 Coursera 一样,Udemy 也可以让你访问大量各种技能的课程,但在数据科学技能方面有很好的选择。
这意味着 Udemy 提供了从初级到高级的广泛课程,由专家、专业人士和个人讲授。
Udemy 的课程旨在提供可访问性和灵活性,配有视频课程、测验和项目,帮助学生建立实用技能。该平台还提供课程内容的终身访问权限,以便学生可以按自己的节奏学习,并在需要时重新学习材料。Udemy 的课程没有认证,但许多课程附带完成证书,可以用于向潜在雇主展示技能和知识。
你可以学习什么?
更好的问题是,你不能学习什么?不过这里有一些最佳课程的快速总结:
-
编程与开发:包括网络开发、移动应用开发、游戏开发等。
-
数据科学与分析:包括机器学习、数据分析、大数据等。
-
商业:包括创业、市场营销、销售等。
-
设计:包括图形设计、网页设计、室内设计等。
-
个人发展:包括个人财务、生产力、领导力等。
-
IT 与软件:包括网络安全、信息安全、云计算等。
-
市场营销与销售:包括数字营销、电子邮件营销、社交媒体营销等。
-
音乐、艺术与摄影:包括音乐制作、音乐理论、摄影等。
费用是多少?
你有两个选择:
-
你可以购买单独的课程,如“学习 Python 进行数据分析和可视化”,这些课程的价格在 $15 到 $30 之间,获得课程的终身访问权限。
-
你可以订阅每月 $16.58 起的个人计划,这样你可以访问超过 8,000 门课程,以及 4,000+ 个练习,由 3,000+ 名顶级讲师授课。
主要好处是什么?
Udemy 的巨大广度是它的优势。你可以找到不仅仅是任何语言的课程,还可以找到任何目的的课程,如“面向对象编程的 Python”或“React 完全指南”。
由于任何人都可以上传课程,你肯定能找到一个与你契合的讲师。
6. edX
图片来源于canva
edX类似于 Coursera 的终极版。edX 与多个著名大学合作,包括哈佛大学、麻省理工学院和加州大学伯克利分校。
这是什么?
与 Coursera 类似,edX 提供来自顶级大学和机构的在线课程。然而,edX 在合作伙伴和提供的技能方面稍有不同。例如,edX 提供验证证书、专业证书和微硕士课程,而 Coursera 仅提供专业化、专业证书和学位。
Coursera 也更具自我节奏,而 edX 则有考试和作业的截止日期。
你能学到什么?
在 3,000 多个课程中,你将能够找到一个好的数据科学技能来学习。该平台提供了“分析建模入门”、“使用 Python 进行机器学习”和“数据素养基础”等课程。
费用是多少?
这因课程而异,但一般来说,edX 比 Coursera 稍贵。你几乎可以免费访问任何课程进行审计,但这有一些限制——你只能访问一个月的材料,你不会获得证书,而且你的作业不会被评分。
如果你需要验证课程,价格从每门课程大约 49 美元到 149 美元不等。
他们还提供价格高达数千美元的训练营。例如,加州大学伯克利分校的 24 周编码训练营费用为 13,000 美元。
关键好处是什么?
这个平台与 Coursera 相当。主要的好处是它比 Coursera 更具指导性,你可能还能通过他们的证书获得更多品牌认可。
7. Kaggle
让我们暂时离开学习平台。 Kaggle是一个竞赛平台。
这是什么?
Kaggle 是一个非常受欢迎且运作良好的数据科学竞赛平台,特别倾向于机器学习。它由 Google 拥有,拥有成千上万的数据集供你练习。
你将获得:
-
竞赛中,参与者竞相使用提供的数据集开发最佳解决方案。竞赛由寻求解决特定问题的组织赞助,并向获胜者提供奖金。
-
公共数据集:Kaggle 提供了大量公共数据集,供实践、研究或比赛提交使用。
-
笔记本:Kaggle 提供了一个基于云的 Jupyter 笔记本环境,适用于数据科学和机器学习,允许用户轻松编写、运行和与他人共享代码。
-
讨论:Kaggle 拥有一个庞大而活跃的数据科学家和机器学习从业者社区,参与讨论、提问和回答问题,并合作进行项目。
你能学到什么?
在 Kaggle 上,你可以学习数据分析、机器学习、Python 和 R 编程以及数据准备等技能。
查看一些提供的竞赛,看看你想要提升哪些技能。例如,你可以参加 高级回归技术 挑战、微型企业密度预测 或 计算机视觉 竞赛。
费用是多少?
完全免费!参加竞赛、下载数据集、参加短期课程,全都免费。这是 Kaggle 由 Google 拥有的一大好处。它资金充足,因此可以免费提供给参与者/竞争者/学习者。
关键好处?
访问真实、复杂的数据和问题非常有帮助。一旦你完成了电子学习,并想进一步挑战自己,这种基于挑战的平台对于进一步提升技能非常好。
此外,访问和指导如此多的数据集意味着你将能够设计并添加一些有趣的 数据科学项目 到你的作品集中。
最后,竞争性角度对某些学习者有效!
8. HackerRank
图片来自 canva
我们来看一下 HackerRank,另一个编码挑战网站。
这是什么?
HackerRank 是一个为软件开发人员提供编码挑战和竞赛的网站,以提升他们的编码技能。
许多公司将其作为筛选软件开发职位候选人的有趣方式。该平台提供了广泛的类别选择,包括算法、数据结构、数学、数据库等。
作为一个可能想学习 Python、SQL 和其他编码技能的随机互联网用户,这是一个创建个人作品集的绝佳平台。
你能学到什么?
HackerRank 的工作方式像是组合了一个作品集和 Kaggle。你可以参与排名比赛,也可以获得 Go、C#和 Java 等语言的认证。
他们有三个学习领域:
-
准备。这包括面试准备工具包、一些基础认证,以及学习算法、数据结构和数学等各种主题。
-
认证。这个区域包含了你需要的所有认证,从 R 到 SQL 到 JavaScript。
-
竞争。这是更类似于 Kaggle 的一部分,提供了比赛和竞赛来展示你的知识并赢得奖品或声誉。
基本上,它是一个适合积极求职者以及任何想学习的人在具有挑战性和竞争力的环境中练习和测试编码技能的好地方。
HackerRank 还为你提供了资源、教程、文章和示例代码。
这要多少钱?
有趣的是:它主要是为公司招聘人才而设计的。这意味着作为候选人,你实际上可以免费使用这个产品(因为从某种意义上说,你就是这个产品)。
主要好处?
HackerRank 的独特之处在于它是为公司设计的,而不是个人。这使得个人可以非常有用地看到公司招聘所需的技能。你可以从面试的角度了解自己,从而知道应该集中精力提升哪些技能。
它非常适合那些希望从事数据科学工作的人。
9. StackOverflow
让我们来看看这个问答平台。
这是什么?
包括 StackOverflow 作为学习平台有点厚脸皮,因为这并不是它设计的目的。但它是我用来自然学习 Python 和 R 的最佳平台之一。而且最棒的是,它是免费的。
StackOverflow 是一个程序员、开发者和软件工程师提问并获得众包答案的地方。答案可以根据其帮助性和准确性被投票提升或降低。
这是一个包含多年编程问题和答案的大型资料库。
你可以学到什么?
-
Python 编程:许多与其语法、库和最佳实践相关的问题和答案。
-
SQL:包括查询、数据库设计和优化技术。
-
算法和数据结构:排序、搜索和图算法。
-
Web 开发:HTML、CSS、JavaScript 以及如 Django 和 Ruby on Rails 等网页框架。
-
调试:关于调试技术和最佳实践的问题和答案非常多。
-
软件设计:了解软件设计模式、架构和最佳实践。
在 StackOverflow 上学习的最佳方式是提问和回答问题。从基础开始 - 寻找尚未有人回答的 Python 或 SQL 的基础问题。你很快就会获得大量关于答案质量的同行反馈,从而能够进一步改进。
这很令人望而生畏,但它是一个极好的方式来提升你不仅是实际编码技能,还有沟通能力。
这需要多少钱?
这是免费的!完全免费注册账号并提问或回答无限问题。
主要好处?
StackOverflow 最棒的地方在于它并非作为学习平台设计。这些问题和答案并非经过精心设计,而是现实中的复杂、人类世界的问题,数据也很杂乱。而且你将获得来自真正数据科学家的真实反馈。
这是一个真正的挑战,但它是学习的绝佳方式。
最后的思考
总结一下,数字时代的美在于教育现在触手可及。数据科学是一个热门话题,许多雇主并不在乎你从哪里学到的,只要你能做到。
本文介绍了九个惊人且有些不传统的平台,使学习这种需求量大的技能变得轻松。通过视频教程、互动编码练习、测验和真实数据,你将能够提升你的技能,并向世界展示你的能力。
不要再等待了。选择一个平台(或者九个 - 这些平台并不排他!)并立即开始学习数据科学吧。
内特·罗西迪 是一位数据科学家,专注于产品战略。他也是一名兼职教授,教授分析学,同时是 StrataScratch、一个帮助数据科学家准备面试的平台的创始人。通过 Twitter: StrataScratch 或 LinkedIn 与他联系。
更多相关内容
90% 的今天的代码是为了防止失败而编写的,这是一种问题
原文:
www.kdnuggets.com/2022/07/90-today-code-written-prevent-failure-problem.html
图片来源:cottonbro
没有数据科学家或工程师愿意知道他们的代码失败了。例如,你的数据可能格式错误。数据库可能宕机。或者,运行代码的计算机可能出现故障。有无数的失败原因可能导致你的代码未能实现其预定目标。尝试预测和防御这些失败是今天工程师面临的持续的艰难挑战。但如果我们只是改变我们的视角和框架,去说**“失败会发生——这没关系。”**,情况就不会如此。
积极工程与消极工程
为实现预期结果而编写的高效代码可以被归类为积极工程。公司雇佣工程师的目的是编写积极的代码,构建解决方案以满足业务关键和分析目标。相反,消极工程是为了对抗预期的失败并确保积极代码实际运行而编写的防御性代码。
尝试预测可能出现的各种问题使得编写消极代码既费时又令人沮丧,工程师报告说,他们通常将 90%的时间花在消极或防御性问题上。不幸的是,这段时间会影响整体生产力和主要目标,只剩下 10% 的时间用于工程师被雇佣来构建的积极解决方案。
工程师可能认为这种防御性的方法对他们的积极代码的成功是必要的,并且有助于减少失败的风险。但作为一个在风险管理领域工作了整个职业生涯的人,我可以说,有效的风险缓解并不试图预测和对冲所有可能的结果。相反,人们应当建立一个具有足够具体工具的框架,以应对手头的任务,同时又足够通用以处理未知问题。这就是关于建立一个消极工程框架,让用户可以与失败共处,而不是对抗失败。
积极工程的保险
我将消极工程框架比作家庭保险。购买家庭保险不会阻止你的房子着火或被淹,但它可以显著减少财务负担。同样,实现消极工程框架不会阻止失败的发生,但可以减少识别和修复问题所需的时间、麻烦和人才。
有效的框架包括适当的仪表化、可观察性和代码编排。作为你正面代码的保险,它不仅让你安排进程运行,还能知道该进程是否失败,从而确保解决方案的结果。失败的代码可能需要简单的重试,或工程师快速修改代码以缓解失败情况。问题可能是——并且通常是——看似微不足道的问题,但如果不加以检查,可能会引发蝴蝶效应。例如,关键任务分析管道的失败可能导致公司从错误的数据中做出战略决策。
需要注意的是,负面工程框架不仅仅是能够捕获错误信息。用户需要明确成功执行正面代码的预期。例如,如果计算机上运行的一个进程突然崩溃,机器可能甚至没有机会发送失败的错误信息。但是,通过创建一种逻辑,使框架能够推断出在预期未能实现时进程失败,工程师可以获得防御性见解,并对任何偏离设定目标的情况采取行动——即使面对意外情况。
任务成功失败
事实是,无论你写多少负面代码或尝试实施多少保障措施,失败都是工程师生活中不可避免的一部分。此外,失败的催化剂可能超出你的控制范围。以一家高增长初创公司的数据团队为例,这支由五名工程师组成的团队在管理分析堆栈时,其整个基础设施完全失败,导致报告中充满错误。
从他们破损的仪表盘开始倒推,团队发现几乎在每一层堆栈中都有一个又一个错误。团队最终发现这是因为每个阶段将其失败传递给后续阶段,导致每一步的失败链反应。在经过三天的调查工作后,团队揭示了失败的根源:问题竟然如此简单——附加在 SaaS 供应商上的信用卡已过期。由于供应商的 API 集成在团队管道的早期阶段,账单错误造成了一连串的失败,直至终端用户仪表盘。
一旦他们找到了问题,团队幸运地解决了它。他们只需要了解根本原因,解决方案就很简单。防御性、消极的代码无法阻止这种失败——因为催化剂是外部的——但一个保险框架可以减轻其影响。一个好的工作流程工具可以识别根本故障,并防止下游任务的执行,预期如果这些任务继续执行,将只会导致一系列失败。这种可见性将帮助五人团队将三天的调查时间缩短到几分钟,并大幅提高生产力。
生产力提升可能是消极工程框架的最大好处,工程师接受失败的发生,并拥有减轻其影响的工具。与其花费 90%的时间去防止失败,他们可以更多地投入到编写积极的代码中,从而推动业务成果。即使将消极代码的时间减少到 80%,也意味着将积极工程时间从 10%提升到 20%——有效地使生产力时间翻倍。这仅仅是心态转变带来的非凡收益。工程师因此可以自信地确保他们的积极代码按照设计运行,并管理未知及其带来的所有风险。
Jeremiah Lowin 是 Prefect 的创始人兼首席执行官。
我们的三大课程推荐
1. 谷歌网络安全证书 - 快速进入网络安全职业。
2. 谷歌数据分析专业证书 - 提升你的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持你的组织 IT 需求
更多相关内容
初学者指南:十大机器学习算法
原文:
www.kdnuggets.com/a-beginner-guide-to-the-top-10-machine-learning-algorithms
作者图片
数据科学的一个基础领域是机器学习。因此,如果你想进入数据科学,理解机器学习是你需要迈出的第一步。
我们的前三大课程推荐
1. 谷歌网络安全证书 - 快速进入网络安全职业
2. 谷歌数据分析专业证书 - 提升你的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持你的组织的 IT
那么你从哪里开始呢?你需要了解两种主要机器学习算法的区别。只有在那之后,我们才能谈论作为初学者你应该优先学习的个别算法。
有监督学习与无监督学习
算法的主要区别在于它们的学习方式。
作者图片
有监督学习算法是在标记数据集上训练的。这个数据集作为学习的监督(因此得名),因为其中的一些数据已经标记为正确答案。基于这些输入,算法可以学习并将这些学习应用到其余数据中。
另一方面,无监督学习算法在未标记数据集上进行学习,这意味着它们在寻找数据中的模式时没有人为的指导。
你可以更详细地阅读关于机器学习算法和学习类型的内容。
还有一些其他类型的机器学习,但不适合初学者。
机器学习任务
算法被用于解决每种机器学习类型中的两个主要不同问题。
再次强调,还有一些任务,但它们不适合初学者。
作者图片
有监督学习任务
回归是预测数值的任务,称为连续结果变量或因变量。预测是基于预测变量或自变量进行的。
想想预测油价或空气温度。
分类 用于预测输入数据的 类别(类)。这里的 结果变量 是 分类的或离散的。
想想预测邮件是否为垃圾邮件,或患者是否会得某种疾病。
无监督学习任务
聚类 意味着 将数据划分为子集或簇。目标是尽可能自然地对数据进行分组。这意味着同一簇中的数据点比其他簇中的数据点更相似。
降维 指的是减少数据集中输入变量的数量。这基本上意味着 将数据集减少到很少的变量,同时仍捕捉其本质。
10 大机器学习算法概述
以下是我将涵盖的算法概述。
作者提供的图片
监督学习算法
在选择适合你问题的算法时,了解该算法的用途非常重要。
作为数据科学家,你可能会使用 scikit-learn 库 在 Python 中应用这些算法。虽然它几乎为你做了所有的事情,但建议你至少了解每个算法内部工作的基本原理。
最后,在算法训练完成后,你应该评估它的表现。为此,每个算法都有一些标准指标。
1. 线性回归
用于: 回归
描述: 线性回归绘制了一条直线,称为回归线,连接变量之间的关系。这条线大致穿过数据点的中间,从而最小化估计误差。它显示了基于自变量值的因变量的预测值。
评估指标:
-
均方误差 (MSE):表示平方误差的平均值,误差是实际值和预测值之间的差异。值越低,算法性能越好。
-
R 平方:表示自变量可以预测的因变量的方差百分比。对于这个度量,你应该尽量接近 1。
2. 逻辑回归
用于: 分类
描述: 它使用 逻辑函数 将数据值转换为二元类别,即 0 或 1。通常使用 0.5 的阈值。二元结果使得该算法非常适合预测二元结果,如 YES/NO、TRUE/FALSE 或 0/1。
评估指标:
-
准确度:正确预测与总预测的比率。越接近 1 越好。
-
精确度:模型在正预测中的准确性度量;表示为正确正预测与总期望正结果之间的比率。越接近 1 越好。
-
召回率:它同样衡量模型在正预测中的准确性。表示为正确正预测与在类别中所做总观察之间的比率。有关这些指标的更多信息,请参见 这里。
-
F1 分数:模型召回率和精确度的调和平均数。越接近 1 越好。
3. 决策树
用途: 回归与分类
描述: 决策树 是利用层次或树状结构来预测值或类别的算法。根节点代表整个数据集,然后根据变量值分支成决策节点、分支和叶子。
评估指标:
-
准确度、精确度、召回率和 F1 分数 -> 用于分类
-
MSE, R 平方 -> 用于回归
4. 朴素贝叶斯
用途: 分类
描述: 这是使用 贝叶斯定理 的分类算法族,即它们假设类别内特征之间是独立的。
评估指标:
-
准确度
-
精确度
-
召回率
-
F1 分数
5. K-最近邻(KNN)
用途: 回归与分类
描述: 它计算测试数据与训练数据中 k 个最近数据点 之间的距离。测试数据属于‘邻居’数量较多的类别。关于回归,预测值是 k 个选定训练点的平均值。
评估指标:
-
准确度、精确度、召回率和 F1 分数 -> 用于分类
-
MSE, R 平方 -> 用于回归
6. 支持向量机(SVM)
用途: 回归与分类
描述: 该算法绘制一个超平面来分离不同类别的数据。它的位置距离每个类别的最近点最远。数据点离超平面的距离越远,它越属于该类别。对于回归,原理类似:超平面最大化预测值与实际值之间的距离。
评估指标:
-
准确率、精确率、召回率和 F1 分数 -> 用于分类
-
均方误差(MSE)、决定系数(R-squared) -> 用于回归
7. 随机森林
用途: 回归与分类
描述: 随机森林算法使用一组决策树,这些决策树组成一个决策森林。算法的预测基于许多决策树的预测。数据会被分配到获得最多票数的类别中。对于回归,预测值是所有树的预测值的平均值。
评估指标:
-
准确率、精确率、召回率和 F1 分数 -> 用于分类
-
均方误差(MSE)、决定系数(R-squared) -> 用于回归
8. 梯度提升
用途: 回归与分类
描述: 这些算法使用一组弱模型,每个后续模型识别并纠正前一个模型的错误。这个过程会重复进行,直到错误(损失函数)最小化。
评估指标:
-
准确率、精确率、召回率和 F1 分数 -> 用于分类
-
均方误差(MSE)、决定系数(R-squared) -> 用于回归
无监督学习算法
9. K 均值聚类
用途: 聚类
描述: 该算法将数据集划分为 k 个簇,每个簇由其质心或几何中心表示。通过将数据划分为 k 个簇的迭代过程,目标是最小化数据点与其簇的质心之间的距离。另一方面,它还试图最大化这些数据点与其他簇的质心之间的距离。简而言之,属于同一簇的数据应该尽可能相似,而与其他簇的数据尽可能不同。
评估指标:
-
惯性:每个数据点距离最近簇质心的距离的平方和。惯性值越低,簇越紧凑。
-
轮廓分数:它衡量簇的凝聚力(数据在自身簇中的相似性)和分离度(数据与其他簇的差异)。该分数的值范围从-1 到+1。值越高,数据越适合其簇,越不适合其他簇。
10. 主成分分析(PCA)
用途: 降维
描述: 该算法 通过构建新的变量(主成分)来减少所使用的变量数量,同时仍尝试最大化数据的捕获方差。换句话说,它将数据限制为其最常见的成分,同时不丢失数据的本质。
评估指标:
-
解释方差:每个主成分覆盖的方差百分比。
-
总解释方差:所有主成分覆盖的方差百分比。
结论
机器学习是数据科学的重要组成部分。通过这十种算法,你将涵盖机器学习中最常见的任务。当然,这个概述仅仅是对每种算法工作原理的一个大致了解。所以,这只是一个开始。
现在,你需要学习如何在 Python 中实现这些算法并解决实际问题。在这方面,我推荐使用 scikit-learn。不仅因为它是一个相对易用的机器学习库,还因为它有 丰富的资料 关于机器学习算法。
内特·罗斯迪 是一位数据科学家和产品策略专家。他还是一名兼职教授,教授分析课程,并且是 StrataScratch 的创始人,该平台帮助数据科学家通过来自顶级公司的真实面试问题来准备面试。内特撰写有关职业市场的最新趋势,提供面试建议,分享数据科学项目,并覆盖所有 SQL 相关内容。
相关主题
PyTorch 初学者指南
图片来源:编辑 | Midjourney & Canva
深度学习在人工智能研究的许多领域被广泛使用,并且促进了技术进步。例如,文本生成、面部识别和语音合成应用都基于深度学习研究。
我们的前三个课程推荐
1. 谷歌网络安全证书 - 快速进入网络安全职业道路。
2. 谷歌数据分析专业证书 - 提升你的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持你所在组织的 IT
最常用的深度学习包之一是PyTorch。它是由 Meta AI 于 2016 年创建的开源包,并且被许多人使用。
PyTorch 有很多优点,包括:
-
灵活的模型架构
-
对 CUDA 的原生支持(可以使用 GPU)
-
基于 Python
-
提供低级别的控制,这对于研究和许多用例非常有用
-
开发者和社区的积极开发
让我们通过这篇文章探索 PyTorch,帮助你入门。
准备工作
你应该访问他们的安装网页,选择适合你环境要求的版本。下面的代码是安装示例。
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
PyTorch 准备好了,让我们进入核心部分。
PyTorch 张量
张量是 PyTorch 中的基本构件。它类似于 NumPy 数组,但可以使用 GPU。我们可以使用以下代码尝试创建一个 PyTorch 张量:
a = torch.tensor([2, 4, 5])
print(a)
Output>>
tensor([2, 4, 5])
像 NumPy 数组张量一样,它允许矩阵运算。
e = torch.tensor([[1, 2, 3],
[4, 5, 6]])
f = torch.tensor([7, 8, 9])
print(e * f)
Output>>
tensor([[ 7, 16, 27],
[28, 40, 54]])
也可以执行矩阵乘法。
g = torch.randn(2, 3)
h = torch.randn(3, 2)
print( g @ h)
Output>>
tensor([[-0.8357, 0.0583],
[-2.7121, 2.1980]])
我们可以使用下面的代码访问张量信息。
x = torch.rand(3,4)
print("Shape:", x.shape)
print("Data type:", x.dtype)
print("Device:", x.device)
Output>>
Shape: torch.Size([3, 4])
Data type: torch.float32
Device: cpu
PyTorch 的神经网络训练
通过使用 nn.Module 类定义神经网络,我们可以开发一个简单的模型。让我们试试下面的代码。
import torch
class SimpleNet(nn.Module):
def __init__(self, input, hidden, output):
super(SimpleNet, self).__init__()
self.fc1 = torch.nn.Linear(input, hidden)
self.fc2 = torch.nn.Linear(hidden, output)
def forward(self, x):
x = torch.nn.functional.relu(self.fc1(x))
x = self.fc2(x)
return x
inp = 10
hid = 10
outp = 2
model = SimpleNet(inp, hid, out)
print(model)
Output>>
SimpleNet(
(fc1): Linear(in_features=10, out_features=10, bias=True)
(fc2): Linear(in_features=10, out_features=2, bias=True)
)
上面的代码定义了一个SimpleNet
类,继承自nn.Module
,用于设置层。我们使用nn.Linear
作为层,relu
作为激活函数。
我们可以添加更多层或使用不同的层,如 Conv2D 或 CNN。但我们不会使用这些。
接下来,我们将用样本张量数据训练我们开发的SimpleNet
。
import torch
inp = torch.randn(100, 10)
tar = torch.randint(0, 2, (100,))
criterion = torch.nn.CrossEntropyLoss()
optimizr = torch.optim.SGD(model.parameters(), lr=0.01)
epochs = 100
batchsize = 10
for epoch in range(numepochs):
model.train()
for i in range(0, inp.size(0), batchsize):
batch_inp = inputs[i:i+batch_size]
batch_tar = targets[i:i+batch_size]
out = model(batch_inp)
loss = criterion(out, batch_tar)
optimizer.zero_grad()
loss.backward()
optimizr.step()
if (epoch + 1) % 10 == 0:
print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {round(loss.item(),4})')
在上述训练过程中,我们使用随机张量数据,并初始化一个称为CrossEntropyLoss
的损失函数。同时,我们初始化 SGD 优化器来管理模型参数以最小化损失。
训练过程根据周期次数多次运行,然后进行优化过程。这是通常的深度学习流程。
我们可以添加几个步骤以提高训练的复杂性,例如早停、学习率和其他技术。
最后,我们可以使用未见过的数据评估我们训练的模型。以下代码允许我们做到这一点。
from sklearn.metrics import classification_report
model.eval()
test_inputs = torch.randn(20, 10)
test_targets = torch.randint(0, 2, (20,))
with torch.no_grad():
test_outputs = model(test_inputs)
_, predicted = torch.max(test_outputs, 1)
print(classification_report(test_targets, predicted))
上述情况发生的原因是我们将模型切换到评估模式,这会关闭 dropout 和批量归一化更新。此外,我们还禁用梯度计算过程以加快处理速度。
你可以访问 PyTorch 文档 以进一步了解你可以做什么。
结论
在本文中,我们将深入探讨 PyTorch 的基础知识。从张量创建到张量操作,再到开发一个简单的神经网络模型。本文为初学者级别,所有新手应能迅速跟上。
Cornellius Yudha Wijaya**** 是一位数据科学助理经理和数据撰稿人。在全职工作于 Allianz Indonesia 的同时,他喜欢通过社交媒体和写作媒体分享 Python 和数据技巧。Cornellius 涉及多种 AI 和机器学习主题的写作。
更多相关主题
神经网络的简史
神经网络演变的全景图(图片作者)。
神经网络,人工智能的基本构建块,已经彻底改变了我们处理信息的方式,提供了对未来技术的展望。这些复杂的计算系统受人脑复杂性的启发,已成为从图像识别和自然语言理解到自动驾驶和医疗诊断等任务中的关键。随着我们探索神经网络的历史演变,我们将揭示它们如何演变并塑造现代 AI 的进程。
我们的三大课程推荐
1. 谷歌网络安全证书 - 快速通道进入网络安全职业生涯。
2. 谷歌数据分析专业证书 - 提升你的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持你的组织在 IT 领域
一切是如何开始的?
神经网络,深度学习的基础组件,其概念根源于人脑中复杂的生物神经网络。这个卓越的概念起初是通过一个基本的类比展开的,将生物神经元与计算网络进行对比。
这个类比围绕大脑展开,大脑由大约 1000 亿个神经元组成。每个神经元与其他神经元保持大约 7000 个突触连接,形成一个复杂的神经网络,这一网络是人类认知过程和决策制定的基础。
单独来看,生物神经元通过一系列简单的电化学过程来运作。它通过树突接收来自其他神经元的信号。当这些输入信号累计到一定水平(一个预定的阈值)时,神经元会激活并沿其轴突发送电化学信号。这会影响连接到其轴突末端的神经元。需要注意的是,神经元的反应就像一个二进制开关:要么发射(激活),要么保持安静,没有任何中间状态。
生物神经元是人工神经网络的灵感来源(图片来源:维基百科)。
尽管人工神经网络非常令人印象深刻,但它们仍然远未接近人脑的惊人复杂性和深刻复杂性。然而,它们在解决那些对传统计算机具有挑战性但对人类认知而言直观的问题上表现出了显著的能力。一些例子包括图像识别和基于历史数据的预测分析。
现在我们已经探讨了生物神经元的基本原理及其对人工神经网络的启发,让我们一起回顾那些塑造了人工智能领域的神经网络框架的演变历程。
FFNN - 前馈神经网络
前馈神经网络,通常被称为多层感知器,是一种基本的神经网络类型,其操作深深根植于信息流动、互连层和参数优化的原则中。
在核心上,FFNNs 协调了信息的单向流动。一切从包含n 个神经元的输入层开始,数据在此被初步接收。该层作为网络的入口点,充当需要处理的输入特征的接收器。从这里开始,数据经过网络的隐藏层进行变换。
FFNNs 的一个重要方面是其连接结构,这意味着每一层中的每个神经元都与该层中的每个神经元紧密相连。这种互连性使得网络能够进行计算并捕捉数据中的关系。这就像一个通信网络,其中每个节点在处理信息中扮演着角色。
当数据通过隐藏层时,它会经过一系列计算。每个隐藏层的神经元从前一层的所有神经元接收输入,对这些输入应用加权和,添加一个偏置项,然后通过一个激活函数(通常是 ReLU、Sigmoid 或 tanH)传递结果。这些数学运算使得网络能够从输入中提取相关模式,并捕捉数据中的复杂非线性关系。正是在这一点上,前馈神经网络(FFNNs)相比于更浅的机器学习模型真正表现出色。
完全连接的前馈神经网络的架构(作者提供的图像)。
但这并不是终点。FFNNs 的真正力量在于它们的适应能力。在训练过程中,网络调整其权重以最小化其预测值与实际目标值之间的差异。这个迭代过程通常基于如梯度下降等优化算法,称为反向传播。反向传播使 FFNNs 能够真正从数据中学习,并提高预测或分类的准确性。
示例 KNIME 工作流 用于二分类认证考试(通过与失败)。在上部分支中,我们可以看到网络架构,包括一个输入层,一个具有 tanH 激活函数的全连接隐藏层,以及一个使用 Sigmoid 激活函数的输出层(图像由作者提供)。
尽管强大而多才多艺,FFNN 显示出一些相关的局限性。例如,它们未能捕捉数据中的顺序性和时间/句法依赖性——这两个方面对于语言处理和时间序列分析任务至关重要。克服这些局限性的需求促成了新型神经网络架构的发展。这一过渡为递归神经网络(RNN)的出现铺平了道路,RNN 引入了反馈回路的概念,以更好地处理顺序数据。
RNN 和 LSTM - 递归神经网络和长短期记忆
从根本上讲,RNN 与 FFNN 有一些相似之处。它们也由互联的节点层组成,处理数据以进行预测或分类。然而,它们的关键区别在于能够处理顺序数据并捕捉时间依赖性。
在 FFNN 中,信息沿着从输入层到输出层的单一单向路径流动。这适用于数据顺序不太重要的任务。然而,当处理如时间序列数据、语言或语音这样的序列时,保持上下文和理解数据的顺序至关重要。这正是 RNN 发挥作用的地方。
RNN 引入了反馈回路的概念。这些回路作为一种“记忆”,使得网络能够保持一个隐藏状态,以捕捉关于先前输入的信息,并影响当前的输入和输出。虽然传统神经网络假设输入和输出彼此独立,但递归神经网络的输出依赖于序列中的先前元素。这种递归连接机制使 RNN 特别适合通过“记住”过去的信息来处理序列。
递归网络的另一个区别特征是,它们在网络的每一层中共享相同的权重参数,这些权重通过时间反向传播(BPTT)算法进行调整,该算法与传统的反向传播略有不同,因为它专门针对序列数据。
展开的 RNN 表示,其中每个输入都带有来自先前输入的上下文信息。颜色表示上下文信息的传播(图像由作者提供)。
然而,传统的 RNN 也有其局限性。虽然理论上它们应该能够捕捉长期依赖关系,但实际上它们往往难以有效做到这一点,甚至可能遭遇梯度消失问题,这阻碍了它们在多个时间步长上学习和记忆信息的能力。
这就是长短期记忆(LSTM)单元发挥作用的地方。它们通过在结构中引入三个门控:遗忘门、输入门和输出门,专门设计来处理这些问题。
-
遗忘门:该门控决定应丢弃或忘记时间步长中的哪些信息。通过检查单元状态和当前输入,它决定哪些信息在当前预测中是无关的。
-
输入门:该门控负责将信息引入单元状态。它考虑输入和先前的单元状态,以决定应添加哪些新信息来增强其状态。
-
输出门:该门控决定 LSTM 单元将生成什么输出。它考虑当前输入和更新后的单元状态,以产生可以用于预测或传递给时间步长的输出。
长短期记忆单元的可视化表示(图片 由 Christopher Olah 提供)。
示例 KNIME 工作流 使用 LSTM 单元的 RNN 用于多类别情感预测(积极、消极、中立)。上支定义了网络架构,包括一个输入层来处理不同长度的字符串,一个嵌入层,一个包含多个单元的 LSTM 层,以及一个全连接输出层,配有 Softmax 激活函数以返回预测结果。
总之,RNN(递归神经网络),特别是 LSTM(长短期记忆)单元,专为序列数据设计,能够保持记忆并捕捉时间依赖关系,这对于自然语言处理、语音识别和时间序列预测等任务至关重要。
当我们从 RNN 捕捉序列依赖关系转变时,卷积神经网络(CNN)不断发展。与 RNN 不同,CNN 在从结构化网格状数据中提取空间特征方面表现优异,使其非常适合图像和模式识别任务。这种过渡反映了神经网络在不同数据类型和结构中的多样化应用。
CNN - 卷积神经网络
CNN(卷积神经网络)是一种特殊类型的神经网络,特别适合处理图像数据,如二维图像甚至三维视频数据。它们的架构依赖于一个多层前馈神经网络,至少包含一个卷积层。
CNNs 的独特之处在于它们的网络连接性和特征提取方法,这使得它们能够自动识别数据中的相关模式。与传统的 FFNNs 不同,CNNs 不是将一层中的每个神经元与下一层中的每个神经元连接,而是采用称为卷积核或滤波器的滑动窗口。这个滑动窗口扫描输入数据,特别适用于空间关系重要的任务,如图像中的对象识别或视频中的运动跟踪。当卷积核在图像上移动时,会在卷积核与像素值之间执行卷积操作(从严格的数学角度看,这个操作是交叉相关),并应用非线性激活函数,通常是 ReLU。如果特征存在于图像补丁中,则产生较高的值,如果不存在,则产生较小的值。
与卷积核一起,超参数的添加和微调,如步幅(即我们滑动卷积核的像素数)和扩张率(即每个卷积核单元之间的间隔),使网络能够关注特定特征,在特定区域识别模式和细节,而无需一次考虑整个输入。
带有步幅长度 = 2 的卷积操作(GIF由 Sumit Saha 提供)。
一些卷积核可能专门用于检测边缘或角落,而其他的可能会被调整以识别图像中的更复杂对象,如猫、狗或街道标志。通过堆叠多个卷积层和池化层,CNNs 构建了输入的层次化表示,逐渐将特征从低级别抽象到高级别,就像我们的大脑处理视觉信息一样。
示例KNIME 工作流程用于二进制图像分类(猫与狗)。上层分支通过一系列卷积层和最大池化层定义网络架构,以自动从图像中提取特征。然后,使用展平层将提取的特征准备为一维输入,供 FFNN 进行二进制分类。
虽然 CNNs 在特征提取方面表现出色,并且已经彻底改变了计算机视觉任务,但它们只是被动观察者,因为它们并不设计用来生成新的数据或内容。这并不是网络本身的固有限制,而是拥有强大引擎却没有燃料使得快速汽车变得无用。实际上,真实和有意义的图像和视频数据往往难以收集且成本高昂,并且往往面临版权和数据隐私的限制。这一限制促使了一个新颖范式的开发,它建立在 CNNs 的基础上,但从图像分类跃迁到创意合成:生成对抗网络(GANs)。
GAN - 生成对抗网络
GANs 是神经网络中的一个特定家族,其主要但不是唯一的目的,是生成与给定真实数据集非常相似的合成数据。与大多数神经网络不同,GANs 的独特架构设计由两个核心模型组成:
-
生成器模型:这个神经网络二重奏的第一位成员是生成器模型。这个组件肩负着一个令人着迷的任务:给定随机噪声或输入向量,它努力创建与真实样本尽可能相似的人工样本。可以把它想象成一个艺术伪造者,试图创作出与名画无法区分的伪作。
-
鉴别器模型:扮演对立角色的是鉴别器模型。它的工作是区分生成器生成的样本和原始数据集中真实的样本。可以把它想象成一个艺术鉴赏家,试图在真正的艺术作品中识别伪作。
现在,魔法发生的地方是:GANs 进行持续的对抗性舞蹈。生成器旨在提升其艺术水平,不断微调其创作,使其更具说服力。同时,鉴别器则成为更敏锐的侦探,磨练其区分真实与虚假的能力。
GAN 架构(图像作者提供)。
随着训练的进行,生成器和鉴别器之间的动态互动会产生令人着迷的结果。生成器努力生成足够逼真的样本,以至于连鉴别器都无法将它们与真实样本区分开来。这种竞争驱使两个组件不断提高各自的能力。
结果?生成器变得异常擅长生成看起来真实的数据,无论是图像、音乐还是文本。这种能力在各种领域中产生了显著的应用,包括图像合成、数据增强、图像到图像的翻译和图像编辑。
示例 KNIME 工作流 用于生成合成图像(例如动物、人脸和辛普森角色)。
GANs 开创了现实图像和视频内容创作的先河,通过对抗生成器和判别器来实现。在图像到序列数据的创意和高级操作需求不断扩展的背景下,推出了更为复杂的自然语言理解、机器翻译和文本生成模型。这促成了 Transformers 的开发,这是一种显著的深度神经网络架构,它不仅通过有效捕捉长期语言依赖关系和语义上下文超越了以前的架构,还成为了最新 AI 驱动应用的无可争议的基础。
Transformers
2017 年开发的 Transformers 拥有一个独特的特点,使其能够取代传统的递归层:一种自注意力机制,使它们能够建模文档中所有单词之间的复杂关系,而不管它们的位置。这使得 Transformers 在处理自然语言中的长期依赖问题时表现出色。Transformer 架构由两个主要构建块组成:
*** 编码器。 在这里,输入序列被嵌入到向量中,然后暴露于自注意力机制中。后者计算每个令牌的注意力分数,确定其相对于其他令牌的重要性。这些分数用于创建加权和,输入到 FFNN 中生成每个令牌的上下文感知表示。多个编码器层重复这一过程,增强模型捕捉层次结构和上下文信息的能力。
- 解码器。 这个模块负责生成输出序列,其过程类似于编码器。它能够在每一步上正确关注和理解编码器的输出及其自身的过去令牌,通过考虑输入上下文和之前生成的输出,确保准确生成。
Transformer 模型架构(图片作者:Vaswani 等,2017 年)。
例如这句话:“我在过河后到达了银行”。单词“bank”可以有两种含义——金融机构或河岸。这里是 transformers 的优势所在。它们能够迅速关注单词“river”来消除“bank”的歧义,通过将“bank”与句子中的其他每个单词进行比较,并分配注意力分数。这些分数决定了每个单词对“bank”下一个表示的影响。在这种情况下,“river”获得了更高的分数,有效地澄清了意图。
要实现如此高效,Transformers 依赖于数百万个可训练参数,需要大量的文本语料库和复杂的训练策略。Transformers 使用的一个显著训练方法是 掩码语言建模(MLM)。在训练过程中,输入序列中的特定词元会被随机掩盖,模型的目标是准确预测这些掩盖的词元。这种策略鼓励模型掌握单词之间的上下文关系,因为它必须依赖周围的单词来做出准确的预测。这种方法由 BERT 模型推广,对于在各种 NLP 任务中取得最先进的结果起到了关键作用。
Transformers 的 MLM 替代方法是 自回归建模。在这种方法中,模型被训练为一次生成一个单词,同时考虑先前生成的单词。像 GPT(Generative Pre-trained Transformer)这样的自回归模型遵循这种方法,并在目标是单向预测下一个最合适的单词的任务中表现出色,例如自由文本生成、问答和文本补全。
此外,为了弥补对大量文本资源的需求,Transformers 在并行化方面表现出色,这意味着它们可以比传统的序列方法(如 RNN 或 LSTM 单元)更快地处理训练数据。这种高效的计算减少了训练时间,并导致了在自然语言处理、机器翻译等领域的突破性应用。
由 Google 于 2018 年开发的一个关键 Transformer 模型是 BERT(Bidirectional Encoder Representations from Transformers)。BERT 依赖于 MLM 训练,并引入了双向上下文的概念,意味着它在预测掩盖的词元时会考虑单词的左侧和右侧上下文。这种双向方法显著增强了模型对单词含义和上下文细微差别的理解,为自然语言理解和各种下游 NLP 任务建立了新的基准。
示例 KNIME 工作流 用于 BERT 的多类情感预测(积极、消极、中立)。进行了最小预处理,并利用了经过微调的预训练 BERT 模型。
在引入强大自注意力机制的 Transformers 之后,对应用的多样性和执行复杂自然语言任务(如文档摘要、文本编辑或代码生成)的日益增长的需求,促使了 大型语言模型 的发展。这些模型使用具有数十亿参数的深度神经网络,以在这些任务中表现出色,并满足数据分析行业不断变化的需求。
LLM - 大型语言模型
大型语言模型(LLMs)是一类革命性的多用途和多模态(接受图像、音频和文本输入)深度神经网络,近年来获得了大量关注。形容词大型源于它们的巨大规模,因为它们包含了数十亿的可训练参数。一些最知名的例子包括 OpenAI 的 ChatGPT、谷歌的 Bard 或 Meta 的 LLaMa。
LLMs 的特点在于它们处理和生成类似人类文本的能力和灵活性。它们在自然语言理解和生成任务中表现出色,从文本完成和翻译到问答和内容总结。它们成功的关键在于对海量文本语料库的广泛训练,使它们能够捕捉语言的细微差别、上下文和语义。
这些模型采用了深度神经网络架构,拥有多个自注意力机制的层,使它们能够在给定的上下文中权衡不同词语和短语的重要性。这种动态适应性使它们在处理各种类型的输入、理解复杂语言结构以及生成基于人类定义的提示的输出方面表现得非常出色。
示例 KNIME 工作流 用于创建一个依赖于 OpenAI 的 ChatGPT 和一个包含自定义文档的向量存储的 AI 助手,以回答特定领域的问题。
LLMs 为多个行业的应用铺平了道路,从医疗保健和金融到娱乐和客户服务。它们甚至激发了创意写作和讲故事的新领域。
然而,它们巨大的规模、资源密集型的训练过程以及生成内容可能存在的版权问题也引发了对伦理使用、环境影响和可访问性的担忧。最后,尽管不断增强,LLMs 可能仍存在一些严重缺陷,如“幻想”错误事实、存在偏见、易受影响或生成有害内容。
这是否会有终点?
神经网络的演变,从其卑微的起点到大型语言模型的兴起,引发了一个深刻的哲学问题:这段旅程会永远结束吗?
技术的发展轨迹始终以不断的进步为特征。每一个里程碑只是通向下一次创新的垫脚石。当我们努力创建能够复制人类认知和理解的机器时,我们不禁要思考是否存在一个终极目标,一个我们可以说“就是这样;我们已达巅峰”的点。
然而,人类的好奇心和自然世界的无限复杂性却另有启示。正如我们对宇宙的理解不断深化,开发更智能、更有能力、更具伦理的神经网络的追求可能是一个无尽的旅程。(神经网络进化过程概述,作者提供的图像)
神经网络,作为人工智能的基本构建块,已经彻底改变了我们处理信息的方式,为未来技术提供了一瞥。这些复杂的计算系统,受到人脑复杂性的启发,在从图像识别和自然语言理解到自动驾驶和医疗诊断等任务中发挥了关键作用。在探索神经网络的历史进化过程中,我们将揭示它们如何演变以塑造现代人工智能的景观。
一切是如何开始的?
神经网络,作为深度学习的基础组件,其概念根源于人脑中复杂的生物神经网络。这一了不起的概念始于一个基本的类比,将生物神经元与计算网络进行了类比。
这个类比围绕着大脑展开,大脑由大约 1000 亿个神经元组成。每个神经元与其他神经元保持约 7000 个突触连接,形成了一个复杂的神经网络,支撑着人类的认知过程和决策制定。
单个生物神经元通过一系列简单的电化学过程来运作。它通过树突接收来自其他神经元的信号。当这些传入信号累加到一定水平(预定阈值)时,神经元就会被激活,并沿着轴突发送电化学信号。这会影响连接到其轴突末梢的神经元。需要注意的是,神经元的反应像一个二进制开关:它要么激活,要么保持安静,没有中间状态。
生物神经元是人工神经网络的灵感来源(图像:维基百科)。
尽管人工神经网络令人印象深刻,但它们仍远未接近人脑的惊人复杂性和深奥复杂性。然而,它们在解决对传统计算机具有挑战性但对人类认知直观的问题上表现出了显著的能力。比如图像识别和基于历史数据的预测分析。
现在我们已经探讨了生物神经元功能的基础原理及其对人工神经网络的启发,接下来让我们回顾神经网络框架的进化历程,这些框架塑造了人工智能的领域。
FFNN - 前馈神经网络
前馈神经网络,通常被称为多层感知机,是一种基础的神经网络类型,其操作深深植根于信息流动、互连层和参数优化的原则中。
在其核心,FFNNs orchestrate 信息的单向流动。所有一切都始于包含 n 个神经元的输入层,数据在此被初步接收。该层作为网络的入口点,充当需要处理的输入特征的接收器。从那里,数据开始经过网络的隐藏层进行转化的旅程。
FFNNs 的一个重要方面是它们的连接结构,这意味着每个层中的神经元都与该层中的每个神经元紧密相连。这种互连性使网络能够进行计算并捕捉数据中的关系。这就像一个通信网络,每个节点在信息处理过程中都扮演着角色。
当数据通过隐藏层时,它经历了一系列计算。隐藏层中的每个神经元接收来自前一层所有神经元的输入,对这些输入应用加权和,添加偏置项,然后通过激活函数(通常是 ReLU、Sigmoid 或 tanH)传递结果。这些数学操作使网络能够从输入中提取相关模式,并捕捉数据中的复杂、非线性关系。这是 FFNNs 相比于更浅层的 ML 模型真正出色的地方。
完全连接的前馈神经网络的架构(图片由作者提供)。
然而,这还不是全部。FFNNs 的真正力量在于它们的适应能力。在训练过程中,网络调整其权重,以最小化预测值与实际目标值之间的差异。这个迭代过程,通常基于像梯度下降这样的优化算法,被称为 反向传播。反向传播使 FFNNs 能够真正从数据中学习,并提高其预测或分类的准确性。
KNIME 工作流示例展示了用于认证考试(二元分类:通过与失败)的 FFNN。在上部分支中,我们可以看到网络架构,它由一个输入层、一个带有 tanH 激活函数的全连接隐藏层和一个使用 Sigmoid 激活函数的输出层组成(图片由作者提供)。
尽管强大且多功能,FFNNs 显示出一些相关的限制。例如,它们无法捕捉数据中的顺序性和时间/句法依赖关系——这对语言处理和时间序列分析任务至关重要。克服这些限制的需求促使了一种新型神经网络架构的演变。这一过渡为递归神经网络(RNNs)铺平了道路,后者引入了反馈回路的概念,以更好地处理序列数据。
RNN 和 LSTM - 循环神经网络和长短期记忆
从核心来看,RNN 与 FFNN 存在一些相似之处。它们也由互联节点的层组成,处理数据以进行预测或分类。然而,它们的关键区别在于其处理序列数据和捕获时间依赖性的能力。
在 FFNN 中,信息沿着从输入层到输出层的单一路径流动。这适用于数据顺序不太重要的任务。然而,在处理时间序列数据、语言或语音等序列时,保持上下文和理解数据的顺序至关重要。这是 RNN 发挥作用的地方。
RNN 引入了反馈循环的概念。这些循环作为一种“记忆”,允许网络保持一个隐藏状态,该状态捕获有关先前输入的信息,并影响当前输入和输出。虽然传统神经网络假设输入和输出彼此独立,但递归神经网络的输出依赖于序列中的前一个元素。这种递归连接机制使 RNN 特别适合处理序列,通过“记住”过去的信息。
循环网络的另一个区别特征是它们在每一层网络中共享相同的权重参数,并通过时间反向传播(BPTT)算法调整这些权重,这与传统的反向传播略有不同,因为它专门针对序列数据。
RNN 的展开表示,其中每个输入都结合了来自先前输入的上下文信息。颜色表示上下文信息的传播(图像作者提供)。
然而,传统的 RNN 存在其局限性。虽然理论上它们应该能够捕捉长期依赖关系,但在实际中,它们难以有效做到这一点,并且可能会受到梯度消失问题的影响,这妨碍了它们在许多时间步上学习和记忆信息的能力。
长短期记忆(LSTM)单元在这里发挥作用。它们专门设计用于处理这些问题,通过在其结构中引入三个门:遗忘门、输入门和输出门。
-
遗忘门:这个门决定了应该丢弃或遗忘时间步中的哪些信息。通过检查单元状态和当前输入,它确定哪些信息对当前的预测是无关的。
-
输入门:这个门负责将信息纳入单元状态。它考虑了输入和先前的单元状态,以决定应该添加哪些新信息以增强其状态。
-
输出门:这个门决定了 LSTM 单元将生成什么输出。它考虑了当前输入和更新后的单元状态,以生成可以用于预测或传递到时间步的输出。
长短期记忆单元的可视化表示(图片由 Christopher Olah 提供)。
KNIME 工作流的示例,使用带有 LSTM 单元的 RNNs 进行多类情感预测(正面、负面、中立)。上支定义了网络架构,使用输入层处理不同长度的字符串,嵌入层,具有多个单元的 LSTM 层,以及具有 Softmax 激活函数的全连接输出层以返回预测结果。
总结来说,RNNs,尤其是 LSTM 单元,专门用于序列数据,使它们能够保持记忆并捕捉时间依赖关系,这对于自然语言处理、语音识别和时间序列预测等任务至关重要。
当我们从捕捉序列依赖关系的 RNNs 转变时,演变继续向卷积神经网络(CNNs)发展。与 RNNs 不同,CNNs 在从结构化网格数据中提取空间特征方面表现出色,使其成为图像和模式识别任务的理想选择。这种转变反映了神经网络在不同数据类型和结构中的多样应用。
CNN - 卷积神经网络
CNNs 是一种特殊的神经网络,特别适合处理图像数据,如 2D 图像或甚至 3D 视频数据。它们的架构依赖于具有至少一个卷积层的多层前馈神经网络。
使 CNNs 脱颖而出的是其网络连接性和特征提取方法,这使得它们能够自动识别数据中的相关模式。与传统的 FFNNs 不同,后者将一层中的每个神经元与下一层中的每个神经元连接,CNNs 使用一种称为内核或滤波器的滑动窗口。这个滑动窗口扫描输入数据,对于空间关系重要的任务(如图像中的物体识别或视频中的运动跟踪)特别有效。当内核在图像上移动时,会在内核和像素值之间执行卷积操作(从严格的数学角度看,这个操作是交叉相关),并应用通常是 ReLU 的非线性激活函数。如果特征在图像块中,则会产生高值,否则产生小值。
与内核一起,步幅(即滑动内核的像素数)和扩张率(即每个内核单元之间的间隔)等超参数的添加和微调,使网络能够关注特定特征,识别特定区域的模式和细节,而不需要一次性考虑整个输入。
具有步幅长度=2 的卷积操作(GIF由 Sumit Saha 提供)。
有些卷积核可能专门用于检测边缘或角落,而其他卷积核则可能被调整用于识别图像中的更复杂对象,比如猫、狗或街道标志。通过将几个卷积层和池化层堆叠在一起,卷积神经网络(CNN)构建了输入数据的层次表示,逐渐从低层次特征抽象到高层次特征,就像我们的脑袋处理视觉信息一样。
示例 KNIME 工作流 用于二分类图像分类(猫与狗)。上部分支通过一系列卷积层和最大池化层定义网络架构,用于从图像中自动提取特征。然后,使用一个展平层将提取的特征准备为 FFNN 的单维输入,以执行二分类任务。
尽管卷积神经网络(CNN)在特征提取方面表现出色,并且在计算机视觉任务中取得了突破,但它们作为被动观察者,因为它们并不被设计用来生成新的数据或内容。这并不是网络本身的固有限制,但拥有强大的引擎却没有燃料会使一辆快车变得无用。确实,真实而有意义的图像和视频数据通常很难且昂贵地收集,并且往往面临版权和数据隐私限制。这种限制促使了一种新范式的出现,它建立在 CNN 的基础上,但标志着从图像分类到创造性合成的飞跃:生成对抗网络(GANs)。
GAN - 生成对抗网络
GANs 是一类特殊的神经网络,其主要但不是唯一的目的是生成与给定真实数据集非常相似的合成数据。与大多数神经网络不同,GANs 的巧妙架构设计包括两个核心模型:
-
生成器模型:在这个神经网络二重奏中,第一个角色是生成器模型。这个组件的任务是执行一个迷人的使命:给定随机噪声或输入向量,它努力创建尽可能接近真实样本的人工样本。可以把它想象成一个艺术伪造者,试图制作出与杰作无法区分的画作。
-
判别器模型:扮演对抗角色的是判别器模型。它的工作是区分由生成器生成的样本和来自原始数据集的真实样本。可以把它想象成一个艺术鉴赏家,试图从真实的艺术品中识别伪造品。
现在,魔法发生的地方在于:生成对抗网络(GAN)进行着持续的对抗性舞蹈。生成器旨在提升其艺术性,不断微调其创作,以变得更加可信。与此同时,判别器则变得更加敏锐,磨练其分辨真假样本的能力。
GAN 架构(作者提供的图像)。
随着训练的进行,生成器和判别器之间的这种动态互动会产生一个迷人的结果。生成器力求生成如此真实的样本,以至于连判别器也无法将其与真实样本区分开。这种竞争推动了两个组件不断完善自己的能力。
结果呢?生成器变得非常擅长生成看起来真实的数据,无论是图像、音乐还是文本。这一能力在图像合成、数据增强、图像到图像翻译和图像编辑等各个领域产生了显著的应用。
示例KNIME 工作流用于生成合成图像(即动物、人脸和辛普森角色)的 GANs。
GANs 通过将生成器与判别器对抗,开创了逼真的图像和视频内容创作。随着对创造力和高级操作的需求从图像扩展到序列数据,出现了更复杂的自然语言理解、机器翻译和文本生成模型。这催生了 Transformers 的发展,这是一种卓越的深度神经网络架构,不仅通过有效捕捉长程语言依赖关系和语义上下文超越了之前的架构,而且成为了最新 AI 驱动应用的无可争议的基础。
Transformers
Transformers 于 2017 年开发,拥有一个独特的特点,使其可以替代传统的递归层:自注意力机制,这使它们能够建模文档中所有单词之间的复杂关系,而不受它们位置的影响。这使得 Transformers 在处理自然语言中的长程依赖关系方面表现出色。Transformer 架构由两个主要构建模块组成:
*** 编码器。 在这里,输入序列被嵌入到向量中,然后暴露给自注意力机制。后者为每个标记计算注意力分数,以确定其相对于其他标记的重要性。这些分数用于创建加权和,随后输入到前馈神经网络(FFNN)中,以生成每个标记的上下文感知表示。多个编码器层重复这一过程,从而增强模型捕捉层次和上下文信息的能力。
- 解码器。 这个模块负责生成输出序列,过程类似于编码器。它能够在每一步中适当关注并理解编码器的输出及其自身的历史标记,通过同时考虑输入上下文和先前生成的输出来确保准确生成。
Transformer 模型架构(图片 作者:Vaswani 等,2017 年)。
例如考虑这个句子:“我在过河后到达了银行”。单词“bank”可以有两个意思——金融机构或河岸。变换器在这里发挥了作用。它们可以迅速关注单词“river”,通过将“bank”与句子中的每个其他单词进行比较,并分配注意力得分,从而消除歧义。这些得分决定了每个单词对“bank”下一个表示的影响。在这种情况下,“river”获得了更高的得分,有效地澄清了意图的意义。
为了做到这一点,Transformers 依赖于数百万的可训练参数,需要大量的文本语料库和复杂的训练策略。与 Transformers 一起使用的一个显著训练方法是 掩码语言建模 (MLM)。在训练期间,输入序列中的特定标记会被随机掩盖,模型的目标是准确预测这些掩盖的标记。这种策略鼓励模型掌握单词之间的上下文关系,因为它必须依赖周围的单词来进行准确的预测。这种方法由 BERT 模型推广,在各种 NLP 任务中取得了最先进的结果。
对于 Transformers 的替代方法是 自回归建模。在这种方法中,模型被训练为一次生成一个单词,同时依据先前生成的单词进行条件化。像 GPT(生成式预训练变换器)这样的自回归模型遵循这种方法,在预测单向的下一个最合适的单词时表现出色,例如自由文本生成、问答和文本补全。
此外,为了弥补对大量文本资源的需求,Transformers 在并行化方面表现出色,这意味着它们可以比传统的序列化方法(如 RNNs 或 LSTM 单元)更快地处理数据,从而减少训练时间,并在自然语言处理、机器翻译等领域取得了突破性的应用。
由谷歌在 2018 年开发的一个具有重大影响的关键 Transformer 模型是 BERT(双向编码器表示来自 Transformers)。BERT 依赖于 MLM 训练,并引入了双向上下文的概念,这意味着在预测掩盖的标记时,它考虑单词的左右上下文。这种双向方法显著增强了模型对单词含义和上下文细微差别的理解,为自然语言理解和广泛的下游 NLP 任务建立了新的基准。
示例 KNIME 工作流 用于多类别情感预测(正面、负面、中性)。执行了最小的预处理,并利用了经过微调的预训练 BERT 模型。
在引入强大自注意力机制的 Transformers 之后,对应用的多样性和执行复杂自然语言任务(如文档总结、文本编辑或代码生成)的需求不断增长,这促使了大型语言模型的开发。这些模型使用具有数十亿参数的深度神经网络,在这些任务中表现出色,并满足数据分析行业不断变化的需求。
LLM - 大型语言模型
大型语言模型(LLMs)是一类革命性的多用途和多模态(接受图像、音频和文本输入)深度神经网络,近年来获得了广泛关注。形容词large源于它们的庞大规模,因为它们包含数十亿个可训练参数。一些最著名的例子包括 OpenAI 的 ChatGTP、Google 的 Bard 或 Meta 的 LLaMa。
LLMs 的独特之处在于它们无与伦比的处理和生成类人文本的能力。它们在自然语言理解和生成任务中表现出色,范围涵盖从文本补全和翻译到问答和内容总结。它们成功的关键在于对大量文本语料的广泛训练,使它们能够捕捉语言细微差别、上下文和语义的丰富理解。
这些模型采用深度神经架构,具有多层自注意力机制,使它们能够权衡给定上下文中不同单词和短语的重要性。这种动态适应性使它们在处理各种类型的输入、理解复杂语言结构以及根据人类定义的提示生成输出方面表现得特别高效。
示例 KNIME 工作流 通过依赖 OpenAI 的 ChatGPT 和包含自定义文档的向量存储来创建 AI 助手,以回答特定领域的问题。
LLMs 为各种行业带来了众多应用,从医疗保健和金融到娱乐和客户服务。它们甚至在创意写作和讲故事方面开辟了新的领域。
然而,它们巨大的规模、资源密集型的训练过程以及生成内容可能涉及的版权问题也引发了对伦理使用、环境影响和可访问性的担忧。最后,尽管不断增强,LLMs 可能仍存在一些严重缺陷,例如“幻觉”错误事实、偏见、易受影响或被迫生成有害内容。
是否有终点?
从神经网络的谦逊起点到大型语言模型的兴起,这一演变提出了一个深刻的哲学问题:这一旅程是否会有尽头?
技术的发展历程始终以不懈的进步为特征。每一个里程碑只是通向下一个创新的垫脚石。当我们努力创造能够复制人类认知和理解的机器时,很容易产生这样的疑问:是否存在一个终极目标,一个我们可以说“这就是它;我们已经达到了巅峰”的点。
然而,人类好奇心的本质和自然界的无限复杂性表明情况并非如此。正如我们对宇宙的理解不断加深,开发更智能、更有能力、更具伦理的神经网络的探索也许是一次无尽的旅程。
Anil 是 KNIME 的数据科学传播者。