机器学习周报(9.16-9.22)

目录

摘要

Abstract

1 神经网络(Neural Network)

1.1 神经元和大脑(Neurons and The Brain)

1.2 需求预测(Demand Prediction)

1.3 例子:图像识别(Recognizing Images)

1.4 神经网络中的层(Layer)

1.5 更复杂的神经网络(More Complex Neural Networks)

2 推理(Inference)

2.1 正向传播(Forward Propagation)

2.2 代码部分

3 TensorFlow

3.1 TensorFlow中的数据(Data in Tensorflow)

3.2 建立一个神经网络(Building A Neural Network)

3.3 在一个单层中的正向传播(Forward Prop in A Single Layer)

3.4 正向传播的一般实现(General Implementation of Forward Propagation)

4 是否有路通向AGI(Is there a path to AGI)

4.1 ANI和AGI

4.2 "one learning algorithm" hypothesis

总结


摘要

本周开始学习吴恩达机器学习的神经网络部分。了解了什么是神经元和神经网络中的层,并通过需求预测和图像识别的例子加深对神经网络的理解。然后了解了什么是正向传播以及相关代码部分。再是了解了什么是TensorFlow,如何使用TensorFLow建立一个神经网络和实现正向传播的方法。最后简单了解了ANI和AGI,还有“一个学习算法”的假设。

Abstract

This week, I started learning the neural network section of Andrew Ng's machine learning course. I learned about neurons and layers in neural networks, deepening my understanding through examples like demand forecasting and image recognition. I then covered forward propagation and the related code. Next, I learned what TensorFlow is and how to use it to build a neural network and implement forward propagation. Finally, I briefly explored ANI and AGI, as well as the hypothesis of "one learning algorithm".

1 神经网络(Neural Network)

1.1 神经元和大脑(Neurons and The Brain)

当神经网络在几十年前首次被发明时,最初的动机时编写软件,可以模仿人脑或生物大脑是如何学习的。虽然如今的神经网络(有时也被称为人工神经网络)已经变得不同于我们想象中的大脑是如何工作和学习的了,但是一些生物学动机仍然存在于我们今天对人工神经网络或计算机神经网络的思考方式中。下图为神经网络的起因、发展过程和应用场景:

为了构建神经网络模型,首先需要思考大脑中的神经网络是怎样的?每一个神经元都可以被认为是一个处理单元/神经核(processing unit/Nucleus),它含有许多输入/树突(input/Dendrite),并且有一个输出/轴突(output/Axon)。神经网络是大量神经元相互链接并通过电脉冲来交流的一个网络。

下面是一组神经元的示意图,神经元利用微弱的电流进行沟通。这些弱电流也称作动作电位,其实就是一些微弱的电流。所以如果神经元想要传递一个消息,它就会就通过它的轴突,发送一段微弱电流给其他神经元,这就是轴突。

这里是一条连接到输入神经,或者连接另一个神经元树突的神经,接下来这个神经元接收这条消息,做一些计算,它有可能会反过来将在轴突上的自己的消息传给其他神经元。这就是所有人类思考的模型:我们的神经元把自己的收到的消息进行计算,并向其他神经元传递消息。这也是我们的感觉和肌肉运转的原理。如果你想活动一块肌肉,就会触发一个神经元给你的肌肉发送脉冲,并引起你的肌肉收缩。如果一些感官:比如说眼睛想要给大脑传递一个消息,那么它就像这样发送电脉冲给大脑的。

所以,人工神经网络使用了一个非常简单的数学模型来描述生物神经元的作用,如下图,使用小圆表示单个神经元,神经元的作用是进行一些输入的计算并输出一些其他的数字,而这个输出会成为其他神经元的输入。

1.2 需求预测(Demand Prediction)

举个例子,能够查看产品并试图预测这种产品是否畅销。这种类型的应用程序今天被零售商用来计划更好的库存情况和营销活动。

首先,收集了不同的数据,以不同的价格出售的T恤以及哪些成为了最畅销的。将学习算法的输入设为x 代表T恤的价格。如果应用逻辑回归来拟合一个S形函数到数据中,则学习算法的预测输出则表示为:f(x)=\frac{1}{1+e^{-(wx+b)}} 。 

为了建立这个神经网络,稍微改变一下术语,用字母a 来表示这个逻辑回归算法的输出。术语a 代表激活,实则为神经科学的术语,指的是一个神经元向它的下游的其他神经元发送高输入的程度。结果是这个逻辑回归单元或者这个小的逻辑回归算法可以被认为是大脑中单个神经元的简化模型。

