深度学习(coursera吴恩达深度学习课程笔记——神经网络与深度学习)

    断断续续学了大概一学期,对于机器学习依然似懂非懂,最近在看吴恩达的深度学习,想着以写博客的方式来总结回顾一下,也便于自己之后复习,如果一些自己的理解有误的也希望有人能指出纠正,如果能得到网上大家的帮助或者鼓励当然就是最好了!

    1,什么是神经网络

            1.1 单层神经网络

    下图是房价预测示例,根据房屋大小预测房屋价格。图中的×即为给定的房屋大小以及该面积下的价格,然后用一条曲线去拟合现有数据,这样,再给出一个新的房屋价格(x轴坐标),根据它在曲线上的位置,就可以得到预测价格(Y轴坐标)。而本例的曲线就可以用线性函数 k*x+b, 然后通过给定的x,y的值求得k,b即可。但是,往往样本并不会完美地分布在一条直线上,这时候就需要找到一条尽可能贴近所有样本的曲线了,而判断“尽可能贴近”的标准就是课程中提到的“损失函数”,通过计算曲线上预测出的y值与真实y值的差,来得到损失函数最小的那条曲线。

 

    而神经网络,我理解的就是模拟人脑对信息的处理过程,设计每个神经元进行的计算,期望将输入数据经过各个神经元内部的计算之后得到准确的输出。如下图,是一个单神经元的结构,输入为房屋大小,输出为价格,中间的⚪为神经元,根据之前的分析,我们可以假设该神经元内部的计算就为k*x+b,根据已知输入输出求出k,b的值。 进一步思考,房屋的价格不可能只受大小的影响,一定还有其他的因素,因此输入的x就不再是一个实数,而是一个向量,而为了更准确的得到房屋价格的预测值(损失函数最小),也就需要扩展我们的神经网络,可以通过增加神经元的个数以及增加神经网络的层数来扩展。


    1.2 多层神经网络
    如下图,若房屋价格与以下四个因素有关,我们可以设计如下两层的神经网络。下面对该课程中提到的术语进行总结:
  • x^(i): 输入的第i个样本
  • x_j: x向量的第j个值
  • a[i]: 第i层神经元
  • yhat: 预测y值
  • 输入层:X
  • 输出层:yhat
  • 隐藏层:除去输入层和输出层的中间层


2,逻辑回归

此处省略线性回归,其损失函数为

所谓逻辑回归,指输出的y值为分类离散值,如二分类(0,1),此时如果仍用线性方程去拟合,最终输出y为连续的实数,因此在神经元的计算中,增加激活函数,将输出值转换为0到1之间。如sigmoid函数:

如下图,z值很大时,g(z)趋近于1,z值很小时,g(z)趋近于0,z为0时,g(z)为1/2.


而逻辑回归的损失函数,用表示.