傻瓜神经网络入门指南

简介: 现在网络上充斥着大量关于神经网络的消息,但是,什么是神经网络?其本质到底是什么?用几分钟阅读完这篇文章,我不能保证你能够成为这个领域的专家,不过你已经入门了。

e4795c9ff514875d542d7c777e109a873c1a296f

现在网络上充斥着大量关于神经网络的消息,但是,什么是神经网络?其本质到底是什么?你是不是对这个熟悉又陌生的词感到困惑?

用几分钟阅读完这篇文章,我不能保证你能够成为这个领域的专家,但可以保证的是,你已经入门了。

什么是神经网络?

想要透彻的了解神经网络,我们首先要知道什么是机器学习。为了更好的理解机器学习,我们首先谈谈人的学习,或者说什么是经典程序设计

在经典的程序设计中,作为一名开发人员,我需要了解所要解决的问题的各个方面,以及我要以什么规则为基础。

举个例子来说,假设我要设计一个能够区别正方形和圆形的程序。处理方法则是编写一个可以检测到角的程序,然后计算角的数量。如果程序能检测到4个角,那么图形为正方形;如果角的个人为0,则为圆形。

那么这个机器学习有何关系?一般来说,机器学习=从示例中学习

在机器学习中,该如何区别正方形和圆形呢?这时候,我们就要设计一个学习系统,将许多形状及类别不同的图形作为输入,然后我们希望机器能够自己学习形状及类别,然后识别出不同图形的不同特性。

一旦机器学会了这些属性,我们就可以输入一个新的图形(机器以前没见过的图形),然后机器对这些图形进行分类。

366284fc127204998788bc68229a79cace9c893d

什么是神经网络?

在神经网络中,神经元是一个很奇特的名字,比较类似于函数。在数学和计算机领域,函数可以接受某个输入,经过一系列的逻辑运算,输出结果。

更重要的是,我们可以将神经元看做一个学习单元。

因此,我们需要理解什么是学习单元,然后再了解神经网络的基本构建块,即神经元。

为了更好的理解,假设我们试图理解博客文章中单词数量与人们实际从博客中读取单词数量之间的关系。请记住一点,在机器学习领域,我们从示例中学习。

因此,我们用x表示机器收集到文章的单词数量,用y表示人们实际读到的单词数,它们之间的关系用f表示。

然后,我只需要告诉机器(程序)我希望看到的关系(比如直线关系),机器再将会理解它所需要绘制的线。

5c5a12278b7d63dce838a39b1f35a4eff73470c9

我在这里得到了什么?

下次我想写一篇包含x个单词的文章时,机器可以根据对应关系f找到人们真正能阅读到的单词数y

a90a0147ae9c3037ad5f4dd232c816774d0e5b38

那么,神经网络到底是什么?如果一个神经元是一个函数,那么神经网络就是一个函数网络,也就是说,我们有很多个这样的功能(比如学习单元),这些学习单元的输入和输出相互交织,相互之间也有反馈。

作为一名神经网络的设计人员,我的主要工作就是:

1.如何建模输入和输出?例如,如果输入是文本,我可以用什么建模?数字?还是向量?

2.每个神经元有哪些功能?(它们是线性?还是指数?...

3.神经网络的架构是什么?(即哪个函数的输出是哪个函数的输入?)

4.我可以用哪些通俗易懂的词来描述我的网络?

一旦我回答了以上这些问题,我就可以向网络展示大量具有正确输入和输出的例子,神经网络学习后,当我再次输入一个新的输入时,神经网路就会有个正确的输出。

神经网络的学习原理超出了本文索要描述的范围,想要了解更多内容,请点击这里。另外你可以去神经网络专题,来更透彻的了解神经网络。

5a01e921a11a1687e03a6ddb8c42cad529b5c32c

 

神经网络的学习是件永无止境时,这个领域的知识呈爆炸性增长,每时每刻都会有新的知识和内容更新。

最后,我贴出来一些个人认为比较好的帖子供你学习:

1.Gal Yona ——我最喜欢的博主之一。她的文章涵盖了核心技术解释半哲学评论

2.Siraj Raval——拥有大量视频的YouTuber,从理论解释动手实践教程,应有俱有!

3.Christopher Olah ——一位充满激情和洞察力的研究员,他的博客涵盖了神经网络的基础深入探索

4.Towards Data Science 是神经网络领域中最大的Medium出版物,建议你每天抽出几分钟的时间来阅读,你会获得意想不到的收获。


本文由北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。

文章原标题《Neural Networks for Dummies: a quick intro to this fascinating field

译者:Mags,审校:袁虎。

文章为简译,更为详细的内容,请查看原文

相关文章
|
1月前
|
监控 网络协议 Java
Linux 网络编程从入门到进阶 学习指南
在上一篇文章中,我们探讨了 Linux 系统编程的诸多基础构件,包括文件操作、进程管理和线程同步等,接下来,我们将视野扩展到网络世界。在这个新篇章里,我们要让应用跳出单机限制,学会在网络上跨机器交流信息。
Linux 网络编程从入门到进阶 学习指南
|
3月前
|
网络协议
网络编程【TCP单向通信、TCP双向通信、一对多应用、一对多聊天服务器】(二)-全面详解(学习总结---从入门到深化)(下)
网络编程【TCP单向通信、TCP双向通信、一对多应用、一对多聊天服务器】(二)-全面详解(学习总结---从入门到深化)
35 2
|
3月前
|
网络协议 Linux 数据处理
网络编程【网络编程基本概念、 网络通信协议、IP地址 、 TCP协议和UDP协议】(一)-全面详解(学习总结---从入门到深化)
网络编程【网络编程基本概念、 网络通信协议、IP地址 、 TCP协议和UDP协议】(一)-全面详解(学习总结---从入门到深化)
79 3
|
1月前
|
安全 网络安全 数据安全/隐私保护
网络拓扑结构入门快速介绍
网络拓扑结构入门快速介绍
|
1月前
|
数据采集 Web App开发 数据处理
Ruby网络爬虫教程:从入门到精通下载图片
Ruby网络爬虫教程:从入门到精通下载图片
|
1月前
|
人工智能 监控 安全
网络安全知识入门:Web应用防火墙是什么?
网络安全知识入门:Web应用防火墙是什么?
22 1
|
2月前
|
Java
[Java]Socket套接字(网络编程入门)
[Java]Socket套接字(网络编程入门)
38 0
|
2月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
深度学习入门:Python 与神经网络
深度学习是机器学习的一个分支,它涉及使用多层神经网络来处理和学习数据。在 Python 中,有许多流行的深度学习库和框架可以帮助我们轻松地构建和训练神经网络模型。在本文中,我们将介绍深度学习的基本概念,并使用 Python 中的 TensorFlow 和 Keras 库来构建一个简单的神经网络模型。
|
2月前
|
数据采集 网络协议 搜索推荐
网络编程【TCP单向通信、TCP双向通信、一对多应用、一对多聊天服务器】(二)-全面详解(学习总结---从入门到深化)
网络编程【TCP单向通信、TCP双向通信、一对多应用、一对多聊天服务器】(二)-全面详解(学习总结---从入门到深化)
52 0
|
3月前
|
存储 网络协议 安全
从零开始学习 Java:简单易懂的入门指南之网络编程(三十七)
从零开始学习 Java:简单易懂的入门指南之网络编程(三十七)