Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

李雷、笪洁琼、云舟编译

神经网络的菜鸟入门秘籍

在过去几年中,如果你打开过浏览器,那么你肯定看到过几百回“神经网络”这个词。

在这篇短文中,我将为你初步介绍这一领域和神经网络本身的背景信息。接下来的5分钟可能不会让你迅速成为这个领域的世界级专家,但让你经历一个意义非凡的入门阶段却是很简单的。另外,你还将学习到一些流行术语(尤其是按文后的清单做进一步阅读),这可以成为你茶余饭后的谈资。

什么是机器学习

要理解神经网络,我们首先需要懂机器学习。而为了理解机器学习,我们就得先谈谈人类学习,或者“经典编程”。

在经典编程中,我,也就是开发人员,需要弄明白我正在试图解决的问题的各个方面,并确切地知道怎样找到解决方案。

例如,假设我希望我的程序知道正方形和圆形之间的区别。解决这个问题的其中一种方法是编写一个可以检测边角的程序。如果我的程序检测到4个角,那么这个形状是一个正方形,如果它检测不到任何角,那么这个形状就是一个圆。

那么机器学习又是啥?一般来说,机器学习=从例子中学习。

机器学习中,当面对上文区分圆和正方形的问题时,我们将设计一个学习系统,将许多形状及其类别(正方形或圆形)的例子作为输入,从而希望机器能够自己学习可以用来区分形状的特征。

然后,一旦机器学会了所有的特征,我们就可以给它一个以前没出现过的图像,并且希望它能够正确地对其进行分类。

什么是神经元

神经网络的背景下,神经元是一个奇妙的名词,“聪明”的人不愿用函数(function)这个朴素名字。当然,在数学和计算机科学的背景下,函数(function)也是一个奇妙的名称,它接收输入,实现处理逻辑并输出结果。

更重要的是,神经元可以被认为是一个学习单元。

因此,我们需要在机器学习的背景下理解什么是学习单元。之后我们就可以理解神经网络最基本的构造,即神经元

为了阐述这个问题,假设我试图理解博客文章中单词数量与人们实际从该帖子中读到的单词数量之间的关系。请注意 - 我们是在机器学习领域做这件事,因此我们要从例子中学习。

所以我在博客文章中收集了许多单词数统计的实例,用x表示,以及人们在这些帖子中实际阅读了多少单词,用y表示,我假设它们之间存在一定关系,用f表示。

这件事情的神奇之处在于,我只需要告诉机器(程序)我期望看到的关系(例如直线)大概是怎样的,机器就会明白它需要绘制的实际图形。

那我在这里又得到了什么?

下一次,我想要写一篇有x个单词的博客文章,机器可以运用它发现的关系f来告诉我,我可以预期人们实际阅读的单词数量,y。

所以,神经网络是......

好,如果一个神经元是一个函数,那么神经网络就是一个函数网络!这意味着我们有许多(很多)这样的函数和这样的学习单元,它们的所有输入和输出是相互交织的,就是说他们互为输入输出。

作为这个网络的设计者,我需要回答以下问题:

  • 如何为输入和输出建模?(例如,如果输入是一些文本,我可以用字母建模吗?那数字和向量呢?...。)

  • 每个神经元有哪些功能?(它们是线性的吗?还是指数型的?...)

  • 网络的架构是什么?(也就是说,哪个函数的输出是哪个函数的输入?)

  • 我可以用哪些流行术语描述我的网络?

一旦我回答了这些问题,我就可以向我的网络“展示”许多正确的输入输出的例子,这样当我“展示”给它一个它以前从未见过的新示例输入时,它就会知道正确的输出。

你也可以访问神经网络游乐场这个超级酷的网站,从而更好地理解这个过程意味着什么。

神经网络游乐场:https://playground.tensorflow.org/

神经网络 - 永无止境的故事

由于这个领域实际上在不断膨胀,每分钟出现的新内容的数量对任何人来说都是不可能跟踪的。(不知道会不会有朝一日我们能够建立一个能够追踪人类在AI领域进步的AI)

进入这个领域,首先要知道的是没有人知道一切。所以你不用担心自己不如他人,只要保持好奇心就好了。:)

因此,推荐一些比较优秀的资源:

Gal Yona,在这个领域非常棒的博主之一。她的帖子包括从核心技术的解释到半哲学的评论。

核心技术的解释:https://towardsdatascience.com/do-gans-really-model-the-true-data-distribution-or-are-they-just-cleverly-fooling-us-d08df69f25eb

到半哲学的评论:https://towardsdatascience.com/the-tale-of-1001-black-boxes-62d12b5886aa

Siraj Raval 是一个拥有大量视频的油管博主(youtuber),从理论解释到动手教程都非常有趣!

理论解释:https://www.youtube.com/watch?v=xRJCOz3AfYY

动手教程:https://www.youtube.com/watch?v=pY9EwZ02sXU

Christopher Olah,一位充满激情和洞察力的研究员,拥有一个超炫的博客,其中包括从基本概念到深度学习的帖子。

从基本概念:http://colah.github.io/posts/2015-09-Visual-Information/

深度学习https://distill.pub/2017/feature-visualization/

《走向数据科学》是这个领域最大的中型出版物,无论你有几分钟或几小时的时间,都可以去他们的主页开始探索一切,从实用工具到深度算法应有尽有。

走向数据科学https://towardsdatascience.com/

相关报道:https://medium.freecodecamp.org/neural-networks-for-dummies-a-quick-intro-to-this-fascinating-field-795b1705104a

大数据文摘
大数据文摘

秉承“普及数据思维,传播数据文化,助⼒产业发展”的企业⽂化,我们专注于数据领域的资讯、案例、技术,形成了“媒体+教育+⼈才服务”的良性⽣态,致⼒于打造精准数据科学社区。

入门神经网络机器学习深度学习
6
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

数据科学技术

数据科学,又称资料科学,是一门利用数据学习知识的学科,其目标是通过从数据中提取出有价值的部分来生产数据产品。它结合了诸多领域中的理论和技术,包括应用数学、统计、模式识别、机器学习、数据可视化、数据仓库以及高性能计算。数据科学通过运用各种相关的数据来帮助非专业人士理解问题。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

神经元技术

(人工)神经元是一个类比于生物神经元的数学计算模型,是神经网络的基本组成单元。 对于生物神经网络,每个神经元与其他神经元相连,当它“兴奋”时会向相连的神经元发送化学物质,从而改变这些神经元的电位;神经元的“兴奋”由其电位决定,当它的电位超过一个“阈值”(threshold)便会被激活,亦即“兴奋”。 目前最常见的神经元模型是基于1943年 Warren McCulloch 和 Walter Pitts提出的“M-P 神经元模型”。 在这个模型中,神经元通过带权重的连接接处理来自n个其他神经元的输入信号,其总输入值将与神经元的阈值进行比较,最后通过“激活函数”(activation function)产生神经元的输出。

推荐文章
暂无评论
暂无评论~