[TOC]
Deep Learning 是 Neural Network的一门学科
神经网络也跟其他网络一样:
- 有一些节点
- 和连接这些节点的边
神经网络的主要功能
- 接收一组输入
- 进行一些逐渐复杂的计算
- 然后使用输出来解决问题
通过分类问题(Classification)来讲解神经网络
- 分类问题就是仅仅通过一些描述物体的基本特征,来把物体归类的过程
- 现代分类器
- Logistic Regression逻辑斯蒂回归
- SVM支持向量机
- Naive Bayes朴素贝叶斯
- Neural Network神经网络
分类器的激活输出,会得到一个分数。
举个栗子,你想预测一个患者是生病还是健康,你手头有的所有数据是他们的身高、体重和体温。 分类器接收这些患者的数据,处理后给出一个置信分。(分值高则匹配生病的概率高)一个高的分数意味着这个患者很大可能是生病的,而一个低分说明病人是健康的。
神经网络可以用于一个物体可以归纳为至少2个不同类别的分类任务。不像社交网络,神经网络的结构由层次组成,比较清晰。神经网络分层:
- 第一层:Input Layer,输入层
- 中间若干层:Hidden Layers ,隐含层
- 最后一层:Output Layer,输出层
一个神经网络可以看做把多个分类器一层一层连起来,因为隐含层和输出层的每个节点都有自己的分类器。比如一个节点,它从输入层获取输入,然后激活,它的分类会作为输入传递给下一个隐含层,进行之后的激活。
整个流程运转过程:
- 一组输入传递给第一个隐含层,那一层的激活会传递给下一层,依次不断继续下去,直到你到达了输出层。
- 分类结果会由那层的各个节点的分数决定。
- 每组输入都是这样进行的。
另外一个说明:
- 系列事件从输入层开始,每个激活都会被送到下一层,以及它们的下一层,直到到达最后的输出,这个过程称为前向传播(forward propagation)。前向传播是神经网络用来对输入数据进行分类的一种方式。
- 其他的类型,视频up主 要我们在youtube上给她留言,她再决定发哪个。
第一个神经网络的诞生是为了解决早期感知机分类器的分类效果差的问题。通过把感知机组建成多层网络,预测的效果可以得到提升,结果这个新产生的神经网络叫做多层感知机(MLP)Vanilla Neural Network = Multi-layer Perceptron (MLP)。
从此以后,在神经网络里的节点会用更加强大的分类器来代替感知机。但是MLP这个名字依然保留下来了。
向前传播的过程:
- 每一个节点都有相同的分类器,没有一个会被随机激活。
- 如果你重复一个输入,你会得到相同的结果 。
- 因此,如果隐含层的每一个节点获得了相同的输入,那为什么它们会得出不同的结果 ?
- 原因是,每组输入都会被唯一的权重和偏差修改。
- 比如,对于某个节点来说,第一个输入会乘上10这个权重,第二个乘以5,第三个乘以6,最后加上偏差9。
- 每条边会有一个唯一的权重(Weight=edge),每个节点会有一个唯一的偏差(Bias = Node)。意味着,每个激活的组合也是唯一的。这就解释了:为什么不同的节点会激活出不同的值 。
训练 Training
你可能会猜测,神经网络的预测准确度依赖于它的权重和偏差值,而我们希望预测准确率越高,这意味着我们希望神经网络输出值与真实的输出值尽量接近。提高神经网络准确率的过程叫做训练,就像其他机器学习方法一样。
拿前向网络来说:
- 为了训练这个网络,前向传播得出的输出会和正确的输出进行比较,它们两个的差值被定义成代价。
- 训练的目的是使所有训练样本的代价总和越小越好。
- 为了达成这个目的,网络需要一步步修改它的权重和偏差。
- 直到预测值尽量接近真实的输出值。
- 一旦训练好了,一个神经网络就能够每次给出一个较为准确的预测值。
以上所有就是神经网络的大概过程。
此时此刻,你可能会疑惑(不,我心静如水):对于类似分类问题,一些单独的分类器已经能够做得不错了,为什么还要构建并训练一个分类网络?(不,我想不到这个问题。)
她答曰:你在下期课程中就知道啦。