神经元的作用是它以价格x 作为输入,然后它在上面计算f(x)这个公式,输出通过这个公式计算出的字母a ,然后输出这个最畅销的T恤的概率。神经元的另一种说法是,它是一台微型计算机,其唯一的工作是输入一个或几个数字。比如例子中的价格,然后输出一个数字或者其他的几个数字,在这种情况下是最畅销的T恤的概率。

正如前面提到,逻辑回归算法比人大脑或大脑中的任何生物的神经元都要简单得多,这就是为什么人工神经网络是一个过于简化的人脑模型。

在实践中,深度学习算法对描述单个神经元确实很有效。如果需要建立一个神经网络则只需要取一堆这些神经元,把它们连接在一起或把它们放在一起。

接下来,来看一个更加复杂的需求预测的例子,将有四个特征来预测最畅销的T恤,四个特征分别为价格(price)、运输成本(shipping cost)、营销(marketing)、质量(material)。但是实则影响T恤畅销的因素为价格可承受性(affordability)、认识程度(awareness)、性价比(perceived quality),由此创造一个人工神经元来估计T恤的价格可承受性,主要是价格和运输成本的函数、第二个人工神经元来估计T恤的认识程度,主要是营销的函数、最后一个人工神经元来估计T恤是性价比,主要是价格和质量的函数。

鉴于这些对价格可承受性、认识程度和性价比的预估,将这三个神经元的输出连接到右边的另一个神经元,这也是另一个逻辑回归单元,最后输入这三个数字,输出这个最畅销的T恤的概率:

在神经网络的术语中,把这三个神经云分成一层,一层是一组神经元,输入相同或相似的特征,然后输出几个数字在一起。左边三个神经元为一层,右边的一个神经元也是一层,所以一层可以有多个神经元也可以只有一个神经元,像右边一样。同时右边这一层也叫做输出层,因为最终神经元的输出是神经网络,在神经网络术语中作为预测的输出概率。将价格可承受性、认识程度和性价比称为激活函数,激活一词来自生物神经元,它指的是生物神经元发出高输出值的程度或者向其他神经元发送许多电脉冲到下游,所以这些关于价格可承受性、认识程度和性价比的数字是这一层中这三个神经元的激活,而输出概率为输出层这个神经元的激活。

因此对这个特殊的神经网络进行如下计算:它输入四个数字,然后第一层神经网络用这四个数字计算三个新的数字,也被称为激活值,最后一层神经网络的输出层使用这三个数字来计算一个数字,在神经网络中这个由四个数字组成的列表也被称为输入层:

现在对神经网络有了一个简化的方法:必须一次检查一个神经元,并决定它将从前一层接收什么输入,例如价格可承受性是价格和运输成本的函数,但是如果要建立一个大型的神经网络,要手动决定哪些神经元应该接受哪些特征作为输入,需要做很多工作,每层的神经元将访问前一层的每个特征和每个值。所以一个做些省略工作,通过适当地设置参数来找出只关注与其最相关的功能子集。

为了进一步简化,将四个输入特征写为向量,把神经网络看作有四个特征组成的特征向量\vec{x} ,这个特征向量被输入到中间的这一层,然后计算三个激活值,这三个激活值再依次变成另一个向量,这个向量被输入到最后的输出层,最终输出这个最畅销的T恤的概率。

所以这些都是神经网络,它有几层,每层输入一个向量,输出另一个数字向量。左边叫输入层,右边最后的叫输出层,则中间一层又被称为隐藏层,因为训练集中只告诉了什么是正确的输入和正确的输出,但是没有告诉什么是中间这一层的正确值,正确值被隐藏起来了,所以被称为隐藏层。

如果将输入层遮住,这里可以看到的是一个逻辑回归算法或逻辑回归单元,价格可承受性、认识程度和性价比将作为输入,利用这三个特征来估计最畅销的T恤。所以考虑神经网络的一个方法就是逻辑回归。

下面为包含多个隐藏层的例子,这个神经网络有一个输入特征向量\vec{x} ,传送到第一个隐藏层,这个隐藏层存在三个神经元,他会输出三个激活值的向量\vec{a} 。然后这三个数字可以被输入到第二个隐藏层,第二个隐藏层存在两个神经元,则这第二个隐藏层将输出两个激活值的向量\vec{a} ,最后进入输出层,然后神经网络输出最终预测:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值